doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
NVCtrl.h
Go to the documentation of this file.
1 #ifndef __NVCTRL_H
2 #define __NVCTRL_H
3 
4 /**************************************************************************/
5 /*
6  * Integer attributes; these are settable/gettable via
7  * XNVCTRLSetAttribute() and XNVCTRLQueryAttribute, respectively.
8  * Some attributes may only be read; some may require a display_mask
9  * argument. This information is encoded in the "permission" comment
10  * after each attribute #define, and can be queried at run time with
11  * XNVCTRLQueryValidAttributeValues().
12  *
13  * Key to Integer Attribute "Permissions":
14  *
15  * R: The attribute is readable (in general, all attributes will be
16  * readable)
17  *
18  * W: The attribute is writable (attributes may not be writable for
19  * various reasons: they represent static system information, they
20  * can only be changed by changing an XF86Config option, etc).
21  *
22  * D: The attribute requires the display mask argument. The
23  * attributes NV_CTRL_CONNECTED_DISPLAYS and NV_CTRL_ENABLED_DISPLAYS
24  * will be a bitmask of what display devices are connected and what
25  * display devices are enabled for use in X, respectively. Each bit
26  * in the bitmask represents a display device; it is these bits which
27  * should be used as the display_mask when dealing with attributes
28  * designated with "D" below. For attributes that do not require the
29  * display mask, the argument is ignored.
30  */
31 
32 
33 /**************************************************************************/
34 
35 
36 /*
37  * NV_CTRL_FLATPANEL_SCALING - the current flatpanel scaling state;
38  * possible values are:
39  *
40  * 0: default (the driver will use whatever state is current)
41  * 1: native (the driver will use the panel's scaler, if possible)
42  * 2: scaled (the driver will use the GPU's scaler, if possible)
43  * 3: centered (the driver will center the image)
44  * 4: aspect scaled (scale with the GPU's scaler, but keep the aspect
45  * ratio correct)
46  */
47 
48 #define NV_CTRL_FLATPANEL_SCALING 2 /* RWD */
49 #define NV_CTRL_FLATPANEL_SCALING_DEFAULT 0
50 #define NV_CTRL_FLATPANEL_SCALING_NATIVE 1
51 #define NV_CTRL_FLATPANEL_SCALING_SCALED 2
52 #define NV_CTRL_FLATPANEL_SCALING_CENTERED 3
53 #define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED 4
54 
55 
56 /*
57  * NV_CTRL_FLATPANEL_DITHERING - the current flatpanel dithering
58  * state; possible values are:
59  *
60  * 0: default (the driver will decide when to dither)
61  * 1: enabled (the driver will always dither when possible)
62  * 2: disabled (the driver will never dither)
63  */
64 
65 #define NV_CTRL_FLATPANEL_DITHERING 3 /* RWD */
66 #define NV_CTRL_FLATPANEL_DITHERING_DEFAULT 0
67 #define NV_CTRL_FLATPANEL_DITHERING_ENABLED 1
68 #define NV_CTRL_FLATPANEL_DITHERING_DISABLED 2
69 
70 
71 /*
72  * NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the
73  * specified display device.
74  */
75 
76 #define NV_CTRL_DIGITAL_VIBRANCE 4 /* RWD */
77 
78 
79 /*
80  * NV_CTRL_BUS_TYPE - returns the Bus type through which the GPU
81  * driving the specified X screen is connected to the computer.
82  */
83 
84 #define NV_CTRL_BUS_TYPE 5 /* R-- */
85 #define NV_CTRL_BUS_TYPE_AGP 0
86 #define NV_CTRL_BUS_TYPE_PCI 1
87 #define NV_CTRL_BUS_TYPE_PCI_EXPRESS 2
88 
89 
90 /*
91  * NV_CTRL_VIDEO_RAM - returns the amount of video ram on the GPU
92  * driving the specified X screen.
93  */
94 
95 #define NV_CTRL_VIDEO_RAM 6 /* R-- */
96 
97 
98 /*
99  * NV_CTRL_IRQ - returns the interrupt request line used by the GPU
100  * driving the specified X screen.
101  */
102 
103 #define NV_CTRL_IRQ 7 /* R-- */
104 
105 
106 /*
107  * NV_CTRL_OPERATING_SYSTEM - returns the operating system on which
108  * the X server is running.
109  */
110 
111 #define NV_CTRL_OPERATING_SYSTEM 8 /* R-- */
112 #define NV_CTRL_OPERATING_SYSTEM_LINUX 0
113 #define NV_CTRL_OPERATING_SYSTEM_FREEBSD 1
114 
115 
116 /*
117  * NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients.
118  * This setting is only applied to OpenGL clients that are started
119  * after this setting is applied.
120  */
121 
122 #define NV_CTRL_SYNC_TO_VBLANK 9 /* RW- */
123 #define NV_CTRL_SYNC_TO_VBLANK_OFF 0
124 #define NV_CTRL_SYNC_TO_VBLANK_ON 1
125 
126 
127 /*
128  * NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL
129  * clients; on some NVIDIA hardware, this can only be enabled or
130  * disabled; on other hardware different levels of anisotropic
131  * filtering can be specified. This setting is only applied to OpenGL
132  * clients that are started after this setting is applied.
133  */
134 
135 #define NV_CTRL_LOG_ANISO 10 /* RW- */
136 
137 
138 /*
139  * NV_CTRL_FSAA_MODE - the FSAA setting for OpenGL clients; possible
140  * FSAA modes:
141  *
142  * NV_CTRL_FSAA_MODE_2x "2x Bilinear Multisampling"
143  * NV_CTRL_FSAA_MODE_2x_5t "2x Quincunx Multisampling"
144  * NV_CTRL_FSAA_MODE_15x15 "1.5 x 1.5 Supersampling"
145  * NV_CTRL_FSAA_MODE_2x2 "2 x 2 Supersampling"
146  * NV_CTRL_FSAA_MODE_4x "4x Bilinear Multisampling"
147  * NV_CTRL_FSAA_MODE_4x_9t "4x Gaussian Multisampling"
148  * NV_CTRL_FSAA_MODE_8x "2x Bilinear Multisampling by 4x Supersampling"
149  * NV_CTRL_FSAA_MODE_16x "4x Bilinear Multisampling by 4x Supersampling"
150  *
151  * This setting is only applied to OpenGL clients that are started
152  * after this setting is applied.
153  */
154 
155 #define NV_CTRL_FSAA_MODE 11 /* RW- */
156 #define NV_CTRL_FSAA_MODE_NONE 0
157 #define NV_CTRL_FSAA_MODE_2x 1
158 #define NV_CTRL_FSAA_MODE_2x_5t 2
159 #define NV_CTRL_FSAA_MODE_15x15 3
160 #define NV_CTRL_FSAA_MODE_2x2 4
161 #define NV_CTRL_FSAA_MODE_4x 5
162 #define NV_CTRL_FSAA_MODE_4x_9t 6
163 #define NV_CTRL_FSAA_MODE_8x 7
164 #define NV_CTRL_FSAA_MODE_16x 8
165 
166 
167 /*
168  * NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL
169  * clients. This setting is only applied to OpenGL clients that are
170  * started after this setting is applied.
171  */
172 
173 #define NV_CTRL_TEXTURE_SHARPEN 12 /* RW- */
174 #define NV_CTRL_TEXTURE_SHARPEN_OFF 0
175 #define NV_CTRL_TEXTURE_SHARPEN_ON 1
176 
177 
178 /*
179  * NV_CTRL_UBB - returns whether UBB is enabled for the specified X
180  * screen.
181  */
182 
183 #define NV_CTRL_UBB 13 /* R-- */
184 #define NV_CTRL_UBB_OFF 0
185 #define NV_CTRL_UBB_ON 1
186 
187 
188 /*
189  * NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for
190  * the specified X screen.
191  */
192 
193 #define NV_CTRL_OVERLAY 14 /* R-- */
194 #define NV_CTRL_OVERLAY_OFF 0
195 #define NV_CTRL_OVERLAY_ON 1
196 
197 
198 /*
199  * NV_CTRL_STEREO - returns whether stereo (and what type) is enabled
200  * for the specified X screen.
201  */
202 
203 #define NV_CTRL_STEREO 16 /* R-- */
204 #define NV_CTRL_STEREO_OFF 0
205 #define NV_CTRL_STEREO_DDC 1
206 #define NV_CTRL_STEREO_BLUELINE 2
207 #define NV_CTRL_STEREO_DIN 3
208 #define NV_CTRL_STEREO_TWINVIEW 4
209 
210 
211 /*
212  * NV_CTRL_EMULATE - controls OpenGL software emulation of future
213  * NVIDIA GPUs.
214  */
215 
216 #define NV_CTRL_EMULATE 17 /* RW- */
217 #define NV_CTRL_EMULATE_NONE 0
218 
219 
220 /*
221  * NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the
222  * specified X screen.
223  */
224 
225 #define NV_CTRL_TWINVIEW 18 /* R-- */
226 #define NV_CTRL_TWINVIEW_NOT_ENABLED 0
227 #define NV_CTRL_TWINVIEW_ENABLED 1
228 
229 
230 /*
231  * NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating what
232  * display devices are connected to the GPU driving the specified X
233  * screen.
234  */
235 
236 #define NV_CTRL_CONNECTED_DISPLAYS 19 /* R-- */
237 
238 
239 /*
240  * NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what
241  * display devices are enabled for use on the specified X screen.
242  */
243 
244 #define NV_CTRL_ENABLED_DISPLAYS 20 /* R-- */
245 
246 /**************************************************************************/
247 /*
248  * Integer attributes specific to configuring FrameLock on boards that
249  * support it.
250  */
251 
252 
253 /*
254  * NV_CTRL_FRAMELOCK - returns whether this X screen supports
255  * FrameLock. All of the other FrameLock attributes are only
256  * applicable if NV_CTRL_FRAMELOCK is _SUPPORTED.
257  */
258 
259 #define NV_CTRL_FRAMELOCK 21 /* R-- */
260 #define NV_CTRL_FRAMELOCK_NOT_SUPPORTED 0
261 #define NV_CTRL_FRAMELOCK_SUPPORTED 1
262 
263 
264 /*
265  * NV_CTRL_FRAMELOCK_MASTER - get/set whether this X screen is the
266  * FrameLock master for the entire sync group. Note that only one
267  * node in the sync group should be configured as the master.
268  */
269 
270 #define NV_CTRL_FRAMELOCK_MASTER 22 /* RW- */
271 #define NV_CTRL_FRAMELOCK_MASTER_FALSE 0
272 #define NV_CTRL_FRAMELOCK_MASTER_TRUE 1
273 
274 
275 /*
276  * NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the
277  * framelock pulse, or both the rising and falling edges of the
278  * framelock pulse.
279  */
280 
281 #define NV_CTRL_FRAMELOCK_POLARITY 23 /* RW- */
282 #define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE 0x1
283 #define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES 0x3
284 
285 
286 /*
287  * NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the framelock pulse
288  * and the GPU sync. This is an 11 bit value which is multipled by
289  * 7.81 to determine the sync delay in microseconds.
290  */
291 
292 #define NV_CTRL_FRAMELOCK_SYNC_DELAY 24 /* RW- */
293 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX 2047
294 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR 7.81
295 
296 /*
297  * NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses
298  * between the FrameLock sync generation (0 == sync every house sync);
299  * this only applies to the master when receiving house sync.
300  */
301 
302 #define NV_CTRL_FRAMELOCK_SYNC_INTERVAL 25 /* RW- */
303 
304 
305 /*
306  * NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0.
307  */
308 
309 #define NV_CTRL_FRAMELOCK_PORT0_STATUS 26 /* R-- */
310 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT 0
311 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT 1
312 
313 
314 /*
315  * NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1.
316  */
317 
318 #define NV_CTRL_FRAMELOCK_PORT1_STATUS 27 /* R-- */
319 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT 0
320 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT 1
321 
322 
323 /*
324  * NV_CTRL_FRAMELOCK_HOUSE_STATUS - status of the house input (the BNC
325  * connector).
326  */
327 
328 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS 28 /* R-- */
329 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED 0
330 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED 1
331 
332 
333 /*
334  * NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of the
335  * specified display devices to the FrameLock pulse.
336  */
337 
338 #define NV_CTRL_FRAMELOCK_SYNC 29 /* RWD */
339 #define NV_CTRL_FRAMELOCK_SYNC_DISABLE 0
340 #define NV_CTRL_FRAMELOCK_SYNC_ENABLE 1
341 
342 
343 /*
344  * NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a slave FrameLock
345  * board is receiving sync (regardless of whether or not any display
346  * devices are using the sync).
347  */
348 
349 #define NV_CTRL_FRAMELOCK_SYNC_READY 30 /* R-- */
350 #define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE 0
351 #define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE 1
352 
353 
354 /*
355  * NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo
356  * signal is in sync with the framelock stereo signal.
357  */
358 
359 #define NV_CTRL_FRAMELOCK_STEREO_SYNC 31 /* R-- */
360 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE 0
361 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE 1
362 
363 
364 /*
365  * NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync
366  * group, tell the master to enable a test signal, then query port[01]
367  * status and sync_ready on all slaves. When done, tell the master to
368  * disable the test signal. Test signal should only be manipulated
369  * while NV_CTRL_FRAMELOCK_SYNC is enabled.
370  *
371  * The TEST_SIGNAL is also used to reset the Universal Frame Count (as
372  * returned by the glXQueryFrameCountNV() function in the
373  * GLX_NV_swap_group extension). Note: for best accuracy of the
374  * Universal Frame Count, it is recommended to toggle the TEST_SIGNAL
375  * on and off after enabling FrameLock.
376  */
377 
378 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL 32 /* RW- */
379 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE 0
380 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE 1
381 
382 
383 /*
384  * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The FrameLock boards are
385  * cabled together using regular cat5 cable, connecting to rj45 ports
386  * on the backplane of the card. There is some concern that users may
387  * think these are ethernet ports and connect them to a
388  * router/hub/etc. The hardware can detect this and will shut off to
389  * prevent damage (either to itself or to the router).
390  * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if
391  * ethernet is connected to one of the rj45 ports. An appropriate
392  * error message should then be displayed. The _PORT0 and PORT1
393  * values may be or'ed together.
394  */
395 
396 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED 33 /* R-- */
397 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE 0
398 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0 0x1
399 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1 0x2
400 
401 
402 /*
403  * NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set the video mode of the house
404  * input.
405  */
406 
407 #define NV_CTRL_FRAMELOCK_VIDEO_MODE 34 /* RW- */
408 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE 0
409 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1
410 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM 2
411 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV 3
412 
413 /*
414  * During FRAMELOCK bring-up, the above values were redefined to
415  * these:
416  */
417 
418 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO 0
419 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1
420 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL 2
421 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL 3
422 
423 
424 /*
425  * NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the
426  * framelock board is sending to the GPU, in milliHz.
427  */
428 
429 #define NV_CTRL_FRAMELOCK_SYNC_RATE 35 /* R-- */
430 
431 
432 
433 /**************************************************************************/
434 
435 /*
436  * NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific
437  * features such as MMX, SSE, or 3DNOW! for OpenGL clients; this
438  * option may result in performance loss, but may be useful in
439  * conjunction with software such as the Valgrind memory debugger.
440  * This setting is only applied to OpenGL clients that are started
441  * after this setting is applied.
442  */
443 
444 #define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW- */
445 #define NV_CTRL_FORCE_GENERIC_CPU_DISABLE 0
446 #define NV_CTRL_FORCE_GENERIC_CPU_ENABLE 1
447 
448 
449 /*
450  * NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow
451  * Gamma-corrected antialiased lines to consider variances in the
452  * color display capabilities of output devices when rendering smooth
453  * lines. Only available on recent Quadro GPUs. This setting is only
454  * applied to OpenGL clients that are started after this setting is
455  * applied.
456  */
457 
458 #define NV_CTRL_OPENGL_AA_LINE_GAMMA 38 /* RW- */
459 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE 0
460 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE 1
461 
462 
463 /*
464  * NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the framelock board is
465  * receiving timing input.
466  */
467 
468 #define NV_CTRL_FRAMELOCK_TIMING 39 /* RW- */
469 #define NV_CTRL_FRAMELOCK_TIMING_FALSE 0
470 #define NV_CTRL_FRAMELOCK_TIMING_TRUE 1
471 
472 /*
473  * NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping
474  * when possible; when FALSE, OpenGL will alway swap by blitting. XXX
475  * can this be enabled dynamically?
476  */
477 
478 #define NV_CTRL_FLIPPING_ALLOWED 40 /* RW- */
479 #define NV_CTRL_FLIPPING_ALLOWED_FALSE 0
480 #define NV_CTRL_FLIPPING_ALLOWED_TRUE 1
481 
482 /*
483  * NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is
484  * running.
485  */
486 
487 #define NV_CTRL_ARCHITECTURE 41 /* R-- */
488 #define NV_CTRL_ARCHITECTURE_X86 0
489 #define NV_CTRL_ARCHITECTURE_X86_64 1
490 #define NV_CTRL_ARCHITECTURE_IA64 2
491 
492 
493 /*
494  * NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL. By
495  * default, NVIDIA's OpenGL implementation uses CLAMP_TO_EDGE, which
496  * is not strictly conformant, but some applications rely on the
497  * non-conformant behavior, and not all GPUs support conformant
498  * texture clamping in hardware. _SPEC forces OpenGL texture clamping
499  * to be conformant, but may introduce slower performance on older
500  * GPUS, or incorrect texture clamping in certain applications.
501  */
502 
503 #define NV_CTRL_TEXTURE_CLAMPING 42 /* RW- */
504 #define NV_CTRL_TEXTURE_CLAMPING_EDGE 0
505 #define NV_CTRL_TEXTURE_CLAMPING_SPEC 1
506 
507 
508 
509 #define NV_CTRL_CURSOR_SHADOW 43 /* RW- */
510 #define NV_CTRL_CURSOR_SHADOW_DISABLE 0
511 #define NV_CTRL_CURSOR_SHADOW_ENABLE 1
512 
513 #define NV_CTRL_CURSOR_SHADOW_ALPHA 44 /* RW- */
514 #define NV_CTRL_CURSOR_SHADOW_RED 45 /* RW- */
515 #define NV_CTRL_CURSOR_SHADOW_GREEN 46 /* RW- */
516 #define NV_CTRL_CURSOR_SHADOW_BLUE 47 /* RW- */
517 
518 #define NV_CTRL_CURSOR_SHADOW_X_OFFSET 48 /* RW- */
519 #define NV_CTRL_CURSOR_SHADOW_Y_OFFSET 49 /* RW- */
520 
521 
522 
523 /*
524  * When Application Control for FSAA is enabled, then what the
525  * application requests is used, and NV_CTRL_FSAA_MODE is ignored. If
526  * this is disabled, then any application setting is overridden with
527  * NV_CTRL_FSAA_MODE
528  */
529 
530 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED 50 /* RW- */
531 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED 1
532 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED 0
533 
534 
535 /*
536  * When Application Control for LogAniso is enabled, then what the
537  * application requests is used, and NV_CTRL_LOG_ANISO is ignored. If
538  * this is disabled, then any application setting is overridden with
539  * NV_CTRL_LOG_ANISO
540  */
541 
542 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED 51 /* RW- */
543 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED 1
544 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED 0
545 
546 
547 /*
548  * IMAGE_SHARPENING adjusts the sharpness of the display's image
549  * quality by amplifying high frequency content. Valid values will
550  * normally be in the range [0,32). Only available on GeForceFX or
551  * newer.
552  */
553 
554 #define NV_CTRL_IMAGE_SHARPENING 52 /* RWD */
555 
556 
557 /*
558  * NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified
559  * display device.
560  */
561 
562 #define NV_CTRL_TV_OVERSCAN 53 /* RWD */
563 
564 
565 /*
566  * NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on
567  * the specified display device.
568  */
569 
570 #define NV_CTRL_TV_FLICKER_FILTER 54 /* RWD */
571 
572 
573 /*
574  * NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the
575  * specified display device.
576  */
577 
578 #define NV_CTRL_TV_BRIGHTNESS 55 /* RWD */
579 
580 
581 /*
582  * NV_CTRL_TV_HUE adjusts the amount of hue on the specified display
583  * device.
584  */
585 
586 #define NV_CTRL_TV_HUE 56 /* RWD */
587 
588 
589 /*
590  * NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified
591  * display device.
592  */
593 
594 #define NV_CTRL_TV_CONTRAST 57 /* RWD */
595 
596 
597 /*
598  * NV_CTRL_TV_SATURATION adjusts the amount of saturation on the
599  * specified display device.
600  */
601 
602 #define NV_CTRL_TV_SATURATION 58 /* RWD */
603 
604 
605 /*
606  * NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used
607  * to request that all TV Settings be reset to their default values;
608  * typical usage would be that this attribute be sent, and then all
609  * the TV attributes be queried to retrieve their new values.
610  */
611 
612 #define NV_CTRL_TV_RESET_SETTINGS 59 /* -WD */
613 
614 
615 /*
616  * NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature
617  * of the GPU driving the X screen.
618  */
619 
620 #define NV_CTRL_GPU_CORE_TEMPERATURE 60 /* R-- */
621 
622 
623 /*
624  * NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown
625  * threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and
626  * NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core
627  * slowdown threshold temperatures.
628  *
629  * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the
630  * GPU is throttled to prevent overheating.
631  */
632 
633 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R-- */
634 #define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD 62 /* R-- */
635 #define NV_CTRL_GPU_MAX_CORE_THRESHOLD 63 /* R-- */
636 
637 
638 /*
639  * NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the
640  * immediate neighbourhood of the GPU driving the X screen.
641  */
642 
643 #define NV_CTRL_AMBIENT_TEMPERATURE 64 /* R-- */
644 
645 
646 /*
647  * NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen
648  * supports scanout of FP pbuffers;
649  *
650  * if this screen does not support PBUFFER_SCANOUT, then all other
651  * PBUFFER_SCANOUT attributes are unavailable.
652  */
653 
654 #define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED 65 /* R-- */
655 #define NV_CTRL_PBUFFER_SCANOUT_FALSE 0
656 #define NV_CTRL_PBUFFER_SCANOUT_TRUE 1
657 
658 /*
659  * NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for
660  * scanout.
661  */
662 #define NV_CTRL_PBUFFER_SCANOUT_XID 66 /* RW- */
663 
664 #define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_PBUFFER_SCANOUT_XID
665 
666 /**************************************************************************/
667 
668 /*
669  * String Attributes:
670  */
671 
672 
673 /*
674  * NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the
675  * specified X screen is running.
676  */
677 
678 #define NV_CTRL_STRING_PRODUCT_NAME 0 /* R-- */
679 
680 
681 /*
682  * NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on
683  * which the specified X screen is running.
684  */
685 
686 #define NV_CTRL_STRING_VBIOS_VERSION 1 /* R-- */
687 
688 
689 /*
690  * NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the
691  * NVIDIA driver version number for the NVIDIA X driver in use.
692  */
693 
694 #define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION 3 /* R-- */
695 
696 
697 /*
698  * NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device
699  * specified in the display_mask argument.
700  */
701 
702 #define NV_CTRL_STRING_DISPLAY_DEVICE_NAME 4 /* R-D */
703 
704 
705 /*
706  * NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the
707  * specified display device; only valid if the display device is a TV.
708  */
709 
710 #define NV_CTRL_STRING_TV_ENCODER_NAME 5 /* R-D */
711 
712 #define NV_CTRL_STRING_LAST_ATTRIBUTE NV_CTRL_STRING_TV_ENCODER_NAME
713 
714 
715 
716 /**************************************************************************/
717 /*
718  * CTRLAttributeValidValuesRec -
719  *
720  * structure and related defines used by
721  * XNVCTRLQueryValidAttributeValues() to describe the valid values of
722  * a particular attribute. The type field will be one of:
723  *
724  * ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there
725  * is no fixed range of valid values.
726  *
727  * ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value,
728  * interpretted as a bitmask.
729  *
730  * ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are
731  * either 1 (on/true) or 0 (off/false).
732  *
733  * ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value
734  * between NVCTRLAttributeValidValues.u.range.min and
735  * NVCTRLAttributeValidValues.u.range.max (inclusive).
736  *
737  * ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain
738  * integer values, indicated by which bits in
739  * NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit
740  * 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid
741  * value, etc). This is useful for attributes like NV_CTRL_FSAA_MODE,
742  * which can only have certain values, depending on GPU.
743  *
744  *
745  * The permissions field of NVCTRLAttributeValidValuesRec is a bitmask
746  * that may contain:
747  *
748  * ATTRIBUTE_TYPE_READ
749  * ATTRIBUTE_TYPE_WRITE
750  * ATTRIBUTE_TYPE_DISPLAY
751  *
752  * See 'Key to Integer Attribute "Permissions"' at the top of this
753  * file for a description of what these three permission bits mean.
754  */
755 
756 #define ATTRIBUTE_TYPE_UNKNOWN 0
757 #define ATTRIBUTE_TYPE_INTEGER 1
758 #define ATTRIBUTE_TYPE_BITMASK 2
759 #define ATTRIBUTE_TYPE_BOOL 3
760 #define ATTRIBUTE_TYPE_RANGE 4
761 #define ATTRIBUTE_TYPE_INT_BITS 5
762 
763 #define ATTRIBUTE_TYPE_READ 0x1
764 #define ATTRIBUTE_TYPE_WRITE 0x2
765 #define ATTRIBUTE_TYPE_DISPLAY 0x4
766 
768  int type;
769  union {
770  struct {
771  int min;
772  int max;
773  } range;
774  struct {
775  unsigned int ints;
776  } bits;
777  } u;
778  unsigned int permissions;
780 
781 
782 
783 #define ATTRIBUTE_CHANGED_EVENT 0
784 
785 
786 #endif /* __NVCTRL_H */
unsigned int permissions
Definition: NVCtrl.h:778
struct _NVCTRLAttributeValidValues::@100::@101 range
union _NVCTRLAttributeValidValues::@100 u
struct _NVCTRLAttributeValidValues::@100::@102 bits
struct _NVCTRLAttributeValidValues NVCTRLAttributeValidValuesRec