Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / libXNVCtrl / NVCtrl.h
blob1bb62ceb4a766ac963cacb4e22eab7e122ca7fc8
1 /*
2 * Copyright (c) 2010 NVIDIA, Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
24 #ifndef __NVCTRL_H
25 #define __NVCTRL_H
27 #include <stdint.h>
29 /**************************************************************************/
32 * Attribute Targets
34 * Targets define attribute groups. For example, some attributes are only
35 * valid to set on a GPU, others are only valid when talking about an
36 * X Screen. Target types are then what is used to identify the target
37 * group of the attribute you wish to set/query.
39 * Here are the supported target types:
42 #define NV_CTRL_TARGET_TYPE_X_SCREEN 0
43 #define NV_CTRL_TARGET_TYPE_GPU 1
44 #define NV_CTRL_TARGET_TYPE_FRAMELOCK 2
45 #define NV_CTRL_TARGET_TYPE_VCSC 3 /* Visual Computing System */
46 #define NV_CTRL_TARGET_TYPE_GVI 4
47 #define NV_CTRL_TARGET_TYPE_COOLER 5 /* e.g., fan */
48 #define NV_CTRL_TARGET_TYPE_THERMAL_SENSOR 6
49 #define NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER 7
50 #define NV_CTRL_TARGET_TYPE_DISPLAY 8
52 /**************************************************************************/
55 * Attributes
57 * Some attributes may only be read; some may require a display_mask
58 * argument and others may be valid only for specific target types.
59 * This information is encoded in the "permission" comment after each
60 * attribute #define, and can be queried at run time with
61 * XNVCTRLQueryValidAttributeValues() and/or
62 * XNVCTRLQueryValidTargetAttributeValues()
64 * Key to Integer Attribute "Permissions":
66 * R: The attribute is readable (in general, all attributes will be
67 * readable)
69 * W: The attribute is writable (attributes may not be writable for
70 * various reasons: they represent static system information, they
71 * can only be changed by changing an XF86Config option, etc).
73 * D: The attribute requires the display mask argument. The
74 * attributes NV_CTRL_CONNECTED_DISPLAYS and NV_CTRL_ENABLED_DISPLAYS
75 * will be a bitmask of what display devices are connected and what
76 * display devices are enabled for use in X, respectively. Each bit
77 * in the bitmask represents a display device; it is these bits which
78 * should be used as the display_mask when dealing with attributes
79 * designated with "D" below. For attributes that do not require the
80 * display mask, the argument is ignored.
82 * Alternatively, NV-CONTROL versions 1.27 and greater allow these
83 * attributes to be accessed via display target types, in which case
84 * the display_mask is ignored.
86 * G: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GPU
87 * target type via XNVCTRLQueryTargetAttribute().
89 * F: The attribute may be queried using an NV_CTRL_TARGET_TYPE_FRAMELOCK
90 * target type via XNVCTRLQueryTargetAttribute().
92 * X: When Xinerama is enabled, this attribute is kept consistent across
93 * all Physical X Screens; assignment of this attribute will be
94 * broadcast by the NVIDIA X Driver to all X Screens.
96 * V: The attribute may be queried using an NV_CTRL_TARGET_TYPE_VCSC
97 * target type via XNVCTRLQueryTargetAttribute().
99 * I: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GVI target type
100 * via XNVCTRLQueryTargetAttribute().
102 * Q: The attribute is a 64-bit integer attribute; use the 64-bit versions
103 * of the appropriate query interfaces.
105 * C: The attribute may be queried using an NV_CTRL_TARGET_TYPE_COOLER target
106 * type via XNVCTRLQueryTargetAttribute().
108 * S: The attribute may be queried using an NV_CTRL_TARGET_TYPE_THERMAL_SENSOR
109 * target type via XNVCTRLQueryTargetAttribute().
111 * T: The attribute may be queried using an
112 * NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER target type
113 * via XNVCTRLQueryTargetAttribute().
115 * NOTE: Unless mentioned otherwise, all attributes may be queried using
116 * an NV_CTRL_TARGET_TYPE_X_SCREEN target type via
117 * XNVCTRLQueryTargetAttribute().
121 /**************************************************************************/
124 * Integer attributes:
126 * Integer attributes can be queried through the XNVCTRLQueryAttribute() and
127 * XNVCTRLQueryTargetAttribute() function calls.
129 * Integer attributes can be set through the XNVCTRLSetAttribute() and
130 * XNVCTRLSetTargetAttribute() function calls.
132 * Unless otherwise noted, all integer attributes can be queried/set
133 * using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot
134 * take an NV_CTRL_TARGET_TYPE_X_SCREEN also cannot be queried/set through
135 * XNVCTRLQueryAttribute()/XNVCTRLSetAttribute() (Since these assume
136 * an X Screen target).
141 * NV_CTRL_FLATPANEL_SCALING - not supported
144 #define NV_CTRL_FLATPANEL_SCALING 2 /* RWDG */
145 #define NV_CTRL_FLATPANEL_SCALING_DEFAULT 0
146 #define NV_CTRL_FLATPANEL_SCALING_NATIVE 1
147 #define NV_CTRL_FLATPANEL_SCALING_SCALED 2
148 #define NV_CTRL_FLATPANEL_SCALING_CENTERED 3
149 #define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED 4
153 * NV_CTRL_FLATPANEL_DITHERING is deprecated; NV_CTRL_DITHERING should
154 * be used instead.
157 #define NV_CTRL_FLATPANEL_DITHERING 3 /* RWDG */
158 #define NV_CTRL_FLATPANEL_DITHERING_DEFAULT 0
159 #define NV_CTRL_FLATPANEL_DITHERING_ENABLED 1
160 #define NV_CTRL_FLATPANEL_DITHERING_DISABLED 2
163 * NV_CTRL_DITHERING - the requested dithering configuration;
164 * possible values are:
166 * 0: auto (the driver will decide when to dither)
167 * 1: enabled (the driver will always dither when possible)
168 * 2: disabled (the driver will never dither)
171 #define NV_CTRL_DITHERING 3 /* RWDG */
172 #define NV_CTRL_DITHERING_AUTO 0
173 #define NV_CTRL_DITHERING_ENABLED 1
174 #define NV_CTRL_DITHERING_DISABLED 2
178 * NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the
179 * specified display device.
182 #define NV_CTRL_DIGITAL_VIBRANCE 4 /* RWDG */
186 * NV_CTRL_BUS_TYPE - returns the bus type through which the specified device
187 * is connected to the computer.
188 * When this attribute is queried on an X screen target, the bus type of the
189 * GPU driving the X screen is returned.
192 #define NV_CTRL_BUS_TYPE 5 /* R--GI */
193 #define NV_CTRL_BUS_TYPE_AGP 0
194 #define NV_CTRL_BUS_TYPE_PCI 1
195 #define NV_CTRL_BUS_TYPE_PCI_EXPRESS 2
196 #define NV_CTRL_BUS_TYPE_INTEGRATED 3
200 * NV_CTRL_VIDEO_RAM - returns the total amount of memory available
201 * to the specified GPU (or the GPU driving the specified X
202 * screen). Note: if the GPU supports TurboCache(TM), the value
203 * reported may exceed the amount of video memory installed on the
204 * GPU. The value reported for integrated GPUs may likewise exceed
205 * the amount of dedicated system memory set aside by the system
206 * BIOS for use by the integrated GPU.
209 #define NV_CTRL_VIDEO_RAM 6 /* R--G */
213 * NV_CTRL_IRQ - returns the interrupt request line used by the specified
214 * device.
215 * When this attribute is queried on an X screen target, the IRQ of the GPU
216 * driving the X screen is returned.
219 #define NV_CTRL_IRQ 7 /* R--GI */
223 * NV_CTRL_OPERATING_SYSTEM - returns the operating system on which
224 * the X server is running.
227 #define NV_CTRL_OPERATING_SYSTEM 8 /* R--G */
228 #define NV_CTRL_OPERATING_SYSTEM_LINUX 0
229 #define NV_CTRL_OPERATING_SYSTEM_FREEBSD 1
230 #define NV_CTRL_OPERATING_SYSTEM_SUNOS 2
234 * NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients.
235 * This setting is only applied to OpenGL clients that are started
236 * after this setting is applied.
239 #define NV_CTRL_SYNC_TO_VBLANK 9 /* RW-X */
240 #define NV_CTRL_SYNC_TO_VBLANK_OFF 0
241 #define NV_CTRL_SYNC_TO_VBLANK_ON 1
245 * NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL
246 * clients; on some NVIDIA hardware, this can only be enabled or
247 * disabled; on other hardware different levels of anisotropic
248 * filtering can be specified. This setting is only applied to OpenGL
249 * clients that are started after this setting is applied.
252 #define NV_CTRL_LOG_ANISO 10 /* RW-X */
256 * NV_CTRL_FSAA_MODE - the FSAA setting for OpenGL clients; possible
257 * FSAA modes:
259 * NV_CTRL_FSAA_MODE_2x "2x Bilinear Multisampling"
260 * NV_CTRL_FSAA_MODE_2x_5t "2x Quincunx Multisampling"
261 * NV_CTRL_FSAA_MODE_15x15 "1.5 x 1.5 Supersampling"
262 * NV_CTRL_FSAA_MODE_2x2 "2 x 2 Supersampling"
263 * NV_CTRL_FSAA_MODE_4x "4x Bilinear Multisampling"
264 * NV_CTRL_FSAA_MODE_4x_9t "4x Gaussian Multisampling"
265 * NV_CTRL_FSAA_MODE_8x "2x Bilinear Multisampling by 4x Supersampling"
266 * NV_CTRL_FSAA_MODE_16x "4x Bilinear Multisampling by 4x Supersampling"
267 * NV_CTRL_FSAA_MODE_8xS "4x Multisampling by 2x Supersampling"
269 * This setting is only applied to OpenGL clients that are started
270 * after this setting is applied.
273 #define NV_CTRL_FSAA_MODE 11 /* RW-X */
274 #define NV_CTRL_FSAA_MODE_NONE 0
275 #define NV_CTRL_FSAA_MODE_2x 1
276 #define NV_CTRL_FSAA_MODE_2x_5t 2
277 #define NV_CTRL_FSAA_MODE_15x15 3
278 #define NV_CTRL_FSAA_MODE_2x2 4
279 #define NV_CTRL_FSAA_MODE_4x 5
280 #define NV_CTRL_FSAA_MODE_4x_9t 6
281 #define NV_CTRL_FSAA_MODE_8x 7
282 #define NV_CTRL_FSAA_MODE_16x 8
283 #define NV_CTRL_FSAA_MODE_8xS 9
284 #define NV_CTRL_FSAA_MODE_8xQ 10
285 #define NV_CTRL_FSAA_MODE_16xS 11
286 #define NV_CTRL_FSAA_MODE_16xQ 12
287 #define NV_CTRL_FSAA_MODE_32xS 13
288 #define NV_CTRL_FSAA_MODE_32x 14
289 #define NV_CTRL_FSAA_MODE_64xS 15
290 #define NV_CTRL_FSAA_MODE_MAX NV_CTRL_FSAA_MODE_64xS
294 * NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL
295 * clients. This setting is only applied to OpenGL clients that are
296 * started after this setting is applied.
299 #define NV_CTRL_TEXTURE_SHARPEN 12 /* RW-X */
300 #define NV_CTRL_TEXTURE_SHARPEN_OFF 0
301 #define NV_CTRL_TEXTURE_SHARPEN_ON 1
305 * NV_CTRL_UBB - returns whether UBB is enabled for the specified X
306 * screen.
309 #define NV_CTRL_UBB 13 /* R-- */
310 #define NV_CTRL_UBB_OFF 0
311 #define NV_CTRL_UBB_ON 1
315 * NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for
316 * the specified X screen.
319 #define NV_CTRL_OVERLAY 14 /* R-- */
320 #define NV_CTRL_OVERLAY_OFF 0
321 #define NV_CTRL_OVERLAY_ON 1
325 * NV_CTRL_STEREO - returns whether stereo (and what type) is enabled
326 * for the specified X screen.
329 #define NV_CTRL_STEREO 16 /* R-- */
330 #define NV_CTRL_STEREO_OFF 0
331 #define NV_CTRL_STEREO_DDC 1
332 #define NV_CTRL_STEREO_BLUELINE 2
333 #define NV_CTRL_STEREO_DIN 3
334 #define NV_CTRL_STEREO_PASSIVE_EYE_PER_DPY 4
335 #define NV_CTRL_STEREO_VERTICAL_INTERLACED 5
336 #define NV_CTRL_STEREO_COLOR_INTERLACED 6
337 #define NV_CTRL_STEREO_HORIZONTAL_INTERLACED 7
338 #define NV_CTRL_STEREO_CHECKERBOARD_PATTERN 8
339 #define NV_CTRL_STEREO_INVERSE_CHECKERBOARD_PATTERN 9
340 #define NV_CTRL_STEREO_3D_VISION 10
341 #define NV_CTRL_STEREO_3D_VISION_PRO 11
344 * NV_CTRL_EMULATE - controls OpenGL software emulation of future
345 * NVIDIA GPUs.
348 #define NV_CTRL_EMULATE 17 /* RW- */
349 #define NV_CTRL_EMULATE_NONE 0
353 * NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the
354 * specified X screen.
357 #define NV_CTRL_TWINVIEW 18 /* R-- */
358 #define NV_CTRL_TWINVIEW_NOT_ENABLED 0
359 #define NV_CTRL_TWINVIEW_ENABLED 1
363 * NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating the last
364 * cached state of the display devices connected to the GPU or GPU driving
365 * the specified X screen.
367 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
368 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
371 #define NV_CTRL_CONNECTED_DISPLAYS 19 /* R--G */
375 * NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what
376 * display devices are enabled for use on the specified X screen or
377 * GPU.
379 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
380 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
383 #define NV_CTRL_ENABLED_DISPLAYS 20 /* R--G */
385 /**************************************************************************/
387 * Integer attributes specific to configuring Frame Lock on boards that
388 * support it.
393 * NV_CTRL_FRAMELOCK - returns whether the underlying GPU supports
394 * Frame Lock. All of the other frame lock attributes are only
395 * applicable if NV_CTRL_FRAMELOCK is _SUPPORTED.
397 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
398 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
401 #define NV_CTRL_FRAMELOCK 21 /* R--G */
402 #define NV_CTRL_FRAMELOCK_NOT_SUPPORTED 0
403 #define NV_CTRL_FRAMELOCK_SUPPORTED 1
407 * NV_CTRL_FRAMELOCK_MASTER - get/set which display device to use
408 * as the frame lock master for the entire sync group. Note that only
409 * one node in the sync group should be configured as the master.
411 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
412 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
413 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
416 #define NV_CTRL_FRAMELOCK_MASTER 22 /* RW-G */
418 /* These are deprecated. NV_CTRL_FRAMELOCK_MASTER now takes and
419 returns a display mask as value. */
420 #define NV_CTRL_FRAMELOCK_MASTER_FALSE 0
421 #define NV_CTRL_FRAMELOCK_MASTER_TRUE 1
425 * NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the
426 * frame lock pulse, the falling edge of the frame lock pulse or both.
428 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
429 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
430 * target.
433 #define NV_CTRL_FRAMELOCK_POLARITY 23 /* RW-F */
434 #define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE 0x1
435 #define NV_CTRL_FRAMELOCK_POLARITY_FALLING_EDGE 0x2
436 #define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES 0x3
440 * NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the frame lock pulse
441 * and the GPU sync. This value must be multiplied by
442 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION to determine the sync delay in
443 * nanoseconds.
445 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
446 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
447 * target.
449 * USAGE NODE: NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX and
450 * NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR are deprecated.
451 * The Sync Delay _MAX and _FACTOR are different for different
452 * GSync products and so, to be correct, the valid values for
453 * NV_CTRL_FRAMELOCK_SYNC_DELAY must be queried to get the range
454 * of acceptable sync delay values, and
455 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION must be queried to
456 * obtain the correct factor.
459 #define NV_CTRL_FRAMELOCK_SYNC_DELAY 24 /* RW-F */
460 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX 2047 // deprecated
461 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR 7.81 // deprecated
465 * NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses
466 * between the frame lock sync generation (0 == sync every house sync);
467 * this only applies to the master when receiving house sync.
469 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
470 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
471 * target.
474 #define NV_CTRL_FRAMELOCK_SYNC_INTERVAL 25 /* RW-F */
478 * NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0.
480 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
481 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
482 * target.
485 #define NV_CTRL_FRAMELOCK_PORT0_STATUS 26 /* R--F */
486 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT 0
487 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT 1
491 * NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1.
493 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
494 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
495 * target.
498 #define NV_CTRL_FRAMELOCK_PORT1_STATUS 27 /* R--F */
499 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT 0
500 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT 1
504 * NV_CTRL_FRAMELOCK_HOUSE_STATUS - returns whether or not the house
505 * sync signal was detected on the BNC connector of the frame lock
506 * board.
508 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
509 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
510 * target.
513 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS 28 /* R--F */
514 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED 0
515 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED 1
519 * NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of display
520 * devices to the frame lock pulse as specified by previous calls to
521 * NV_CTRL_FRAMELOCK_MASTER and NV_CTRL_FRAMELOCK_SLAVES.
523 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
524 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
525 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
528 #define NV_CTRL_FRAMELOCK_SYNC 29 /* RW-G */
529 #define NV_CTRL_FRAMELOCK_SYNC_DISABLE 0
530 #define NV_CTRL_FRAMELOCK_SYNC_ENABLE 1
534 * NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a frame lock
535 * board is receiving sync (regardless of whether or not any display
536 * devices are using the sync).
538 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
539 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
540 * target.
543 #define NV_CTRL_FRAMELOCK_SYNC_READY 30 /* R--F */
544 #define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE 0
545 #define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE 1
549 * NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo
550 * signal is in sync with the frame lock stereo signal.
552 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
553 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN
554 * target.
557 #define NV_CTRL_FRAMELOCK_STEREO_SYNC 31 /* R--G */
558 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE 0
559 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE 1
563 * NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync
564 * group, tell the master to enable a test signal, then query port[01]
565 * status and sync_ready on all slaves. When done, tell the master to
566 * disable the test signal. Test signal should only be manipulated
567 * while NV_CTRL_FRAMELOCK_SYNC is enabled.
569 * The TEST_SIGNAL is also used to reset the Universal Frame Count (as
570 * returned by the glXQueryFrameCountNV() function in the
571 * GLX_NV_swap_group extension). Note: for best accuracy of the
572 * Universal Frame Count, it is recommended to toggle the TEST_SIGNAL
573 * on and off after enabling frame lock.
575 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
576 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
579 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL 32 /* RW-G */
580 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE 0
581 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE 1
585 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The frame lock boards are
586 * cabled together using regular cat5 cable, connecting to rj45 ports
587 * on the backplane of the card. There is some concern that users may
588 * think these are ethernet ports and connect them to a
589 * router/hub/etc. The hardware can detect this and will shut off to
590 * prevent damage (either to itself or to the router).
591 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if
592 * ethernet is connected to one of the rj45 ports. An appropriate
593 * error message should then be displayed. The _PORT0 and _PORT1
594 * values may be or'ed together.
596 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
597 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
598 * target.
601 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED 33 /* R--F */
602 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE 0
603 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0 0x1
604 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1 0x2
608 * NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set what video mode is used
609 * to interperate the house sync signal. This should only be set
610 * on the master.
612 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
613 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
614 * target.
617 #define NV_CTRL_FRAMELOCK_VIDEO_MODE 34 /* RW-F */
618 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE 0
619 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1
620 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM 2
621 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV 3
624 * During FRAMELOCK bring-up, the above values were redefined to
625 * these:
628 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO 0
629 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1
630 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL 2
631 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL 3
635 * NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the
636 * frame lock board is sending to the GPU, in milliHz.
638 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
639 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
640 * target.
643 #define NV_CTRL_FRAMELOCK_SYNC_RATE 35 /* R--F */
647 /**************************************************************************/
650 * NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific
651 * features such as MMX, SSE, or 3DNOW! for OpenGL clients; this
652 * option may result in performance loss, but may be useful in
653 * conjunction with software such as the Valgrind memory debugger.
654 * This setting is only applied to OpenGL clients that are started
655 * after this setting is applied.
657 * USAGE NOTE: This attribute is deprecated. CPU compatibility is now
658 * checked each time during initialization.
661 #define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW-X */
662 #define NV_CTRL_FORCE_GENERIC_CPU_DISABLE 0
663 #define NV_CTRL_FORCE_GENERIC_CPU_ENABLE 1
667 * NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow
668 * Gamma-corrected antialiased lines to consider variances in the
669 * color display capabilities of output devices when rendering smooth
670 * lines. Only available on recent Quadro GPUs. This setting is only
671 * applied to OpenGL clients that are started after this setting is
672 * applied.
675 #define NV_CTRL_OPENGL_AA_LINE_GAMMA 38 /* RW-X */
676 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE 0
677 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE 1
681 * NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the gpu is both receiving
682 * and locked to an input timing signal. Timing information may come from
683 * the following places: Another frame lock device that is set to master,
684 * the house sync signal, or the GPU's internal timing from a display
685 * device.
687 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
688 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
691 #define NV_CTRL_FRAMELOCK_TIMING 39 /* R--G */
692 #define NV_CTRL_FRAMELOCK_TIMING_FALSE 0
693 #define NV_CTRL_FRAMELOCK_TIMING_TRUE 1
696 * NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping
697 * when possible; when FALSE, OpenGL will alway swap by blitting.
700 #define NV_CTRL_FLIPPING_ALLOWED 40 /* RW-X */
701 #define NV_CTRL_FLIPPING_ALLOWED_FALSE 0
702 #define NV_CTRL_FLIPPING_ALLOWED_TRUE 1
705 * NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is
706 * running.
709 #define NV_CTRL_ARCHITECTURE 41 /* R-- */
710 #define NV_CTRL_ARCHITECTURE_X86 0
711 #define NV_CTRL_ARCHITECTURE_X86_64 1
712 #define NV_CTRL_ARCHITECTURE_IA64 2
716 * NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL. By
717 * default, _SPEC is used, which forces OpenGL texture clamping to
718 * conform with the OpenGL specification. _EDGE forces NVIDIA's
719 * OpenGL implementation to remap GL_CLAMP to GL_CLAMP_TO_EDGE,
720 * which is not strictly conformant, but some applications rely on
721 * the non-conformant behavior.
724 #define NV_CTRL_TEXTURE_CLAMPING 42 /* RW-X */
725 #define NV_CTRL_TEXTURE_CLAMPING_EDGE 0
726 #define NV_CTRL_TEXTURE_CLAMPING_SPEC 1
730 #define NV_CTRL_CURSOR_SHADOW 43 /* RW- */
731 #define NV_CTRL_CURSOR_SHADOW_DISABLE 0
732 #define NV_CTRL_CURSOR_SHADOW_ENABLE 1
734 #define NV_CTRL_CURSOR_SHADOW_ALPHA 44 /* RW- */
735 #define NV_CTRL_CURSOR_SHADOW_RED 45 /* RW- */
736 #define NV_CTRL_CURSOR_SHADOW_GREEN 46 /* RW- */
737 #define NV_CTRL_CURSOR_SHADOW_BLUE 47 /* RW- */
739 #define NV_CTRL_CURSOR_SHADOW_X_OFFSET 48 /* RW- */
740 #define NV_CTRL_CURSOR_SHADOW_Y_OFFSET 49 /* RW- */
745 * When Application Control for FSAA is enabled, then what the
746 * application requests is used, and NV_CTRL_FSAA_MODE is ignored. If
747 * this is disabled, then any application setting is overridden with
748 * NV_CTRL_FSAA_MODE
751 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED 50 /* RW-X */
752 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED 1
753 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED 0
757 * When Application Control for LogAniso is enabled, then what the
758 * application requests is used, and NV_CTRL_LOG_ANISO is ignored. If
759 * this is disabled, then any application setting is overridden with
760 * NV_CTRL_LOG_ANISO
763 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED 51 /* RW-X */
764 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED 1
765 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED 0
769 * IMAGE_SHARPENING adjusts the sharpness of the display's image
770 * quality by amplifying high frequency content. Valid values will
771 * normally be in the range [0,32). Only available on GeForceFX or
772 * newer.
775 #define NV_CTRL_IMAGE_SHARPENING 52 /* RWDG */
779 * NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified
780 * display device.
783 #define NV_CTRL_TV_OVERSCAN 53 /* RWDG */
787 * NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on
788 * the specified display device.
791 #define NV_CTRL_TV_FLICKER_FILTER 54 /* RWDG */
795 * NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the
796 * specified display device.
799 #define NV_CTRL_TV_BRIGHTNESS 55 /* RWDG */
803 * NV_CTRL_TV_HUE adjusts the amount of hue on the specified display
804 * device.
807 #define NV_CTRL_TV_HUE 56 /* RWDG */
811 * NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified
812 * display device.
815 #define NV_CTRL_TV_CONTRAST 57 /* RWDG */
819 * NV_CTRL_TV_SATURATION adjusts the amount of saturation on the
820 * specified display device.
823 #define NV_CTRL_TV_SATURATION 58 /* RWDG */
827 * NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used
828 * to request that all TV Settings be reset to their default values;
829 * typical usage would be that this attribute be sent, and then all
830 * the TV attributes be queried to retrieve their new values.
833 #define NV_CTRL_TV_RESET_SETTINGS 59 /* -WDG */
837 * NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature
838 * of the GPU driving the X screen.
841 #define NV_CTRL_GPU_CORE_TEMPERATURE 60 /* R--G */
845 * NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown
846 * threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and
847 * NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core
848 * slowdown threshold temperatures.
850 * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the
851 * GPU is throttled to prevent overheating.
854 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R--G */
855 #define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD 62 /* R--G */
856 #define NV_CTRL_GPU_MAX_CORE_THRESHOLD 63 /* R--G */
860 * NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the
861 * immediate neighbourhood of the GPU driving the X screen.
864 #define NV_CTRL_AMBIENT_TEMPERATURE 64 /* R--G */
868 * NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen
869 * supports scanout of FP pbuffers;
871 * if this screen does not support PBUFFER_SCANOUT, then all other
872 * PBUFFER_SCANOUT attributes are unavailable.
874 * PBUFFER_SCANOUT is supported if and only if:
875 * - Twinview is configured with clone mode. The secondary screen is used to
876 * scanout the pbuffer.
877 * - The desktop is running in with 16 bits per pixel.
879 #define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED 65 /* R-- */
880 #define NV_CTRL_PBUFFER_SCANOUT_FALSE 0
881 #define NV_CTRL_PBUFFER_SCANOUT_TRUE 1
884 * NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for
885 * scanout.
887 #define NV_CTRL_PBUFFER_SCANOUT_XID 66 /* RW- */
889 /**************************************************************************/
891 * The NV_CTRL_GVO_* integer attributes are used to configure GVO
892 * (Graphics to Video Out). This functionality is available, for
893 * example, on the Quadro FX 4000 SDI graphics board.
895 * The following is a typical usage pattern for the GVO attributes:
897 * - query NV_CTRL_GVO_SUPPORTED to determine if the X screen supports GV0.
899 * - specify NV_CTRL_GVO_SYNC_MODE (one of FREE_RUNNING, GENLOCK, or
900 * FRAMELOCK); if you specify GENLOCK or FRAMELOCK, you should also
901 * specify NV_CTRL_GVO_SYNC_SOURCE.
903 * - Use NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED and
904 * NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED to detect what input syncs are
905 * present.
907 * (If no analog sync is detected but it is known that a valid
908 * bi-level or tri-level sync is connected set
909 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE appropriately and
910 * retest with NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED).
912 * - if syncing to input sync, query the
913 * NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT attribute; note that Input video
914 * format can only be queried after SYNC_SOURCE is specified.
916 * - specify the NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
918 * - specify the NV_CTRL_GVO_DATA_FORMAT
920 * - specify any custom Color Space Conversion (CSC) matrix, offset,
921 * and scale with XNVCTRLSetGvoColorConversion().
923 * - if using the GLX_NV_video_out extension to display one or more
924 * pbuffers, call glXGetVideoDeviceNV() to lock the GVO output for use
925 * by the GLX client; then bind the pbuffer(s) to the GVO output with
926 * glXBindVideoImageNV() and send pbuffers to the GVO output with
927 * glXSendPbufferToVideoNV(); see the GLX_NV_video_out spec for more
928 * details.
930 * - if using the GLX_NV_present_video extension, call
931 * glXBindVideoDeviceNV() to bind the GVO video device to current
932 * OpenGL context.
934 * Note that setting most GVO attributes only causes the value to be
935 * cached in the X server. The values will be flushed to the hardware
936 * either when the next MetaMode is set that uses the GVO display
937 * device, or when a GLX pbuffer is bound to the GVO output (with
938 * glXBindVideoImageNV()).
940 * Note that GLX_NV_video_out/GLX_NV_present_video and X screen use
941 * are mutually exclusive. If a MetaMode is currently using the GVO
942 * device, then glXGetVideoDeviceNV and glXBindVideoImageNV() will
943 * fail. Similarly, if a GLX client has locked the GVO output (via
944 * glXGetVideoDeviceNV or glXBindVideoImageNV), then setting a
945 * MetaMode that uses the GVO device will fail. The
946 * NV_CTRL_GVO_GLX_LOCKED event will be sent when a GLX client locks
947 * the GVO output.
953 * NV_CTRL_GVO_SUPPORTED - returns whether this X screen supports GVO;
954 * if this screen does not support GVO output, then all other GVO
955 * attributes are unavailable.
958 #define NV_CTRL_GVO_SUPPORTED 67 /* R-- */
959 #define NV_CTRL_GVO_SUPPORTED_FALSE 0
960 #define NV_CTRL_GVO_SUPPORTED_TRUE 1
964 * NV_CTRL_GVO_SYNC_MODE - selects the GVO sync mode; possible values
965 * are:
967 * FREE_RUNNING - GVO does not sync to any external signal
969 * GENLOCK - the GVO output is genlocked to an incoming sync signal;
970 * genlocking locks at hsync. This requires that the output video
971 * format exactly match the incoming sync video format.
973 * FRAMELOCK - the GVO output is frame locked to an incoming sync
974 * signal; frame locking locks at vsync. This requires that the output
975 * video format have the same refresh rate as the incoming sync video
976 * format.
979 #define NV_CTRL_GVO_SYNC_MODE 68 /* RW- */
980 #define NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING 0
981 #define NV_CTRL_GVO_SYNC_MODE_GENLOCK 1
982 #define NV_CTRL_GVO_SYNC_MODE_FRAMELOCK 2
986 * NV_CTRL_GVO_SYNC_SOURCE - if NV_CTRL_GVO_SYNC_MODE is set to either
987 * GENLOCK or FRAMELOCK, this controls which sync source is used as
988 * the incoming sync signal (either Composite or SDI). If
989 * NV_CTRL_GVO_SYNC_MODE is FREE_RUNNING, this attribute has no
990 * effect.
993 #define NV_CTRL_GVO_SYNC_SOURCE 69 /* RW- */
994 #define NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE 0
995 #define NV_CTRL_GVO_SYNC_SOURCE_SDI 1
999 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT - specifies the desired output video
1000 * format for GVO devices or the desired input video format for GVI devices.
1002 * Note that for GVO, the valid video formats may vary depending on
1003 * the NV_CTRL_GVO_SYNC_MODE and the incoming sync video format. See
1004 * the definition of NV_CTRL_GVO_SYNC_MODE.
1006 * Note that when querying the ValidValues for this data type, the
1007 * values are reported as bits within a bitmask
1008 * (ATTRIBUTE_TYPE_INT_BITS); unfortunately, there are more valid
1009 * value bits than will fit in a single 32-bit value. To solve this,
1010 * query the ValidValues for NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT to
1011 * check which of the first 31 VIDEO_FORMATS are valid, query the
1012 * ValidValues for NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 to check which
1013 * of the 32-63 VIDEO_FORMATS are valid, and query the ValidValues of
1014 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 to check which of the 64-95
1015 * VIDEO_FORMATS are valid.
1017 * Note: Setting this attribute on a GVI device may also result in the
1018 * following NV-CONTROL attributes being reset on that device (to
1019 * ensure the configuration remains valid):
1020 * NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT
1021 * NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING
1024 #define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT 70 /* RW--I */
1026 #define NV_CTRL_GVIO_VIDEO_FORMAT_NONE 0
1027 #define NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1
1028 #define NV_CTRL_GVIO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2
1029 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_59_94_SMPTE296 3
1030 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296 4
1031 #define NV_CTRL_GVIO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5
1032 #define NV_CTRL_GVIO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6
1033 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7
1034 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8
1035 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9
1036 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10
1037 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11
1038 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12
1039 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13
1040 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14
1041 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15
1042 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_50_00_SMPTE296 16
1043 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17
1044 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18
1045 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_30_00_SMPTE296 19
1046 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_29_97_SMPTE296 20
1047 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_25_00_SMPTE296 21
1048 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_24_00_SMPTE296 22
1049 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_23_98_SMPTE296 23
1050 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24
1051 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25
1052 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26
1053 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27
1054 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28
1055 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_30_00_SMPTE372 29
1056 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_29_97_SMPTE372 30
1057 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_60_00_SMPTE372 31
1058 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_59_94_SMPTE372 32
1059 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_25_00_SMPTE372 33
1060 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_50_00_SMPTE372 34
1061 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_24_00_SMPTE372 35
1062 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_23_98_SMPTE372 36
1063 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_48_00_SMPTE372 37
1064 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_SMPTE372 38
1065 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_50_00_3G_LEVEL_A_SMPTE274 39
1066 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_59_94_3G_LEVEL_A_SMPTE274 40
1067 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_60_00_3G_LEVEL_A_SMPTE274 41
1068 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_60_00_3G_LEVEL_B_SMPTE274 42
1069 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_60_00_3G_LEVEL_B_SMPTE274 43
1070 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_60_00_3G_LEVEL_B_SMPTE372 44
1071 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_50_00_3G_LEVEL_B_SMPTE274 45
1072 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_3G_LEVEL_B_SMPTE274 46
1073 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_50_00_3G_LEVEL_B_SMPTE372 47
1074 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_30_00_3G_LEVEL_B_SMPTE274 48
1075 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_30_00_3G_LEVEL_B_SMPTE372 49
1076 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_25_00_3G_LEVEL_B_SMPTE274 50
1077 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_25_00_3G_LEVEL_B_SMPTE372 51
1078 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_24_00_3G_LEVEL_B_SMPTE274 52
1079 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_24_00_3G_LEVEL_B_SMPTE372 53
1080 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_48_00_3G_LEVEL_B_SMPTE274 54
1081 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_48_00_3G_LEVEL_B_SMPTE372 55
1082 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_59_94_3G_LEVEL_B_SMPTE274 56
1083 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_59_94_3G_LEVEL_B_SMPTE274 57
1084 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_59_94_3G_LEVEL_B_SMPTE372 58
1085 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_29_97_3G_LEVEL_B_SMPTE274 59
1086 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_29_97_3G_LEVEL_B_SMPTE372 60
1087 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_23_98_3G_LEVEL_B_SMPTE274 61
1088 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_23_98_3G_LEVEL_B_SMPTE372 62
1089 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_47_96_3G_LEVEL_B_SMPTE274 63
1090 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_3G_LEVEL_B_SMPTE372 64
1094 * The following are deprecated; NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT and the
1095 * corresponding NV_CTRL_GVIO_* formats should be used instead.
1097 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 70 /* RW- */
1099 #define NV_CTRL_GVO_VIDEO_FORMAT_NONE 0
1100 #define NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1
1101 #define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2
1102 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296 3
1103 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296 4
1104 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5
1105 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6
1106 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7
1107 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8
1108 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9
1109 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10
1110 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11
1111 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12
1112 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13
1113 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14
1114 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15
1115 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_50_00_SMPTE296 16
1116 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17
1117 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18
1118 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_30_00_SMPTE296 19
1119 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_29_97_SMPTE296 20
1120 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_25_00_SMPTE296 21
1121 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296 22
1122 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296 23
1123 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24
1124 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25
1125 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26
1126 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27
1127 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28
1128 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_30_00_SMPTE372 29
1129 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_29_97_SMPTE372 30
1130 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_60_00_SMPTE372 31
1131 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_59_94_SMPTE372 32
1132 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_25_00_SMPTE372 33
1133 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_50_00_SMPTE372 34
1134 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_24_00_SMPTE372 35
1135 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_23_98_SMPTE372 36
1136 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_48_00_SMPTE372 37
1137 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_47_96_SMPTE372 38
1140 * NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT - indicates the input video format
1141 * detected for GVO or GVI devices; the possible values are the
1142 * NV_CTRL_GVIO_VIDEO_FORMAT constants.
1144 * For GVI devices, the jack number should be specified in the lower
1145 * 16 bits of the "display_mask" parameter, while the channel number should be
1146 * specified in the upper 16 bits.
1149 #define NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT 71 /* R--I */
1152 * The following is deprecated. Use NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT,
1153 * instead.
1155 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT 71 /* R-- */
1158 * NV_CTRL_GVO_DATA_FORMAT - This controls how the data in the source
1159 * (either the X screen or the GLX pbuffer) is interpretted and
1160 * displayed.
1162 * Note: some of the below DATA_FORMATS have been renamed. For
1163 * example, R8G8B8_TO_RGB444 has been renamed to X8X8X8_444_PASSTHRU.
1164 * This is to more accurately reflect DATA_FORMATS where the
1165 * per-channel data could be either RGB or YCrCb -- the point is that
1166 * the driver and GVO hardware do not perform any implicit color space
1167 * conversion on the data; it is passed through to the SDI out.
1170 #define NV_CTRL_GVO_DATA_FORMAT 72 /* RW- */
1171 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444 0
1172 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4444 1
1173 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4444 2
1174 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422 3
1175 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4224 4
1176 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4224 5
1177 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_RGB444 6 // renamed
1178 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU 6
1179 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_RGBA4444 7 // renamed
1180 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4444_PASSTHRU 7
1181 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_RGBZ4444 8 // renamed
1182 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4444_PASSTHRU 8
1183 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR10CB10_TO_YCRCB444 9 // renamed
1184 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_444_PASSTHRU 9
1185 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8_TO_YCRCB444 10 // renamed
1186 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_444_PASSTHRU 10
1187 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8A10_TO_YCRCBA4444 11 // renamed
1188 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4444_PASSTHRU 11
1189 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8Z10_TO_YCRCBZ4444 12 // renamed
1190 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4444_PASSTHRU 12
1191 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_R8G8B8_TO_DUAL_YCRCB422 13
1192 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_Y8CR8CB8_TO_DUAL_YCRCB422 14 // renamed
1193 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_X8X8X8_TO_DUAL_422_PASSTHRU 14
1194 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB422 15
1195 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB444 16
1196 #define NV_CTRL_GVO_DATA_FORMAT_Y12CR12CB12_TO_YCRCB444 17 // renamed
1197 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_444_PASSTHRU 17
1198 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB444 18
1199 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_422_PASSTHRU 19
1200 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4224_PASSTHRU 20
1201 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4224_PASSTHRU 21
1202 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_422_PASSTHRU 22
1203 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_422_PASSTHRU 23
1204 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4224_PASSTHRU 24
1205 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4224_PASSTHRU 25
1206 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_422_PASSTHRU 26
1207 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB422 27
1210 * NV_CTRL_GVO_DISPLAY_X_SCREEN - no longer supported
1213 #define NV_CTRL_GVO_DISPLAY_X_SCREEN 73 /* RW- */
1214 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE 1
1215 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE 0
1219 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED - indicates whether
1220 * Composite Sync input is detected.
1223 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED 74 /* R-- */
1224 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE 0
1225 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_TRUE 1
1229 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE - get/set the
1230 * Composite Sync input detect mode.
1233 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE 75 /* RW- */
1234 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO 0
1235 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL 1
1236 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL 2
1240 * NV_CTRL_GVO_SYNC_INPUT_DETECTED - indicates whether SDI Sync input
1241 * is detected, and what type.
1244 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED 76 /* R-- */
1245 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE 0
1246 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD 1
1247 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD 2
1251 * NV_CTRL_GVO_VIDEO_OUTPUTS - indicates which GVO video output
1252 * connectors are currently outputing data.
1255 #define NV_CTRL_GVO_VIDEO_OUTPUTS 77 /* R-- */
1256 #define NV_CTRL_GVO_VIDEO_OUTPUTS_NONE 0
1257 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO1 1
1258 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO2 2
1259 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO_BOTH 3
1263 * NV_CTRL_GVO_FPGA_VERSION - indicates the version of the Firmware on
1264 * the GVO device. Deprecated; use
1265 * NV_CTRL_STRING_GVIO_FIRMWARE_VERSION instead.
1268 #define NV_CTRL_GVO_FIRMWARE_VERSION 78 /* R-- */
1272 * NV_CTRL_GVO_SYNC_DELAY_PIXELS - controls the delay between the
1273 * input sync and the output sync in numbers of pixels from hsync;
1274 * this is a 12 bit value.
1276 * If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set,
1277 * then setting this value will set an advance instead of a delay.
1280 #define NV_CTRL_GVO_SYNC_DELAY_PIXELS 79 /* RW- */
1284 * NV_CTRL_GVO_SYNC_DELAY_LINES - controls the delay between the input
1285 * sync and the output sync in numbers of lines from vsync; this is a
1286 * 12 bit value.
1288 * If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set,
1289 * then setting this value will set an advance instead of a delay.
1292 #define NV_CTRL_GVO_SYNC_DELAY_LINES 80 /* RW- */
1296 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE - must be set for a period
1297 * of about 2 seconds for the new InputVideoFormat to be properly
1298 * locked to. In nvidia-settings, we do a reacquire whenever genlock
1299 * or frame lock mode is entered into, when the user clicks the
1300 * "detect" button. This value can be written, but always reads back
1301 * _FALSE.
1304 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE 81 /* -W- */
1305 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE 0
1306 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE 1
1310 * NV_CTRL_GVO_GLX_LOCKED - indicates that GVO configurability is
1311 * locked by GLX; this occurs when either glXGetVideoDeviceNV (part of
1312 * GLX_NV_video_out) or glXBindVideoDeviceNV (part of
1313 * GLX_NV_present_video) is called. All GVO output resources are
1314 * locked until released by the GLX_NV_video_out/GLX_NV_present_video
1315 * client.
1317 * When GVO is locked, setting of the following GVO NV-CONTROL attributes will
1318 * not happen immediately and will instead be cached. The GVO resource will
1319 * need to be disabled/released and re-enabled/claimed for the values to be
1320 * flushed. These attributes are:
1321 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
1322 * NV_CTRL_GVO_DATA_FORMAT
1323 * NV_CTRL_GVO_FLIP_QUEUE_SIZE
1325 * This attribute is deprecated and may be removed in a future release. Its
1326 * functionality has been replaced by NV_CTRL_GVO_LOCK_OWNER.
1329 #define NV_CTRL_GVO_GLX_LOCKED 82 /* R-- */
1330 #define NV_CTRL_GVO_GLX_LOCKED_FALSE 0
1331 #define NV_CTRL_GVO_GLX_LOCKED_TRUE 1
1335 * NV_CTRL_GVIO_VIDEO_FORMAT_{WIDTH,HEIGHT,REFRESH_RATE} - query the
1336 * width, height, and refresh rate for the specified
1337 * NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be queried with
1338 * existing interfaces, XNVCTRLQueryAttribute() should be used, and
1339 * the video format specified in the display_mask field; eg:
1341 * XNVCTRLQueryAttribute (dpy,
1342 * screen,
1343 * NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC,
1344 * NV_CTRL_GVIO_VIDEO_FORMAT_WIDTH,
1345 * &value);
1347 * Note that Refresh Rate is in milliHertz values
1350 #define NV_CTRL_GVIO_VIDEO_FORMAT_WIDTH 83 /* R--I */
1351 #define NV_CTRL_GVIO_VIDEO_FORMAT_HEIGHT 84 /* R--I */
1352 #define NV_CTRL_GVIO_VIDEO_FORMAT_REFRESH_RATE 85 /* R--I */
1354 /* The following are deprecated; use the NV_CTRL_GVIO_* versions, instead */
1355 #define NV_CTRL_GVO_VIDEO_FORMAT_WIDTH 83 /* R-- */
1356 #define NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT 84 /* R-- */
1357 #define NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE 85 /* R-- */
1361 * NV_CTRL_GVO_X_SCREEN_PAN_[XY] - no longer supported
1364 #define NV_CTRL_GVO_X_SCREEN_PAN_X 86 /* RW- */
1365 #define NV_CTRL_GVO_X_SCREEN_PAN_Y 87 /* RW- */
1369 * NV_CTRL_GPU_OVERCLOCKING_STATE - query the current or set a new
1370 * overclocking state; the value of this attribute controls the
1371 * availability of additional overclocking attributes (see below).
1373 * Note: this attribute is unavailable unless overclocking support
1374 * has been enabled in the X server (by the user).
1377 #define NV_CTRL_GPU_OVERCLOCKING_STATE 88 /* RW-G */
1378 #define NV_CTRL_GPU_OVERCLOCKING_STATE_NONE 0
1379 #define NV_CTRL_GPU_OVERCLOCKING_STATE_MANUAL 1
1383 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS - query or set the GPU and memory
1384 * clocks of the device driving the X screen. New clock frequencies
1385 * are tested before being applied, and may be rejected.
1387 * Note: if the target clocks are too aggressive, their testing may
1388 * render the system unresponsive.
1390 * Note: while this attribute can always be queried, it can't be set
1391 * unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL. Since
1392 * the target clocks may be rejected, the requester should read this
1393 * attribute after the set to determine success or failure.
1395 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS are "packed" integer attributes; the
1396 * GPU clock is stored in the upper 16 bits of the integer, and the
1397 * memory clock is stored in the lower 16 bits of the integer. All
1398 * clock values are in MHz.
1401 #define NV_CTRL_GPU_2D_CLOCK_FREQS 89 /* RW-G */
1402 #define NV_CTRL_GPU_3D_CLOCK_FREQS 90 /* RW-G */
1406 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS - query the default memory
1407 * and GPU core clocks of the device driving the X screen.
1409 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS are "packed" integer
1410 * attributes; the GPU clock is stored in the upper 16 bits of the
1411 * integer, and the memory clock is stored in the lower 16 bits of the
1412 * integer. All clock values are in MHz.
1415 #define NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS 91 /* R--G */
1416 #define NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS 92 /* R--G */
1420 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS - query the current GPU and memory
1421 * clocks of the graphics device driving the X screen.
1423 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS is a "packed" integer attribute;
1424 * the GPU clock is stored in the upper 16 bits of the integer, and
1425 * the memory clock is stored in the lower 16 bits of the integer.
1426 * All clock values are in MHz. All clock values are in MHz.
1429 #define NV_CTRL_GPU_CURRENT_CLOCK_FREQS 93 /* R--G */
1433 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS - Holds the last calculated
1434 * optimal 3D clock frequencies found by the
1435 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION process. Querying this
1436 * attribute before having probed for the optimal clocks will return
1437 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID
1439 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
1440 * optimal clock detection process is unavailable.
1443 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS 94 /* R--G */
1444 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 0
1448 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION - set to _START to
1449 * initiate testing for the optimal 3D clock frequencies. Once
1450 * found, the optimal clock frequencies will be returned by the
1451 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS attribute asynchronously
1452 * (using an X event, see XNVCtrlSelectNotify).
1454 * To cancel an ongoing test for the optimal clocks, set the
1455 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION attribute to _CANCEL
1457 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
1458 * optimal clock detection process is unavailable.
1461 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION 95 /* -W-G */
1462 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_START 0
1463 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_CANCEL 1
1467 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE - query this
1468 * variable to know if a test is currently being run to
1469 * determine the optimal 3D clock frequencies. _BUSY means a
1470 * test is currently running, _IDLE means the test is not running.
1472 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
1473 * optimal clock detection process is unavailable.
1476 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE 96 /* R--G */
1477 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_IDLE 0
1478 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_BUSY 1
1482 * NV_CTRL_FLATPANEL_CHIP_LOCATION - for the specified display device,
1483 * report whether the flat panel is driven by the on-chip controller,
1484 * or a separate controller chip elsewhere on the graphics board.
1485 * This attribute is only available for flat panels.
1488 #define NV_CTRL_FLATPANEL_CHIP_LOCATION 215/* R-DG */
1489 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_INTERNAL 0
1490 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_EXTERNAL 1
1493 * NV_CTRL_FLATPANEL_LINK - report the number of links for a DVI connection, or
1494 * the main link's active lane count for DisplayPort.
1495 * This attribute is only available for flat panels.
1498 #define NV_CTRL_FLATPANEL_LINK 216/* R-DG */
1499 #define NV_CTRL_FLATPANEL_LINK_SINGLE 0
1500 #define NV_CTRL_FLATPANEL_LINK_DUAL 1
1501 #define NV_CTRL_FLATPANEL_LINK_QUAD 3
1504 * NV_CTRL_FLATPANEL_SIGNAL - for the specified display device, report
1505 * whether the flat panel is driven by an LVDS, TMDS, or DisplayPort signal.
1506 * This attribute is only available for flat panels.
1509 #define NV_CTRL_FLATPANEL_SIGNAL 217/* R-DG */
1510 #define NV_CTRL_FLATPANEL_SIGNAL_LVDS 0
1511 #define NV_CTRL_FLATPANEL_SIGNAL_TMDS 1
1512 #define NV_CTRL_FLATPANEL_SIGNAL_DISPLAYPORT 2
1516 * NV_CTRL_USE_HOUSE_SYNC - when TRUE, the server (master) frame lock
1517 * device will propagate the incoming house sync signal as the outgoing
1518 * frame lock sync signal. If the frame lock device cannot detect a
1519 * frame lock sync signal, it will default to using the internal timings
1520 * from the GPU connected to the primary connector.
1522 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1523 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
1524 * target.
1527 #define NV_CTRL_USE_HOUSE_SYNC 218/* RW-F */
1528 #define NV_CTRL_USE_HOUSE_SYNC_FALSE 0
1529 #define NV_CTRL_USE_HOUSE_SYNC_TRUE 1
1532 * NV_CTRL_EDID_AVAILABLE - report if an EDID is available for the
1533 * specified display device.
1535 * This attribute may also be queried through XNVCTRLQueryTargetAttribute()
1536 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN
1537 * target.
1540 #define NV_CTRL_EDID_AVAILABLE 219 /* R-DG */
1541 #define NV_CTRL_EDID_AVAILABLE_FALSE 0
1542 #define NV_CTRL_EDID_AVAILABLE_TRUE 1
1545 * NV_CTRL_FORCE_STEREO - when TRUE, OpenGL will force stereo flipping
1546 * even when no stereo drawables are visible (if the device is configured
1547 * to support it, see the "Stereo" X config option).
1548 * When false, fall back to the default behavior of only flipping when a
1549 * stereo drawable is visible.
1552 #define NV_CTRL_FORCE_STEREO 220 /* RW- */
1553 #define NV_CTRL_FORCE_STEREO_FALSE 0
1554 #define NV_CTRL_FORCE_STEREO_TRUE 1
1558 * NV_CTRL_IMAGE_SETTINGS - the image quality setting for OpenGL clients.
1560 * This setting is only applied to OpenGL clients that are started
1561 * after this setting is applied.
1564 #define NV_CTRL_IMAGE_SETTINGS 221 /* RW-X */
1565 #define NV_CTRL_IMAGE_SETTINGS_HIGH_QUALITY 0
1566 #define NV_CTRL_IMAGE_SETTINGS_QUALITY 1
1567 #define NV_CTRL_IMAGE_SETTINGS_PERFORMANCE 2
1568 #define NV_CTRL_IMAGE_SETTINGS_HIGH_PERFORMANCE 3
1572 * NV_CTRL_XINERAMA - return whether xinerama is enabled
1575 #define NV_CTRL_XINERAMA 222 /* R--G */
1576 #define NV_CTRL_XINERAMA_OFF 0
1577 #define NV_CTRL_XINERAMA_ON 1
1580 * NV_CTRL_XINERAMA_STEREO - when TRUE, OpenGL will allow stereo flipping
1581 * on multiple X screens configured with Xinerama.
1582 * When FALSE, flipping is allowed only on one X screen at a time.
1585 #define NV_CTRL_XINERAMA_STEREO 223 /* RW- */
1586 #define NV_CTRL_XINERAMA_STEREO_FALSE 0
1587 #define NV_CTRL_XINERAMA_STEREO_TRUE 1
1590 * NV_CTRL_BUS_RATE - if the bus type of the specified device is AGP, then
1591 * NV_CTRL_BUS_RATE returns the configured AGP transfer rate. If the bus type
1592 * is PCI Express, then this attribute returns the maximum link width.
1593 * When this attribute is queried on an X screen target, the bus rate of the
1594 * GPU driving the X screen is returned.
1597 #define NV_CTRL_BUS_RATE 224 /* R--GI */
1600 * NV_CTRL_GPU_PCIE_MAX_LINK_WIDTH - returns the maximum
1601 * PCIe link width, in number of lanes.
1603 #define NV_CTRL_GPU_PCIE_MAX_LINK_WIDTH NV_CTRL_BUS_RATE
1606 * NV_CTRL_SHOW_SLI_HUD - when TRUE, OpenGL will draw information about the
1607 * current SLI mode.
1608 * Renamed this attribute to NV_CTRL_SHOW_SLI_VISUAL_INDICATOR
1611 #define NV_CTRL_SHOW_SLI_HUD NV_CTRL_SHOW_SLI_VISUAL_INDICATOR
1612 #define NV_CTRL_SHOW_SLI_HUD_FALSE NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_FALSE
1613 #define NV_CTRL_SHOW_SLI_HUD_TRUE NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_TRUE
1616 * NV_CTRL_SHOW_SLI_VISUAL_INDICATOR - when TRUE, OpenGL will draw information
1617 * about the current SLI mode.
1620 #define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR 225 /* RW-X */
1621 #define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_FALSE 0
1622 #define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_TRUE 1
1625 * NV_CTRL_XV_SYNC_TO_DISPLAY - this control is valid when TwinView and
1626 * XVideo Sync To VBlank are enabled.
1627 * It controls which display device will be synched to.
1630 #define NV_CTRL_XV_SYNC_TO_DISPLAY 226 /* RW- */
1633 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 - this attribute is only
1634 * intended to be used to query the ValidValues for
1635 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for VIDEO_FORMAT values between
1636 * 31 and 63. See NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for details.
1639 #define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 227 /* ---GI */
1642 * The following is deprecated; use NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2,
1643 * instead
1645 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 227 /* --- */
1649 * NV_CTRL_GVO_OVERRIDE_HW_CSC - Override the SDI hardware's Color Space
1650 * Conversion with the values controlled through
1651 * XNVCTRLSetGvoColorConversion() and XNVCTRLGetGvoColorConversion(). If
1652 * this attribute is FALSE, then the values specified through
1653 * XNVCTRLSetGvoColorConversion() are ignored.
1656 #define NV_CTRL_GVO_OVERRIDE_HW_CSC 228 /* RW- */
1657 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_FALSE 0
1658 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_TRUE 1
1662 * NV_CTRL_GVO_CAPABILITIES - this read-only attribute describes GVO
1663 * capabilities that differ between NVIDIA SDI products. This value
1664 * is a bitmask where each bit indicates whether that capability is
1665 * available.
1667 * APPLY_CSC_IMMEDIATELY - whether the CSC matrix, offset, and scale
1668 * specified through XNVCTRLSetGvoColorConversion() will take affect
1669 * immediately, or only after SDI output is disabled and enabled
1670 * again.
1672 * APPLY_CSC_TO_X_SCREEN - whether the CSC matrix, offset, and scale
1673 * specified through XNVCTRLSetGvoColorConversion() will also apply
1674 * to GVO output of an X screen, or only to OpenGL GVO output, as
1675 * enabled through the GLX_NV_video_out extension.
1677 * COMPOSITE_TERMINATION - whether the 75 ohm termination of the
1678 * SDI composite input signal can be programmed through the
1679 * NV_CTRL_GVO_COMPOSITE_TERMINATION attribute.
1681 * SHARED_SYNC_BNC - whether the SDI device has a single BNC
1682 * connector used for both (SDI & Composite) incoming signals.
1684 * MULTIRATE_SYNC - whether the SDI device supports synchronization
1685 * of input and output video modes that match in being odd or even
1686 * modes (ie, AA.00 Hz modes can be synched to other BB.00 Hz modes and
1687 * AA.XX Hz can match to BB.YY Hz where .XX and .YY are not .00)
1690 #define NV_CTRL_GVO_CAPABILITIES 229 /* R-- */
1691 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x00000001
1692 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x00000002
1693 #define NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION 0x00000004
1694 #define NV_CTRL_GVO_CAPABILITIES_SHARED_SYNC_BNC 0x00000008
1695 #define NV_CTRL_GVO_CAPABILITIES_MULTIRATE_SYNC 0x00000010
1696 #define NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW 0x00000020
1700 * NV_CTRL_GVO_COMPOSITE_TERMINATION - enable or disable 75 ohm
1701 * termination of the SDI composite input signal.
1704 #define NV_CTRL_GVO_COMPOSITE_TERMINATION 230 /* RW- */
1705 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE 1
1706 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE 0
1710 * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES - display device mask indicating
1711 * which display devices are "associated" with the specified X screen
1712 * (ie: are available to the X screen for displaying the X screen).
1715 #define NV_CTRL_ASSOCIATED_DISPLAY_DEVICES 231 /* RW- */
1718 * NV_CTRL_FRAMELOCK_SLAVES - get/set whether the display device(s)
1719 * given should listen or ignore the master's sync signal.
1721 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
1722 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
1723 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
1726 #define NV_CTRL_FRAMELOCK_SLAVES 232 /* RW-G */
1729 * NV_CTRL_FRAMELOCK_MASTERABLE - Can any of the given display devices
1730 * be set as master of the frame lock group. Returns a bitmask of the
1731 * corresponding display devices that can be set as master.
1733 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
1734 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
1735 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
1738 #define NV_CTRL_FRAMELOCK_MASTERABLE 233 /* R-DG */
1741 * NV_CTRL_PROBE_DISPLAYS - re-probes the hardware to detect what
1742 * display devices are connected to the GPU or GPU driving the
1743 * specified X screen. Returns a display mask.
1745 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1746 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
1749 #define NV_CTRL_PROBE_DISPLAYS 234 /* R--G */
1753 * NV_CTRL_REFRESH_RATE - Returns the refresh rate of the specified
1754 * display device in 100 * Hz (ie. to get the refresh rate in Hz, divide
1755 * the returned value by 100.)
1757 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1758 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
1761 #define NV_CTRL_REFRESH_RATE 235 /* R-DG */
1765 * NV_CTRL_GVO_FLIP_QUEUE_SIZE - The Graphics to Video Out interface
1766 * exposed through NV-CONTROL and the GLX_NV_video_out extension uses
1767 * an internal flip queue when pbuffers are sent to the video device
1768 * (via glXSendPbufferToVideoNV()). The NV_CTRL_GVO_FLIP_QUEUE_SIZE
1769 * can be used to query and assign the flip queue size. This
1770 * attribute is applied to GLX when glXGetVideoDeviceNV() is called by
1771 * the application.
1774 #define NV_CTRL_GVO_FLIP_QUEUE_SIZE 236 /* RW- */
1778 * NV_CTRL_CURRENT_SCANLINE - query the current scanline for the
1779 * specified display device.
1782 #define NV_CTRL_CURRENT_SCANLINE 237 /* R-DG */
1786 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT - Controls where X pixmaps are initially
1787 * created.
1789 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM causes pixmaps to stay in
1790 * system memory. These pixmaps can't be accelerated by the NVIDIA driver; this
1791 * will cause blank windows if used with an OpenGL compositing manager.
1792 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM creates pixmaps in system memory
1793 * initially, but allows them to migrate to video memory.
1794 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM creates pixmaps in video memory
1795 * when enough resources are available.
1796 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED is currently reserved for future
1797 * use. Behavior is undefined.
1798 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM creates pixmaps in GPU accessible
1799 * system memory when enough resources are available.
1802 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT 238 /* RW- */
1803 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM 0
1804 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM 1
1805 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM 2
1806 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED 3
1807 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM 4
1811 * NV_CTRL_PCI_BUS - Returns the PCI bus number the specified device is using.
1814 #define NV_CTRL_PCI_BUS 239 /* R--GI */
1818 * NV_CTRL_PCI_DEVICE - Returns the PCI device number the specified device is
1819 * using.
1822 #define NV_CTRL_PCI_DEVICE 240 /* R--GI */
1826 * NV_CTRL_PCI_FUNCTION - Returns the PCI function number the specified device
1827 * is using.
1830 #define NV_CTRL_PCI_FUNCTION 241 /* R--GI */
1834 * NV_CTRL_FRAMELOCK_FPGA_REVISION - Querys the FPGA revision of the
1835 * Frame Lock device.
1837 * This attribute must be queried through XNVCTRLQueryTargetAttribute()
1838 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target.
1841 #define NV_CTRL_FRAMELOCK_FPGA_REVISION 242 /* R--F */
1844 * NV_CTRL_MAX_SCREEN_{WIDTH,HEIGHT} - the maximum allowable size, in
1845 * pixels, of either the specified X screen (if the target_type of the
1846 * query is an X screen), or any X screen on the specified GPU (if the
1847 * target_type of the query is a GPU).
1850 #define NV_CTRL_MAX_SCREEN_WIDTH 243 /* R--G */
1851 #define NV_CTRL_MAX_SCREEN_HEIGHT 244 /* R--G */
1855 * NV_CTRL_MAX_DISPLAYS - the maximum number of display devices that
1856 * can be driven simultaneously on a GPU (e.g., that can be used in a
1857 * MetaMode at once). Note that this does not indicate the maximum
1858 * number of bits that can be set in NV_CTRL_CONNECTED_DISPLAYS,
1859 * because more display devices can be connected than are actively in
1860 * use.
1863 #define NV_CTRL_MAX_DISPLAYS 245 /* R--G */
1867 * NV_CTRL_DYNAMIC_TWINVIEW - Returns whether or not the screen
1868 * supports dynamic twinview.
1871 #define NV_CTRL_DYNAMIC_TWINVIEW 246 /* R-- */
1875 * NV_CTRL_MULTIGPU_DISPLAY_OWNER - Returns the (NV-CONTROL) GPU ID of
1876 * the GPU that has the display device(s) used for showing the X Screen.
1879 #define NV_CTRL_MULTIGPU_DISPLAY_OWNER 247 /* R-- */
1883 * NV_CTRL_GPU_SCALING - not supported
1886 #define NV_CTRL_GPU_SCALING 248 /* RWDG */
1888 #define NV_CTRL_GPU_SCALING_TARGET_INVALID 0
1889 #define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_BEST_FIT 1
1890 #define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_NATIVE 2
1892 #define NV_CTRL_GPU_SCALING_METHOD_INVALID 0
1893 #define NV_CTRL_GPU_SCALING_METHOD_STRETCHED 1
1894 #define NV_CTRL_GPU_SCALING_METHOD_CENTERED 2
1895 #define NV_CTRL_GPU_SCALING_METHOD_ASPECT_SCALED 3
1899 * NV_CTRL_FRONTEND_RESOLUTION - not supported
1902 #define NV_CTRL_FRONTEND_RESOLUTION 249 /* R-DG */
1906 * NV_CTRL_BACKEND_RESOLUTION - not supported
1909 #define NV_CTRL_BACKEND_RESOLUTION 250 /* R-DG */
1913 * NV_CTRL_FLATPANEL_NATIVE_RESOLUTION - Returns the dimensions of the
1914 * native resolution of the flat panel as determined by the
1915 * NVIDIA X Driver.
1917 * The native resolution is the resolution at which a flat panel
1918 * must display any image. All other resolutions must be scaled to this
1919 * resolution through GPU scaling or the DFP's native scaling capabilities
1920 * in order to be displayed.
1922 * This attribute is only valid for flat panel (DFP) display devices.
1924 * This attribute is a packed integer; the width is packed in the upper
1925 * 16-bits and the height is packed in the lower 16-bits.
1928 #define NV_CTRL_FLATPANEL_NATIVE_RESOLUTION 251 /* R-DG */
1932 * NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION - not supported
1935 #define NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION 252 /* R-DG */
1939 * NV_CTRL_GPU_SCALING_ACTIVE - not supported
1942 #define NV_CTRL_GPU_SCALING_ACTIVE 253 /* R-DG */
1946 * NV_CTRL_DFP_SCALING_ACTIVE - not supported
1949 #define NV_CTRL_DFP_SCALING_ACTIVE 254 /* R-DG */
1953 * NV_CTRL_FSAA_APPLICATION_ENHANCED - Controls how the NV_CTRL_FSAA_MODE
1954 * is applied when NV_CTRL_FSAA_APPLICATION_CONTROLLED is set to
1955 * NV_CTRL_APPLICATION_CONTROLLED_DISABLED. When
1956 * NV_CTRL_FSAA_APPLICATION_ENHANCED is _DISABLED, OpenGL applications will
1957 * be forced to use the FSAA mode specified by NV_CTRL_FSAA_MODE. when set
1958 * to _ENABLED, only those applications that have selected a multisample
1959 * FBConfig will be made to use the NV_CTRL_FSAA_MODE specified.
1961 * This attribute is ignored when NV_CTRL_FSAA_APPLICATION_CONTROLLED is
1962 * set to NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED.
1965 #define NV_CTRL_FSAA_APPLICATION_ENHANCED 255 /* RW-X */
1966 #define NV_CTRL_FSAA_APPLICATION_ENHANCED_ENABLED 1
1967 #define NV_CTRL_FSAA_APPLICATION_ENHANCED_DISABLED 0
1971 * NV_CTRL_FRAMELOCK_SYNC_RATE_4 - This is the refresh rate that the
1972 * frame lock board is sending to the GPU with 4 digits of precision.
1974 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1975 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK.
1978 #define NV_CTRL_FRAMELOCK_SYNC_RATE_4 256 /* R--F */
1982 * NV_CTRL_GVO_LOCK_OWNER - indicates that the GVO device is available
1983 * or in use (by GLX or an X screen).
1985 * The GVO device is locked by GLX when either glXGetVideoDeviceNV
1986 * (part of GLX_NV_video_out) or glXBindVideoDeviceNV (part of
1987 * GLX_NV_present_video) is called. All GVO output resources are
1988 * locked until released by the GLX_NV_video_out/GLX_NV_present_video
1989 * client.
1991 * The GVO device is locked/unlocked by an X screen, when the GVO device is
1992 * used in a MetaMode on an X screen.
1994 * When the GVO device is locked, setting of the following GVO NV-CONTROL
1995 * attributes will not happen immediately and will instead be cached. The
1996 * GVO resource will need to be disabled/released and re-enabled/claimed for
1997 * the values to be flushed. These attributes are:
1999 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
2000 * NV_CTRL_GVO_DATA_FORMAT
2001 * NV_CTRL_GVO_FLIP_QUEUE_SIZE
2004 #define NV_CTRL_GVO_LOCK_OWNER 257 /* R-- */
2005 #define NV_CTRL_GVO_LOCK_OWNER_NONE 0
2006 #define NV_CTRL_GVO_LOCK_OWNER_GLX 1
2007 #define NV_CTRL_GVO_LOCK_OWNER_CLONE /* no longer supported */ 2
2008 #define NV_CTRL_GVO_LOCK_OWNER_X_SCREEN 3
2012 * NV_CTRL_HWOVERLAY - when a workstation overlay is in use, reports
2013 * whether the hardware overlay is used, or if the overlay is emulated.
2016 #define NV_CTRL_HWOVERLAY 258 /* R-- */
2017 #define NV_CTRL_HWOVERLAY_FALSE 0
2018 #define NV_CTRL_HWOVERLAY_TRUE 1
2021 * NV_CTRL_NUM_GPU_ERRORS_RECOVERED - Returns the number of GPU errors
2022 * occured. This attribute may be queried through XNVCTRLQueryTargetAttribute()
2023 * using a NV_CTRL_TARGET_TYPE_X_SCREEN target.
2026 #define NV_CTRL_NUM_GPU_ERRORS_RECOVERED 259 /* R--- */
2030 * NV_CTRL_REFRESH_RATE_3 - Returns the refresh rate of the specified
2031 * display device in 1000 * Hz (ie. to get the refresh rate in Hz, divide
2032 * the returned value by 1000.)
2034 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
2035 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
2038 #define NV_CTRL_REFRESH_RATE_3 260 /* R-DG */
2042 * NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS - if the OnDemandVBlankInterrupts
2043 * X driver option is set to true, this attribute can be used to
2044 * determine if on-demand VBlank interrupt control is enabled on the
2045 * specified GPU, as well as to enable or disable this feature.
2048 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS 261 /* RW-G */
2049 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_OFF 0
2050 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_ON 1
2054 * NV_CTRL_GPU_POWER_SOURCE reports the type of power source
2055 * of the GPU driving the X screen.
2058 #define NV_CTRL_GPU_POWER_SOURCE 262 /* R--G */
2059 #define NV_CTRL_GPU_POWER_SOURCE_AC 0
2060 #define NV_CTRL_GPU_POWER_SOURCE_BATTERY 1
2064 * NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE is deprecated
2067 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE 263 /* R--G */
2068 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_DESKTOP 0
2069 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_MAXPERF 1
2072 /* NV_CTRL_GLYPH_CACHE - Enables RENDER Glyph Caching to VRAM */
2074 #define NV_CTRL_GLYPH_CACHE 264 /* RW- */
2075 #define NV_CTRL_GLYPH_CACHE_DISABLED 0
2076 #define NV_CTRL_GLYPH_CACHE_ENABLED 1
2080 * NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL reports the current
2081 * Performance level of the GPU driving the X screen. Each
2082 * Performance level has associated NVClock and Mem Clock values.
2085 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL 265 /* R--G */
2089 * NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE reports if Adaptive Clocking
2090 * is Enabled on the GPU driving the X screen.
2093 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE 266 /* R--G */
2094 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_DISABLED 0
2095 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_ENABLED 1
2099 * NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED - Returns whether or not the GVO output
2100 * video is locked to the GPU.
2103 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED 267 /* R--- */
2104 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_FALSE 0
2105 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_TRUE 1
2109 * NV_CTRL_GVO_SYNC_LOCK_STATUS - Returns whether or not the GVO device
2110 * is locked to the input ref signal. If the sync mode is set to
2111 * NV_CTRL_GVO_SYNC_MODE_GENLOCK, then this returns the genlock
2112 * sync status, and if the sync mode is set to NV_CTRL_GVO_SYNC_MODE_FRAMELOCK,
2113 * then this reports the frame lock status.
2116 #define NV_CTRL_GVO_SYNC_LOCK_STATUS 268 /* R--- */
2117 #define NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED 0
2118 #define NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED 1
2122 * NV_CTRL_GVO_ANC_TIME_CODE_GENERATION - Allows SDI device to generate
2123 * time codes in the ANC region of the SDI video output stream.
2126 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION 269 /* RW-- */
2127 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_DISABLE 0
2128 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_ENABLE 1
2132 * NV_CTRL_GVO_COMPOSITE - Enables/Disables SDI compositing. This attribute
2133 * is only available when an SDI input source is detected and is in genlock
2134 * mode.
2137 #define NV_CTRL_GVO_COMPOSITE 270 /* RW-- */
2138 #define NV_CTRL_GVO_COMPOSITE_DISABLE 0
2139 #define NV_CTRL_GVO_COMPOSITE_ENABLE 1
2143 * NV_CTRL_GVO_COMPOSITE_ALPHA_KEY - When compositing is enabled, this
2144 * enables/disables alpha blending.
2147 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY 271 /* RW-- */
2148 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_DISABLE 0
2149 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_ENABLE 1
2153 * NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE - Set the values of a luma
2154 * channel range. This is a packed int that has the following format
2155 * (in order of high-bits to low bits):
2157 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
2159 * To query the current values, pass the range # throught the display_mask
2160 * variable.
2163 #define NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE 272 /* RW-- */
2165 #define NV_CTRL_GVO_COMPOSITE_MAKE_RANGE(range, enable, min, max) \
2166 ((((min) & 0x3FF) << 0) | \
2167 (((max) & 0x3FF) << 10) | \
2168 (((enable) & 0x1) << 20) | \
2169 (((range) & 0x7FF) << 21))
2171 #define NV_CTRL_GVO_COMPOSITE_GET_RANGE(val, range, enable, min, max) \
2172 (min) = ((val) >> 0) & 0x3FF; \
2173 (max) = ((val) >> 10) & 0x3FF; \
2174 (enable) = ((val) >> 20) & 0x1; \
2175 (range) = ((val) >> 21) & 0x7FF;
2179 * NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE - Set the values of a CR
2180 * channel range. This is a packed int that has the following format
2181 * (in order of high-bits to low bits):
2183 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
2185 * To query the current values, pass the range # throught he display_mask
2186 * variable.
2189 #define NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE 273 /* RW-- */
2193 * NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE - Set the values of a CB
2194 * channel range. This is a packed int that has the following format
2195 * (in order of high-bits to low bits):
2197 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
2199 * To query the current values, pass the range # throught he display_mask
2200 * variable.
2203 #define NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE 274 /* RW-- */
2207 * NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES - Returns the number of ranges
2208 * available for each channel (Y/Luma, Cr, and Cb.)
2211 #define NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES 275 /* R--- */
2215 * NV_CTRL_SWITCH_TO_DISPLAYS - Can be used to select which displays
2216 * to switch to (as a hotkey event).
2219 #define NV_CTRL_SWITCH_TO_DISPLAYS 276 /* -W- */
2223 * NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT - Event that notifies
2224 * when a notebook lid change occurs (i.e. when the lid is opened or
2225 * closed.) This attribute can be queried to retrieve the current
2226 * notebook lid status (opened/closed.)
2229 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT 277 /* RW- */
2230 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_CLOSE 0
2231 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_OPEN 1
2234 * NV_CTRL_NOTEBOOK_INTERNAL_LCD - Returns the display device mask of
2235 * the intenal LCD of a notebook.
2238 #define NV_CTRL_NOTEBOOK_INTERNAL_LCD 278 /* R-- */
2241 * NV_CTRL_DEPTH_30_ALLOWED - returns whether the NVIDIA X driver supports
2242 * depth 30 on the specified X screen or GPU.
2245 #define NV_CTRL_DEPTH_30_ALLOWED 279 /* R--G */
2249 * NV_CTRL_MODE_SET_EVENT This attribute is sent as an event
2250 * when hotkey, ctrl-alt-+/- or randr event occurs. Note that
2251 * This attribute cannot be set or queried and is meant to
2252 * be received by clients that wish to be notified of when
2253 * mode set events occur.
2256 #define NV_CTRL_MODE_SET_EVENT 280 /* --- */
2260 * NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE - the gamma value used by
2261 * OpenGL when NV_CTRL_OPENGL_AA_LINE_GAMMA is enabled
2264 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE 281 /* RW-X */
2268 * NV_CTRL_VCSC_HIGH_PERF_MODE - Is used to both query High Performance Mode
2269 * status on the Visual Computing System, and also to enable or disable High
2270 * Performance Mode.
2273 #define NV_CTRL_VCSC_HIGH_PERF_MODE 282 /* RW-V */
2274 #define NV_CTRL_VCSC_HIGH_PERF_MODE_DISABLE 0
2275 #define NV_CTRL_VCSC_HIGH_PERF_MODE_ENABLE 1
2278 * NV_CTRL_DISPLAYPORT_LINK_RATE - returns the negotiated lane bandwidth of the
2279 * DisplayPort main link.
2280 * This attribute is only available for DisplayPort flat panels.
2283 #define NV_CTRL_DISPLAYPORT_LINK_RATE 291 /* R-DG */
2284 #define NV_CTRL_DISPLAYPORT_LINK_RATE_DISABLED 0x0
2285 #define NV_CTRL_DISPLAYPORT_LINK_RATE_1_62GBPS 0x6
2286 #define NV_CTRL_DISPLAYPORT_LINK_RATE_2_70GBPS 0xA
2289 * NV_CTRL_STEREO_EYES_EXCHANGE - Controls whether or not the left and right
2290 * eyes of a stereo image are flipped.
2293 #define NV_CTRL_STEREO_EYES_EXCHANGE 292 /* RW-X */
2294 #define NV_CTRL_STEREO_EYES_EXCHANGE_OFF 0
2295 #define NV_CTRL_STEREO_EYES_EXCHANGE_ON 1
2298 * NV_CTRL_NO_SCANOUT - returns whether the special "NoScanout" mode is
2299 * enabled on the specified X screen or GPU; for details on this mode,
2300 * see the description of the "none" value for the "UseDisplayDevice"
2301 * X configuration option in the NVIDIA driver README.
2304 #define NV_CTRL_NO_SCANOUT 293 /* R--G */
2305 #define NV_CTRL_NO_SCANOUT_DISABLED 0
2306 #define NV_CTRL_NO_SCANOUT_ENABLED 1
2309 * NV_CTRL_GVO_CSC_CHANGED_EVENT This attribute is sent as an event
2310 * when the color space conversion matrix has been altered by another
2311 * client.
2314 #define NV_CTRL_GVO_CSC_CHANGED_EVENT 294 /* --- */
2317 * NV_CTRL_FRAMELOCK_SLAVEABLE - Returns a bitmask of the display devices
2318 * that are (currently) allowed to be selected as slave devices for the
2319 * given GPU
2322 #define NV_CTRL_FRAMELOCK_SLAVEABLE 295 /* R-DG */
2325 * NV_CTRL_GVO_SYNC_TO_DISPLAY This attribute controls whether or not
2326 * the non-SDI display device will be sync'ed to the SDI display device
2327 * (when configured in TwinView, Clone Mode or when using the SDI device
2328 * with OpenGL).
2331 #define NV_CTRL_GVO_SYNC_TO_DISPLAY 296 /* --- */
2332 #define NV_CTRL_GVO_SYNC_TO_DISPLAY_DISABLE 0
2333 #define NV_CTRL_GVO_SYNC_TO_DISPLAY_ENABLE 1
2336 * NV_CTRL_X_SERVER_UNIQUE_ID - returns a pseudo-unique identifier for this
2337 * X server. Intended for use in cases where an NV-CONTROL client communicates
2338 * with multiple X servers, and wants some level of confidence that two
2339 * X Display connections correspond to the same or different X servers.
2342 #define NV_CTRL_X_SERVER_UNIQUE_ID 297 /* R--- */
2345 * NV_CTRL_PIXMAP_CACHE - This attribute controls whether the driver attempts to
2346 * store video memory pixmaps in a cache. The cache speeds up allocation and
2347 * deallocation of pixmaps, but could use more memory than when the cache is
2348 * disabled.
2351 #define NV_CTRL_PIXMAP_CACHE 298 /* RW-X */
2352 #define NV_CTRL_PIXMAP_CACHE_DISABLE 0
2353 #define NV_CTRL_PIXMAP_CACHE_ENABLE 1
2356 * NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB - When the pixmap cache is enabled and
2357 * there is not enough free space in the cache to fit a new pixmap, the driver
2358 * will round up to the next multiple of this number of kilobytes when
2359 * allocating more memory for the cache.
2362 #define NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB 299 /* RW-X */
2365 * NV_CTRL_IS_GVO_DISPLAY - returns whether or not a given display is an
2366 * SDI device.
2369 #define NV_CTRL_IS_GVO_DISPLAY 300 /* R-D */
2370 #define NV_CTRL_IS_GVO_DISPLAY_FALSE 0
2371 #define NV_CTRL_IS_GVO_DISPLAY_TRUE 1
2374 * NV_CTRL_PCI_ID - Returns the PCI vendor and device ID of the specified
2375 * device.
2377 * NV_CTRL_PCI_ID is a "packed" integer attribute; the PCI vendor ID is stored
2378 * in the upper 16 bits of the integer, and the PCI device ID is stored in the
2379 * lower 16 bits of the integer.
2382 #define NV_CTRL_PCI_ID 301 /* R--GI */
2385 * NV_CTRL_GVO_FULL_RANGE_COLOR - Allow full range color data [4-1019]
2386 * without clamping to [64-940].
2389 #define NV_CTRL_GVO_FULL_RANGE_COLOR 302 /* RW- */
2390 #define NV_CTRL_GVO_FULL_RANGE_COLOR_DISABLED 0
2391 #define NV_CTRL_GVO_FULL_RANGE_COLOR_ENABLED 1
2394 * NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE - Returns whether or not
2395 * SLI Mosaic Mode supported.
2398 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE 303 /* R-- */
2399 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_FALSE 0
2400 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_TRUE 1
2403 * NV_CTRL_GVO_ENABLE_RGB_DATA - Allows clients to specify when
2404 * the GVO board should process colors as RGB when the output data
2405 * format is one of the NV_CTRL_GVO_DATA_FORMAT_???_PASSTRHU modes.
2408 #define NV_CTRL_GVO_ENABLE_RGB_DATA 304 /* RW- */
2409 #define NV_CTRL_GVO_ENABLE_RGB_DATA_DISABLE 0
2410 #define NV_CTRL_GVO_ENABLE_RGB_DATA_ENABLE 1
2413 * NV_CTRL_IMAGE_SHARPENING_DEFAULT - Returns default value of
2414 * Image Sharpening.
2417 #define NV_CTRL_IMAGE_SHARPENING_DEFAULT 305 /* R-- */
2420 * NV_CTRL_PCI_DOMAIN - Returns the PCI domain number the specified device is
2421 * using.
2424 #define NV_CTRL_PCI_DOMAIN 306 /* R--GI */
2427 * NV_CTRL_GVI_NUM_JACKS - Returns the number of input BNC jacks available
2428 * on a GVI device.
2431 #define NV_CTRL_GVI_NUM_JACKS 307 /* R--I */
2434 * NV_CTRL_GVI_MAX_LINKS_PER_STREAM - Returns the maximum supported number of
2435 * links that can be tied to one stream.
2438 #define NV_CTRL_GVI_MAX_LINKS_PER_STREAM 308 /* R--I */
2441 * NV_CTRL_GVI_DETECTED_CHANNEL_BITS_PER_COMPONENT - Returns the detected
2442 * number of bits per component (BPC) of data on the given input jack+
2443 * channel.
2445 * The jack number should be specified in the lower 16 bits of the
2446 * "display_mask" parameter, while the channel number should be specified in
2447 * the upper 16 bits.
2450 #define NV_CTRL_GVI_DETECTED_CHANNEL_BITS_PER_COMPONENT 309 /* R--I */
2451 #define NV_CTRL_GVI_BITS_PER_COMPONENT_UNKNOWN 0
2452 #define NV_CTRL_GVI_BITS_PER_COMPONENT_8 1
2453 #define NV_CTRL_GVI_BITS_PER_COMPONENT_10 2
2454 #define NV_CTRL_GVI_BITS_PER_COMPONENT_12 3
2457 * NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT - Specify the number of
2458 * bits per component (BPC) of data for the captured stream.
2459 * The stream number should be specified in the "display_mask" parameter.
2461 * Note: Setting this attribute may also result in the following
2462 * NV-CONTROL attributes being reset on the GVI device (to ensure
2463 * the configuration remains valid):
2464 * NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING
2467 #define NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT 310 /* RW-I */
2470 * NV_CTRL_GVI_DETECTED_CHANNEL_COMPONENT_SAMPLING - Returns the detected
2471 * sampling format for the input jack+channel.
2473 * The jack number should be specified in the lower 16 bits of the
2474 * "display_mask" parameter, while the channel number should be specified in
2475 * the upper 16 bits.
2478 #define NV_CTRL_GVI_DETECTED_CHANNEL_COMPONENT_SAMPLING 311 /* R--I */
2479 #define NV_CTRL_GVI_COMPONENT_SAMPLING_UNKNOWN 0
2480 #define NV_CTRL_GVI_COMPONENT_SAMPLING_4444 1
2481 #define NV_CTRL_GVI_COMPONENT_SAMPLING_4224 2
2482 #define NV_CTRL_GVI_COMPONENT_SAMPLING_444 3
2483 #define NV_CTRL_GVI_COMPONENT_SAMPLING_422 4
2484 #define NV_CTRL_GVI_COMPONENT_SAMPLING_420 5
2487 * NV_CTRL_GVI_REQUESTED_COMPONENT_SAMPLING - Specify the sampling format for
2488 * the captured stream.
2489 * The possible values are the NV_CTRL_GVI_DETECTED_COMPONENT_SAMPLING
2490 * constants.
2491 * The stream number should be specified in the "display_mask" parameter.
2494 #define NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING 312 /* RW-I */
2497 * NV_CTRL_GVI_CHROMA_EXPAND - Enable or disable 4:2:2 -> 4:4:4 chroma
2498 * expansion for the captured stream. This value is ignored when a
2499 * COMPONENT_SAMPLING format is selected that does not use chroma subsampling,
2500 * or if a BITS_PER_COMPONENT value is selected that is not supported.
2501 * The stream number should be specified in the "display_mask" parameter.
2504 #define NV_CTRL_GVI_REQUESTED_STREAM_CHROMA_EXPAND 313 /* RW-I */
2505 #define NV_CTRL_GVI_CHROMA_EXPAND_FALSE 0
2506 #define NV_CTRL_GVI_CHROMA_EXPAND_TRUE 1
2509 * NV_CTRL_GVI_DETECTED_CHANNEL_COLOR_SPACE - Returns the detected color space
2510 * of the input jack+channel.
2512 * The jack number should be specified in the lower 16 bits of the
2513 * "display_mask" parameter, while the channel number should be specified in
2514 * the upper 16 bits.
2517 #define NV_CTRL_GVI_DETECTED_CHANNEL_COLOR_SPACE 314 /* R--I */
2518 #define NV_CTRL_GVI_COLOR_SPACE_UNKNOWN 0
2519 #define NV_CTRL_GVI_COLOR_SPACE_GBR 1
2520 #define NV_CTRL_GVI_COLOR_SPACE_GBRA 2
2521 #define NV_CTRL_GVI_COLOR_SPACE_GBRD 3
2522 #define NV_CTRL_GVI_COLOR_SPACE_YCBCR 4
2523 #define NV_CTRL_GVI_COLOR_SPACE_YCBCRA 5
2524 #define NV_CTRL_GVI_COLOR_SPACE_YCBCRD 6
2527 * NV_CTRL_GVI_DETECTED_CHANNEL_LINK_ID - Returns the detected link identifier
2528 * for the given input jack+channel.
2530 * The jack number should be specified in the lower 16 bits of the
2531 * "display_mask" parameter, while the channel number should be specified in
2532 * the upper 16 bits.
2535 #define NV_CTRL_GVI_DETECTED_CHANNEL_LINK_ID 315 /* R--I */
2536 #define NV_CTRL_GVI_LINK_ID_UNKNOWN 0xFFFF
2539 * NV_CTRL_GVI_DETECTED_CHANNEL_SMPTE352_IDENTIFIER - Returns the 4-byte
2540 * SMPTE 352 identifier from the given input jack+channel.
2542 * The jack number should be specified in the lower 16 bits of the
2543 * "display_mask" parameter, while the channel number should be specified in
2544 * the upper 16 bits.
2547 #define NV_CTRL_GVI_DETECTED_CHANNEL_SMPTE352_IDENTIFIER 316 /* R--I */
2550 * NV_CTRL_GVI_GLOBAL_IDENTIFIER - Returns a global identifier for the
2551 * GVI device. This identifier can be used to relate GVI devices named
2552 * in NV-CONTROL with those enumerated in OpenGL.
2555 #define NV_CTRL_GVI_GLOBAL_IDENTIFIER 317 /* R--I */
2558 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION - Returns the number of nanoseconds
2559 * that one unit of NV_CTRL_FRAMELOCK_SYNC_DELAY corresponds to.
2561 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION 318 /* R-- */
2564 * NV_CTRL_GPU_COOLER_MANUAL_CONTROL - Query the current or set a new
2565 * cooler control state; the value of this attribute controls the
2566 * availability of additional cooler control attributes (see below).
2568 * Note: this attribute is unavailable unless cooler control support
2569 * has been enabled in the X server (by the user).
2572 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL 319 /* RW-G */
2573 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_FALSE 0
2574 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_TRUE 1
2577 * NV_CTRL_THERMAL_COOLER_LEVEL - Returns cooler's current operating
2578 * level.
2581 #define NV_CTRL_THERMAL_COOLER_LEVEL 320 /* RW-C */
2583 /* NV_CTRL_THERMAL_COOLER_LEVEL_SET_DEFAULT - Sets default values of
2584 * cooler.
2587 #define NV_CTRL_THERMAL_COOLER_LEVEL_SET_DEFAULT 321 /* -W-C */
2590 * NV_CTRL_THERMAL_COOLER_CONTROL_TYPE -
2591 * Returns a cooler's control signal characteristics.
2592 * The possible types are restricted, Variable and Toggle.
2595 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE 322 /* R--C */
2596 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_NONE 0
2597 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_TOGGLE 1
2598 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_VARIABLE 2
2601 * NV_CTRL_THERMAL_COOLER_TARGET - Returns objects that cooler cools.
2602 * Targets may be GPU, Memory, Power Supply or All of these.
2603 * GPU_RELATED = GPU | MEMORY | POWER_SUPPLY
2607 #define NV_CTRL_THERMAL_COOLER_TARGET 323 /* R--C */
2608 #define NV_CTRL_THERMAL_COOLER_TARGET_NONE 0
2609 #define NV_CTRL_THERMAL_COOLER_TARGET_GPU 1
2610 #define NV_CTRL_THERMAL_COOLER_TARGET_MEMORY 2
2611 #define NV_CTRL_THERMAL_COOLER_TARGET_POWER_SUPPLY 4
2612 #define NV_CTRL_THERMAL_COOLER_TARGET_GPU_RELATED \
2613 (NV_CTRL_THERMAL_COOLER_TARGET_GPU | \
2614 NV_CTRL_THERMAL_COOLER_TARGET_MEMORY | \
2615 NV_CTRL_THERMAL_COOLER_TARGET_POWER_SUPPLY)
2618 * NV_CTRL_GPU_ECC_SUPPORTED - Reports whether ECC is supported by the
2619 * targeted GPU.
2621 #define NV_CTRL_GPU_ECC_SUPPORTED 324 /* R--G */
2622 #define NV_CTRL_GPU_ECC_SUPPORTED_FALSE 0
2623 #define NV_CTRL_GPU_ECC_SUPPORTED_TRUE 1
2626 * NV_CTRL_GPU_ECC_STATUS - Returns the current hardware ECC setting
2627 * for the targeted GPU.
2629 #define NV_CTRL_GPU_ECC_STATUS 325 /* R--G */
2630 #define NV_CTRL_GPU_ECC_STATUS_DISABLED 0
2631 #define NV_CTRL_GPU_ECC_STATUS_ENABLED 1
2634 * NV_CTRL_GPU_ECC_CONFIGURATION - Reports whether ECC can be configured
2635 * dynamically for the GPU in question.
2637 #define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED 326 /* R--G */
2638 #define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED_FALSE 0
2639 #define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED_TRUE 1
2642 * NV_CTRL_GPU_ECC_CONFIGURATION_SETTING - Returns the current ECC
2643 * configuration setting or specifies new settings. New settings do not
2644 * take effect until the next POST.
2646 #define NV_CTRL_GPU_ECC_CONFIGURATION 327 /* RW-G */
2647 #define NV_CTRL_GPU_ECC_CONFIGURATION_DISABLED 0
2648 #define NV_CTRL_GPU_ECC_CONFIGURATION_ENABLED 1
2651 * NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_SETTING - Returns the default
2652 * ECC configuration setting.
2654 #define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION 328 /* R--G */
2655 #define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_DISABLED 0
2656 #define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_ENABLED 1
2659 * NV_CTRL_GPU_ECC_SINGLE_BIT_ERRORS - Returns the number of single-bit
2660 * ECC errors detected by the targeted GPU since the last POST.
2661 * Note: this attribute is a 64-bit integer attribute.
2663 #define NV_CTRL_GPU_ECC_SINGLE_BIT_ERRORS 329 /* R--GQ */
2666 * NV_CTRL_GPU_ECC_DOUBLE_BIT_ERRORS - Returns the number of double-bit
2667 * ECC errors detected by the targeted GPU since the last POST.
2668 * Note: this attribute is a 64-bit integer attribute.
2670 #define NV_CTRL_GPU_ECC_DOUBLE_BIT_ERRORS 330 /* R--GQ */
2673 * NV_CTRL_GPU_ECC_AGGREGATE_SINGLE_BIT_ERRORS - Returns the number of
2674 * single-bit ECC errors detected by the targeted GPU since the
2675 * last counter reset.
2676 * Note: this attribute is a 64-bit integer attribute.
2678 #define NV_CTRL_GPU_ECC_AGGREGATE_SINGLE_BIT_ERRORS 331 /* R--GQ */
2681 * NV_CTRL_GPU_ECC_AGGREGATE_DOUBLE_BIT_ERRORS - Returns the number of
2682 * double-bit ECC errors detected by the targeted GPU since the
2683 * last counter reset.
2684 * Note: this attribute is a 64-bit integer attribute.
2686 #define NV_CTRL_GPU_ECC_AGGREGATE_DOUBLE_BIT_ERRORS 332 /* R--GQ */
2689 * NV_CTRL_GPU_ECC_RESET_ERROR_STATUS - Resets the volatile/aggregate
2690 * single-bit and double-bit error counters. This attribute is a
2691 * bitmask attribute.
2693 #define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS 333 /* -W-G */
2694 #define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS_VOLATILE 0x00000001
2695 #define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS_AGGREGATE 0x00000002
2698 * NV_CTRL_GPU_POWER_MIZER_MODE - Provides a hint to the driver
2699 * as to how to manage the performance of the GPU.
2701 * ADAPTIVE - adjust GPU clocks based on GPU
2702 * utilization
2703 * PREFER_MAXIMUM_PERFORMANCE - raise GPU clocks to favor
2704 * maximum performance, to the extent
2705 * that thermal and other constraints
2706 * allow
2708 #define NV_CTRL_GPU_POWER_MIZER_MODE 334 /* RW-G */
2709 #define NV_CTRL_GPU_POWER_MIZER_MODE_ADAPTIVE 0
2710 #define NV_CTRL_GPU_POWER_MIZER_MODE_PREFER_MAXIMUM_PERFORMANCE 1
2713 * NV_CTRL_GVI_SYNC_OUTPUT_FORMAT - Returns the output sync signal
2714 * from the GVI device.
2717 #define NV_CTRL_GVI_SYNC_OUTPUT_FORMAT 335 /* R--I */
2720 * NV_CTRL_GVI_MAX_CHANNELS_PER_JACK - Returns the maximum
2721 * supported number of (logical) channels within a single physical jack of
2722 * a GVI device. For most SDI video formats, there is only one channel
2723 * (channel 0). But for 3G video formats (as specified in SMPTE 425),
2724 * as an example, there are two channels (channel 0 and channel 1) per
2725 * physical jack.
2728 #define NV_CTRL_GVI_MAX_CHANNELS_PER_JACK 336 /* R--I */
2731 * NV_CTRL_GVI_MAX_STREAMS - Returns the maximum number of streams
2732 * that can be configured on the GVI device.
2735 #define NV_CTRL_GVI_MAX_STREAMS 337 /* R--I */
2738 * NV_CTRL_GVI_NUM_CAPTURE_SURFACES - The GVI interface exposed through
2739 * NV-CONTROL and the GLX_NV_video_input extension uses internal capture
2740 * surfaces when frames are read from the GVI device. The
2741 * NV_CTRL_GVI_NUM_CAPTURE_SURFACES can be used to query and assign the
2742 * number of capture surfaces. This attribute is applied when
2743 * glXBindVideoCaptureDeviceNV() is called by the application.
2745 * A lower number of capture surfaces will mean less video memory is used,
2746 * but can result in frames being dropped if the application cannot keep up
2747 * with the capture device. A higher number will prevent frames from being
2748 * dropped, making capture more reliable but will consume move video memory.
2750 #define NV_CTRL_GVI_NUM_CAPTURE_SURFACES 338 /* RW-I */
2753 * NV_CTRL_OVERSCAN_COMPENSATION - not supported
2755 #define NV_CTRL_OVERSCAN_COMPENSATION 339 /* RWDG */
2758 * NV_CTRL_GPU_PCIE_GENERATION - Reports the current PCIe generation.
2760 #define NV_CTRL_GPU_PCIE_GENERATION 341 /* R--GI */
2761 #define NV_CTRL_GPU_PCIE_GENERATION1 0x00000001
2762 #define NV_CTRL_GPU_PCIE_GENERATION2 0x00000002
2763 #define NV_CTRL_GPU_PCIE_GENERATION3 0x00000003
2766 * NV_CTRL_GVI_BOUND_GPU - Returns the NV_CTRL_TARGET_TYPE_GPU target_id of
2767 * the GPU currently bound to the GVI device. Returns -1 if no GPU is
2768 * currently bound to the GVI device.
2770 #define NV_CTRL_GVI_BOUND_GPU 342 /* R--I */
2773 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 - this attribute is only
2774 * intended to be used to query the ValidValues for
2775 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for VIDEO_FORMAT values between
2776 * 64 and 95. See NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for details.
2779 #define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 343 /* ---GI */
2782 * NV_CTRL_ACCELERATE_TRAPEZOIDS - Toggles RENDER Trapezoid acceleration
2785 #define NV_CTRL_ACCELERATE_TRAPEZOIDS 344 /* RW- */
2786 #define NV_CTRL_ACCELERATE_TRAPEZOIDS_DISABLE 0
2787 #define NV_CTRL_ACCELERATE_TRAPEZOIDS_ENABLE 1
2790 * NV_CTRL_GPU_CORES - Returns number of GPU cores supported by the graphics
2791 * pipeline.
2794 #define NV_CTRL_GPU_CORES 345 /* R--G */
2797 * NV_CTRL_GPU_MEMORY_BUS_WIDTH - Returns memory bus bandwidth on the associated
2798 * subdevice.
2801 #define NV_CTRL_GPU_MEMORY_BUS_WIDTH 346 /* R--G */
2804 * NV_CTRL_GVI_TEST_MODE - This attribute controls the GVI test mode. When
2805 * enabled, the GVI device will generate fake data as quickly as possible. All
2806 * GVI settings are still valid when this is enabled (e.g., the requested video
2807 * format is honored and sets the video size).
2808 * This may be used to test the pipeline.
2811 #define NV_CTRL_GVI_TEST_MODE 347 /* R--I */
2812 #define NV_CTRL_GVI_TEST_MODE_DISABLE 0
2813 #define NV_CTRL_GVI_TEST_MODE_ENABLE 1
2816 * NV_CTRL_COLOR_SPACE - This option sets color space of the video
2817 * signal.
2819 #define NV_CTRL_COLOR_SPACE 348 /* RWDG */
2820 #define NV_CTRL_COLOR_SPACE_RGB 0
2821 #define NV_CTRL_COLOR_SPACE_YCbCr422 1
2822 #define NV_CTRL_COLOR_SPACE_YCbCr444 2
2825 * NV_CTRL_COLOR_RANGE - This option sets color range of the video
2826 * signal.
2828 #define NV_CTRL_COLOR_RANGE 349 /* RWDG */
2829 #define NV_CTRL_COLOR_RANGE_FULL 0
2830 #define NV_CTRL_COLOR_RANGE_LIMITED 1
2833 * NV_CTRL_GPU_SCALING_DEFAULT_TARGET - not supported
2835 * NV_CTRL_GPU_SCALING_DEFAULT_METHOD - not supported
2837 #define NV_CTRL_GPU_SCALING_DEFAULT_TARGET 350 /* R-DG */
2838 #define NV_CTRL_GPU_SCALING_DEFAULT_METHOD 351 /* R-DG */
2841 * NV_CTRL_DITHERING_MODE - Controls the dithering mode, when
2842 * NV_CTRL_CURRENT_DITHERING is Enabled.
2844 * AUTO: allow the driver to choose the dithering mode automatically.
2846 * DYNAMIC_2X2: use a 2x2 matrix to dither from the GPU's pixel
2847 * pipeline to the bit depth of the flat panel. The matrix values
2848 * are changed from frame to frame.
2850 * STATIC_2X2: use a 2x2 matrix to dither from the GPU's pixel
2851 * pipeline to the bit depth of the flat panel. The matrix values
2852 * do not change from frame to frame.
2854 * TEMPORAL: use a pseudorandom value from a uniform distribution calculated at
2855 * every pixel to achieve stochastic dithering. This method produces a better
2856 * visual result than 2x2 matrix approaches.
2858 #define NV_CTRL_DITHERING_MODE 352 /* RWDG */
2859 #define NV_CTRL_DITHERING_MODE_AUTO 0
2860 #define NV_CTRL_DITHERING_MODE_DYNAMIC_2X2 1
2861 #define NV_CTRL_DITHERING_MODE_STATIC_2X2 2
2862 #define NV_CTRL_DITHERING_MODE_TEMPORAL 3
2865 * NV_CTRL_CURRENT_DITHERING - Returns the current dithering state.
2867 #define NV_CTRL_CURRENT_DITHERING 353 /* R-DG */
2868 #define NV_CTRL_CURRENT_DITHERING_DISABLED 0
2869 #define NV_CTRL_CURRENT_DITHERING_ENABLED 1
2872 * NV_CTRL_CURRENT_DITHERING_MODE - Returns the current dithering
2873 * mode.
2875 #define NV_CTRL_CURRENT_DITHERING_MODE 354 /* R-DG */
2876 #define NV_CTRL_CURRENT_DITHERING_MODE_NONE 0
2877 #define NV_CTRL_CURRENT_DITHERING_MODE_DYNAMIC_2X2 1
2878 #define NV_CTRL_CURRENT_DITHERING_MODE_STATIC_2X2 2
2879 #define NV_CTRL_CURRENT_DITHERING_MODE_TEMPORAL 3
2882 * NV_CTRL_THERMAL_SENSOR_READING - Returns the thermal sensor's current
2883 * reading.
2885 #define NV_CTRL_THERMAL_SENSOR_READING 355 /* R--S */
2888 * NV_CTRL_THERMAL_SENSOR_PROVIDER - Returns the hardware device that
2889 * provides the thermal sensor.
2891 #define NV_CTRL_THERMAL_SENSOR_PROVIDER 356 /* R--S */
2892 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_NONE 0
2893 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_GPU_INTERNAL 1
2894 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADM1032 2
2895 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADT7461 3
2896 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_MAX6649 4
2897 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_MAX1617 5
2898 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM99 6
2899 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM89 7
2900 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM64 8
2901 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_G781 9
2902 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADT7473 10
2903 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_SBMAX6649 11
2904 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_VBIOSEVT 12
2905 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_OS 13
2906 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_UNKNOWN 0xFFFFFFFF
2909 * NV_CTRL_THERMAL_SENSOR_TARGET - Returns what hardware component
2910 * the thermal sensor is measuring.
2912 #define NV_CTRL_THERMAL_SENSOR_TARGET 357 /* R--S */
2913 #define NV_CTRL_THERMAL_SENSOR_TARGET_NONE 0
2914 #define NV_CTRL_THERMAL_SENSOR_TARGET_GPU 1
2915 #define NV_CTRL_THERMAL_SENSOR_TARGET_MEMORY 2
2916 #define NV_CTRL_THERMAL_SENSOR_TARGET_POWER_SUPPLY 4
2917 #define NV_CTRL_THERMAL_SENSOR_TARGET_BOARD 8
2918 #define NV_CTRL_THERMAL_SENSOR_TARGET_UNKNOWN 0xFFFFFFFF
2921 * NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR - when TRUE, OpenGL will
2922 * draw information about the current MULTIGPU mode.
2924 #define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR 358 /* RW-X */
2925 #define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR_FALSE 0
2926 #define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR_TRUE 1
2929 * NV_CTRL_GPU_CURRENT_PROCESSOR_CLOCK_FREQS - Returns GPU's processor
2930 * clock freqs.
2932 #define NV_CTRL_GPU_CURRENT_PROCESSOR_CLOCK_FREQS 359 /* RW-G */
2935 * NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS - query the flags (various information
2936 * for the specified NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be
2937 * queried with existing interfaces, the video format should be specified
2938 * in the display_mask field; eg:
2940 * XNVCTRLQueryTargetAttribute(dpy,
2941 * NV_CTRL_TARGET_TYPE_GVI,
2942 * gvi,
2943 * NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296,
2944 * NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS,
2945 * &flags);
2947 * Note: The NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_1080P_NO_12BPC flag is set
2948 * for those 1080P 3G modes (level A and B) that do not support
2949 * 12 bits per component (when configuring a GVI stream.)
2952 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS 360 /* R--I */
2953 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_NONE 0x00000000
2954 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_INTERLACED 0x00000001
2955 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_PROGRESSIVE 0x00000002
2956 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_PSF 0x00000004
2957 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_A 0x00000008
2958 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_B 0x00000010
2959 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G \
2960 ((NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_A) | \
2961 (NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_B))
2962 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_1080P_NO_12BPC 0x00000020
2965 * NV_CTRL_GPU_PCIE_MAX_LINK_SPEED - returns maximum PCIe link speed,
2966 * in gigatransfers per second (GT/s).
2969 #define NV_CTRL_GPU_PCIE_MAX_LINK_SPEED 361 /* R--GI */
2972 * NV_CTRL_3D_VISION_PRO_RESET_TRANSCEIVER_TO_FACTORY_SETTINGS - Resets the
2973 * 3D Vision Pro transceiver to its factory settings.
2975 #define NV_CTRL_3D_VISION_PRO_RESET_TRANSCEIVER_TO_FACTORY_SETTINGS 363 /* -W-T */
2978 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL - Controls the channel that is
2979 * currently used by the 3D Vision Pro transceiver.
2981 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL 364 /* RW-T */
2984 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE - Controls the mode in which the
2985 * 3D Vision Pro transceiver operates.
2986 * NV_CTRL_3D_VISION_PRO_TM_LOW_RANGE is bidirectional
2987 * NV_CTRL_3D_VISION_PRO_TM_MEDIUM_RANGE is bidirectional
2988 * NV_CTRL_3D_VISION_PRO_TM_HIGH_RANGE may be bidirectional just up to a
2989 * given range, and unidirectional beyond it
2990 * NV_CTRL_3D_VISION_PRO_TM_COUNT is the total number of
2991 * 3D Vision Pro transceiver modes
2993 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE 365 /* RW-T */
2994 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_INVALID 0
2995 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_LOW_RANGE 1
2996 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_MEDIUM_RANGE 2
2997 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_HIGH_RANGE 3
2998 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_COUNT 4
3001 * NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES - controls whether updates to the color
3002 * lookup table (LUT) are synchronous with respect to X rendering. For example,
3003 * if an X client sends XStoreColors followed by XFillRectangle, the driver will
3004 * guarantee that the FillRectangle request is not processed until after the
3005 * updated LUT colors are actually visible on the screen if
3006 * NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES is enabled. Otherwise, the rendering may
3007 * occur first.
3009 * This makes a difference for applications that use the LUT to animate, such as
3010 * XPilot. If you experience flickering in applications that use LUT
3011 * animations, try enabling this attribute.
3013 * When synchronous updates are enabled, XStoreColors requests will be processed
3014 * at your screen's refresh rate.
3017 #define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES 367 /* RWDG */
3018 #define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES_DISABLE 0
3019 #define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES_ENABLE 1
3022 * NV_CTRL_DITHERING_DEPTH - Controls the dithering depth when
3023 * NV_CTRL_CURRENT_DITHERING is ENABLED. Some displays connected
3024 * to the GPU via the DVI or LVDS interfaces cannot display the
3025 * full color range of ten bits per channel, so the GPU will
3026 * dither to either 6 or 8 bits per channel.
3028 #define NV_CTRL_DITHERING_DEPTH 368 /* RWDG */
3029 #define NV_CTRL_DITHERING_DEPTH_AUTO 0
3030 #define NV_CTRL_DITHERING_DEPTH_6_BITS 1
3031 #define NV_CTRL_DITHERING_DEPTH_8_BITS 2
3034 * NV_CTRL_CURRENT_DITHERING_DEPTH - Returns the current dithering
3035 * depth value.
3037 #define NV_CTRL_CURRENT_DITHERING_DEPTH 369 /* R-DG */
3038 #define NV_CTRL_CURRENT_DITHERING_DEPTH_NONE 0
3039 #define NV_CTRL_CURRENT_DITHERING_DEPTH_6_BITS 1
3040 #define NV_CTRL_CURRENT_DITHERING_DEPTH_8_BITS 2
3043 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_FREQUENCY - Returns the
3044 * frequency of the channel(in kHz) of the 3D Vision Pro transceiver.
3045 * Use the display_mask parameter to specify the channel number.
3047 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_FREQUENCY 370 /* R--T */
3050 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_QUALITY - Returns the
3051 * quality of the channel(in percentage) of the 3D Vision Pro transceiver.
3052 * Use the display_mask parameter to specify the channel number.
3054 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_QUALITY 371 /* R--T */
3057 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_COUNT - Returns the number of
3058 * channels on the 3D Vision Pro transceiver.
3060 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_COUNT 372 /* R--T */
3063 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES - Puts the 3D Vision Pro
3064 * transceiver into pairing mode to gather additional glasses.
3065 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_STOP - stops any pairing
3066 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON - starts continuous
3067 * pairing via beacon mode
3068 * Any other value, N - Puts the 3D Vision Pro transceiver into
3069 * authenticated pairing mode for N seconds.
3071 #define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES 373 /* -W-T */
3072 #define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_STOP 0
3073 #define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON 0xFFFFFFFF
3076 * NV_CTRL_3D_VISION_PRO_UNPAIR_GLASSES - Tells a specific pair
3077 * of glasses to unpair. The glasses will "forget" the address
3078 * of the 3D Vision Pro transceiver to which they have been paired.
3079 * To unpair all the currently paired glasses, specify
3080 * the glasses id as 0.
3082 #define NV_CTRL_3D_VISION_PRO_UNPAIR_GLASSES 374 /* -W-T */
3085 * NV_CTRL_3D_VISION_PRO_DISCOVER_GLASSES - Tells the 3D Vision Pro
3086 * transceiver about the glasses that have been paired using
3087 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON. Unless this is done,
3088 * the 3D Vision Pro transceiver will not know about glasses paired in
3089 * beacon mode.
3091 #define NV_CTRL_3D_VISION_PRO_DISCOVER_GLASSES 375 /* -W-T */
3094 * NV_CTRL_3D_VISION_PRO_IDENTIFY_GLASSES - Causes glasses LEDs to
3095 * flash for a short period of time.
3097 #define NV_CTRL_3D_VISION_PRO_IDENTIFY_GLASSES 376 /* -W-T */
3100 * NV_CTRL_3D_VISION_PRO_GLASSES_SYNC_CYCLE - Controls the
3101 * sync cycle duration(in milliseconds) of the glasses.
3102 * Use the display_mask parameter to specify the glasses id.
3104 #define NV_CTRL_3D_VISION_PRO_GLASSES_SYNC_CYCLE 378 /* RW-T */
3107 * NV_CTRL_3D_VISION_PRO_GLASSES_MISSED_SYNC_CYCLES - Returns the
3108 * number of state sync cycles recently missed by the glasses.
3109 * Use the display_mask parameter to specify the glasses id.
3111 #define NV_CTRL_3D_VISION_PRO_GLASSES_MISSED_SYNC_CYCLES 379 /* R--T */
3114 * NV_CTRL_3D_VISION_PRO_GLASSES_BATTERY_LEVEL - Returns the
3115 * battery level(in percentage) of the glasses.
3116 * Use the display_mask parameter to specify the glasses id.
3118 #define NV_CTRL_3D_VISION_PRO_GLASSES_BATTERY_LEVEL 380 /* R--T */
3122 * NV_CTRL_GVO_ANC_PARITY_COMPUTATION - Controls the SDI device's computation
3123 * of the parity bit (bit 8) for ANC data words.
3126 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION 381 /* RW--- */
3127 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_AUTO 0
3128 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_ON 1
3129 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_OFF 2
3132 * NV_CTRL_3D_VISION_PRO_GLASSES_PAIR_EVENT - This attribute is sent
3133 * as an event when glasses get paired in response to pair command
3134 * from any of the clients.
3136 #define NV_CTRL_3D_VISION_PRO_GLASSES_PAIR_EVENT 382 /* ---T */
3139 * NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT - This attribute is sent
3140 * as an event when glasses get unpaired in response to unpair command
3141 * from any of the clients.
3143 #define NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT 383 /* ---T */
3146 * NV_CTRL_GPU_PCIE_CURRENT_LINK_WIDTH - returns the current
3147 * PCIe link width, in number of lanes.
3149 #define NV_CTRL_GPU_PCIE_CURRENT_LINK_WIDTH 384 /* R--GI */
3152 * NV_CTRL_GPU_PCIE_CURRENT_LINK_SPEED - returns the current
3153 * PCIe link speed, in megatransfers per second (GT/s).
3155 #define NV_CTRL_GPU_PCIE_CURRENT_LINK_SPEED 385 /* R--GI */
3158 * NV_CTRL_GVO_AUDIO_BLANKING - specifies whether the GVO device should delete
3159 * audio ancillary data packets when frames are repeated.
3161 * When a new frame is not ready in time, the current frame, including all
3162 * ancillary data packets, is repeated. When this data includes audio packets,
3163 * this can result in stutters or clicks. When this option is enabled, the GVO
3164 * device will detect when frames are repeated, identify audio ancillary data
3165 * packets, and mark them for deletion.
3167 * This option is applied when the GVO device is bound.
3169 #define NV_CTRL_GVO_AUDIO_BLANKING 386 /* RW- */
3170 #define NV_CTRL_GVO_AUDIO_BLANKING_DISABLE 0
3171 #define NV_CTRL_GVO_AUDIO_BLANKING_ENABLE 1
3174 * NV_CTRL_CURRENT_METAMODE_ID - switch modes to the MetaMode with
3175 * the specified ID.
3177 #define NV_CTRL_CURRENT_METAMODE_ID 387 /* RW- */
3180 * NV_CTRL_DISPLAY_ENABLED - Returns whether or not the display device
3181 * is currently enabled.
3183 #define NV_CTRL_DISPLAY_ENABLED 388 /* R-D */
3184 #define NV_CTRL_DISPLAY_ENABLED_TRUE 1
3185 #define NV_CTRL_DISPLAY_ENABLED_FALSE 0
3188 #define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_DISPLAY_ENABLED
3190 /**************************************************************************/
3193 * String Attributes:
3195 * String attributes can be queryied through the XNVCTRLQueryStringAttribute()
3196 * and XNVCTRLQueryTargetStringAttribute() function calls.
3198 * String attributes can be set through the XNVCTRLSetStringAttribute()
3199 * function call. (There are currently no string attributes that can be
3200 * set on non-X Screen targets.)
3202 * Unless otherwise noted, all string attributes can be queried/set using an
3203 * NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take an
3204 * NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried/set through
3205 * XNVCTRLQueryStringAttribute()/XNVCTRLSetStringAttribute() (Since
3206 * these assume an X Screen target).
3211 * NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the
3212 * specified X screen is running.
3214 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3215 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3218 #define NV_CTRL_STRING_PRODUCT_NAME 0 /* R--G */
3222 * NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on
3223 * which the specified X screen is running.
3226 #define NV_CTRL_STRING_VBIOS_VERSION 1 /* R--G */
3230 * NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the
3231 * NVIDIA driver version number for the NVIDIA X driver in use.
3234 #define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION 3 /* R--G */
3238 * NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device
3239 * specified in the display_mask argument.
3241 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3242 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3245 #define NV_CTRL_STRING_DISPLAY_DEVICE_NAME 4 /* R-DG */
3249 * NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the
3250 * specified display device; only valid if the display device is a TV.
3253 #define NV_CTRL_STRING_TV_ENCODER_NAME 5 /* R-DG */
3257 * NV_CTRL_STRING_GVIO_FIRMWARE_VERSION - indicates the version of the
3258 * Firmware on the GVIO device.
3261 #define NV_CTRL_STRING_GVIO_FIRMWARE_VERSION 8 /* R--I */
3264 * The following is deprecated; use NV_CTRL_STRING_GVIO_FIRMWARE_VERSION,
3265 * instead
3267 #define NV_CTRL_STRING_GVO_FIRMWARE_VERSION 8 /* R-- */
3271 * NV_CTRL_STRING_CURRENT_MODELINE - Return the ModeLine currently
3272 * being used by the specified display device.
3274 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3275 * using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3277 * The ModeLine string may be prepended with a comma-separated list of
3278 * "token=value" pairs, separated from the ModeLine string by "::".
3279 * This "token=value" syntax is the same as that used in
3280 * NV_CTRL_BINARY_DATA_MODELINES
3283 #define NV_CTRL_STRING_CURRENT_MODELINE 9 /* R-DG */
3287 * NV_CTRL_STRING_ADD_MODELINE - Adds a ModeLine to the specified
3288 * display device. The ModeLine is not added if validation fails.
3290 * The ModeLine string should have the same syntax as a ModeLine in
3291 * the X configuration file; e.g.,
3293 * "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
3296 #define NV_CTRL_STRING_ADD_MODELINE 10 /* -WDG */
3300 * NV_CTRL_STRING_DELETE_MODELINE - Deletes an existing ModeLine
3301 * from the specified display device. The currently selected
3302 * ModeLine cannot be deleted. (This also means you cannot delete
3303 * the last ModeLine.)
3305 * The ModeLine string should have the same syntax as a ModeLine in
3306 * the X configuration file; e.g.,
3308 * "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
3311 #define NV_CTRL_STRING_DELETE_MODELINE 11 /* -WDG */
3315 * NV_CTRL_STRING_CURRENT_METAMODE - Returns the metamode currently
3316 * being used by the specified X screen. The MetaMode string has the
3317 * same syntax as the MetaMode X configuration option, as documented
3318 * in the NVIDIA driver README.
3320 * The returned string may be prepended with a comma-separated list of
3321 * "token=value" pairs, separated from the MetaMode string by "::".
3322 * This "token=value" syntax is the same as that used in
3323 * NV_CTRL_BINARY_DATA_METAMODES.
3326 #define NV_CTRL_STRING_CURRENT_METAMODE 12 /* RW-- */
3327 #define NV_CTRL_STRING_CURRENT_METAMODE_VERSION_1 \
3328 NV_CTRL_STRING_CURRENT_METAMODE
3333 * NV_CTRL_STRING_ADD_METAMODE - Adds a MetaMode to the specified
3334 * X Screen.
3336 * It is recommended to not use this attribute, but instead use
3337 * NV_CTRL_STRING_OPERATION_ADD_METAMODE.
3340 #define NV_CTRL_STRING_ADD_METAMODE 13 /* -W-- */
3344 * NV_CTRL_STRING_DELETE_METAMODE - Deletes an existing MetaMode from
3345 * the specified X Screen. The currently selected MetaMode cannot be
3346 * deleted. (This also means you cannot delete the last MetaMode).
3347 * The MetaMode string should have the same syntax as the MetaMode X
3348 * configuration option, as documented in the NVIDIA driver README.
3351 #define NV_CTRL_STRING_DELETE_METAMODE 14 /* -WD-- */
3355 * NV_CTRL_STRING_VCSC_PRODUCT_NAME - Querys the product name of the
3356 * VCSC device.
3358 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3359 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3362 #define NV_CTRL_STRING_VCSC_PRODUCT_NAME 15 /* R---V */
3366 * NV_CTRL_STRING_VCSC_PRODUCT_ID - Querys the product ID of the VCSC device.
3368 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3369 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3372 #define NV_CTRL_STRING_VCSC_PRODUCT_ID 16 /* R---V */
3376 * NV_CTRL_STRING_VCSC_SERIAL_NUMBER - Querys the unique serial number
3377 * of the VCS device.
3379 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3380 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3383 #define NV_CTRL_STRING_VCSC_SERIAL_NUMBER 17 /* R---V */
3387 * NV_CTRL_STRING_VCSC_BUILD_DATE - Querys the date of the VCS device.
3388 * the returned string is in the following format: "Week.Year"
3390 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3391 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3394 #define NV_CTRL_STRING_VCSC_BUILD_DATE 18 /* R---V */
3398 * NV_CTRL_STRING_VCSC_FIRMWARE_VERSION - Querys the firmware version
3399 * of the VCS device.
3401 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3402 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3405 #define NV_CTRL_STRING_VCSC_FIRMWARE_VERSION 19 /* R---V */
3409 * NV_CTRL_STRING_VCSC_FIRMWARE_REVISION - Querys the firmware revision
3410 * of the VCS device.
3412 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3413 * using a NV_CTRL_TARGET_TYPE_VCS target.
3416 #define NV_CTRL_STRING_VCSC_FIRMWARE_REVISION 20 /* R---V */
3420 * NV_CTRL_STRING_VCSC_HARDWARE_VERSION - Querys the hardware version
3421 * of the VCS device.
3423 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3424 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3427 #define NV_CTRL_STRING_VCSC_HARDWARE_VERSION 21 /* R---V */
3431 * NV_CTRL_STRING_VCSC_HARDWARE_REVISION - Querys the hardware revision
3432 * of the VCS device.
3434 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3435 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3438 #define NV_CTRL_STRING_VCSC_HARDWARE_REVISION 22 /* R---V */
3442 * NV_CTRL_STRING_MOVE_METAMODE - Moves a MetaMode to the specified
3443 * index location. The MetaMode must already exist in the X Screen's
3444 * list of MetaModes (as returned by the NV_CTRL_BINARY_DATA_METAMODES
3445 * attribute). If the index is larger than the number of MetaModes in
3446 * the list, the MetaMode is moved to the end of the list. The
3447 * MetaMode string should have the same syntax as the MetaMode X
3448 * configuration option, as documented in the NVIDIA driver README.
3450 * The MetaMode string must be prepended with a comma-separated list
3451 * of "token=value" pairs, separated from the MetaMode string by "::".
3452 * Currently, the only valid token is "index", which indicates where
3453 * in the MetaMode list the MetaMode should be moved to.
3455 * Other tokens may be added in the future.
3457 * E.g.,
3458 * "index=5 :: CRT-0: 1024x768 @1024x768 +0+0"
3461 #define NV_CTRL_STRING_MOVE_METAMODE 23 /* -W-- */
3465 * NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES - returns the valid
3466 * horizontal sync ranges used to perform mode validation for the
3467 * specified display device. The ranges are in the same format as the
3468 * "HorizSync" X config option:
3470 * "horizsync-range may be a comma separated list of either discrete
3471 * values or ranges of values. A range of values is two values
3472 * separated by a dash."
3474 * The values are in kHz.
3476 * Additionally, the string may be prepended with a comma-separated
3477 * list of "token=value" pairs, separated from the HorizSync string by
3478 * "::". Valid tokens:
3480 * Token Value
3481 * "source" "edid" - HorizSync is from the display device's EDID
3482 * "xconfig" - HorizSync is from the "HorizSync" entry in
3483 * the Monitor section of the X config file
3484 * "option" - HorizSync is from the "HorizSync" NVIDIA X
3485 * config option
3486 * "twinview" - HorizSync is from the "SecondMonitorHorizSync"
3487 * NVIDIA X config option
3488 * "builtin" - HorizSync is from NVIDIA X driver builtin
3489 * default values
3491 * Additional tokens and/or values may be added in the future.
3493 * Example: "source=edid :: 30.000-62.000"
3496 #define NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES 24 /* R-DG */
3500 * NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES - returns the valid
3501 * vertical refresh ranges used to perform mode validation for the
3502 * specified display device. The ranges are in the same format as the
3503 * "VertRefresh" X config option:
3505 * "vertrefresh-range may be a comma separated list of either discrete
3506 * values or ranges of values. A range of values is two values
3507 * separated by a dash."
3509 * The values are in Hz.
3511 * Additionally, the string may be prepended with a comma-separated
3512 * list of "token=value" pairs, separated from the VertRefresh string by
3513 * "::". Valid tokens:
3515 * Token Value
3516 * "source" "edid" - VertRefresh is from the display device's EDID
3517 * "xconfig" - VertRefresh is from the "VertRefresh" entry in
3518 * the Monitor section of the X config file
3519 * "option" - VertRefresh is from the "VertRefresh" NVIDIA X
3520 * config option
3521 * "twinview" - VertRefresh is from the "SecondMonitorVertRefresh"
3522 * NVIDIA X config option
3523 * "builtin" - VertRefresh is from NVIDIA X driver builtin
3524 * default values
3526 * Additional tokens and/or values may be added in the future.
3528 * Example: "source=edid :: 50.000-75.000"
3531 #define NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES 25 /* R-DG */
3535 * NV_CTRL_STRING_XINERAMA_SCREEN_INFO - returns the physical X Screen's
3536 * initial position and size (in absolute coordinates) within the Xinerama
3537 * desktop as the "token=value" string: "x=#, y=#, width=#, height=#"
3539 * Querying this attribute returns FALSE if NV_CTRL_XINERAMA is not
3540 * NV_CTRL_XINERAMA_ON.
3543 #define NV_CTRL_STRING_XINERAMA_SCREEN_INFO 26 /* R--- */
3547 * NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER - used to specify the
3548 * order that display devices will be returned via Xinerama when
3549 * nvidiaXineramaInfo is enabled. Follows the same syntax as the
3550 * nvidiaXineramaInfoOrder X config option.
3553 #define NV_CTRL_STRING_NVIDIA_XINERAMA_INFO_ORDER 27 /* RW-- */
3555 #define NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER \
3556 NV_CTRL_STRING_NVIDIA_XINERAMA_INFO_ORDER /* for backwards compatibility: */
3559 * NV_CTRL_STRING_SLI_MODE - returns a string describing the current
3560 * SLI mode, if any, or FALSE if SLI is not currently enabled.
3562 * This string should be used for informational purposes only, and
3563 * should not be used to distinguish between SLI modes, other than to
3564 * recognize when SLI is disabled (FALSE is returned) or
3565 * enabled (the returned string is non-NULL and describes the current
3566 * SLI configuration).
3569 #define NV_CTRL_STRING_SLI_MODE 28 /* R---*/
3573 * NV_CTRL_STRING_PERFORMANCE_MODES - returns a string with all the
3574 * performance modes defined for this GPU along with their associated
3575 * NV Clock and Memory Clock values.
3577 * Each performance modes are returned as a comma-separated list of
3578 * "token=value" pairs. Each set of performance mode tokens are separated
3579 * by a ";". Valid tokens:
3581 * Token Value
3582 * "perf" integer - the Performance level
3583 * "nvclock" integer - the GPU clocks (in MHz) for the perf level
3584 * "memclock" integer - the memory clocks (in MHz) for the perf level
3587 * Example:
3589 * perf=0, nvclock=500, memclock=505 ; perf=1, nvclock=650, memclock=505
3591 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3592 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3595 #define NV_CTRL_STRING_PERFORMANCE_MODES 29 /* R--G */
3599 * NV_CTRL_STRING_VCSC_FAN_STATUS - returns a string with status of all the
3600 * fans in the Visual Computing System, if such a query is supported. Fan
3601 * information is reported along with its tachometer reading (in RPM) and a
3602 * flag indicating whether the fan has failed or not.
3604 * Valid tokens:
3606 * Token Value
3607 * "fan" integer - the Fan index
3608 * "speed" integer - the tachometer reading of the fan in rpm
3609 * "fail" integer - flag to indicate whether the fan has failed
3611 * Example:
3613 * fan=0, speed=694, fail=0 ; fan=1, speed=693, fail=0
3615 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3616 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3620 #define NV_CTRL_STRING_VCSC_FAN_STATUS 30 /* R---V */
3624 * NV_CTRL_STRING_VCSC_TEMPERATURES - returns a string with all Temperature
3625 * readings in the Visual Computing System, if such a query is supported.
3626 * Intake, Exhaust and Board Temperature values are reported in Celcius.
3628 * Valid tokens:
3630 * Token Value
3631 * "intake" integer - the intake temperature for the VCS
3632 * "exhaust" integer - the exhaust temperature for the VCS
3633 * "board" integer - the board temperature of the VCS
3635 * Example:
3637 * intake=29, exhaust=46, board=41
3639 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3640 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3644 #define NV_CTRL_STRING_VCSC_TEMPERATURES 31 /* R---V */
3648 * NV_CTRL_STRING_VCSC_PSU_INFO - returns a string with all Power Supply Unit
3649 * related readings in the Visual Computing System, if such a query is
3650 * supported. Current in amperes, Power in watts, Voltage in volts and PSU
3651 * state may be reported. Not all PSU types support all of these values, and
3652 * therefore some readings may be unknown.
3654 * Valid tokens:
3656 * Token Value
3657 * "current" integer - the current drawn in amperes by the VCS
3658 * "power" integer - the power drawn in watts by the VCS
3659 * "voltage" integer - the voltage reading of the VCS
3660 * "state" integer - flag to indicate whether PSU is operating normally
3662 * Example:
3664 * current=10, power=15, voltage=unknown, state=normal
3666 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3667 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3672 #define NV_CTRL_STRING_VCSC_PSU_INFO 32 /* R---V */
3676 * NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME - query the name for the specified
3677 * NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be queried with existing
3678 * interfaces, XNVCTRLQueryStringAttribute() should be used, and the video
3679 * format specified in the display_mask field; eg:
3681 * XNVCTRLQueryStringAttribute(dpy,
3682 * screen,
3683 * NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296,
3684 * NV_CTRL_GVIO_VIDEO_FORMAT_NAME,
3685 * &name);
3688 #define NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME 33 /* R--GI */
3691 * The following is deprecated; use NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME,
3692 * instead
3694 #define NV_CTRL_STRING_GVO_VIDEO_FORMAT_NAME 33 /* R--- */
3698 * NV_CTRL_STRING_GPU_CURRENT_CLOCK_FREQS - returns a string with the
3699 * associated NV Clock, Memory Clock and Processor Clock values.
3701 * Current valid tokens are "nvclock", "memclock", and "processorclock".
3702 * Not all tokens will be reported on all GPUs, and additional tokens
3703 * may be added in the future.
3705 * Clock values are returned as a comma-separated list of
3706 * "token=value" pairs.
3707 * Valid tokens:
3709 * Token Value
3710 * "nvclock" integer - the GPU clocks (in MHz) for the current
3711 * perf level
3712 * "memclock" integer - the memory clocks (in MHz) for the current
3713 * perf level
3714 * "processorclock" integer - the processor clocks (in MHz) for the perf level
3717 * Example:
3719 * nvclock=459, memclock=400, processorclock=918
3721 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3722 * using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3725 #define NV_CTRL_STRING_GPU_CURRENT_CLOCK_FREQS 34 /* RW-G */
3728 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_HARDWARE_REVISION - Returns the
3729 * hardware revision of the 3D Vision Pro transceiver.
3731 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_HARDWARE_REVISION 35 /* R--T */
3734 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_A - Returns the
3735 * firmware version of chip A of the 3D Vision Pro transceiver.
3737 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_A 36 /* R--T */
3740 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_A - Returns the
3741 * date of the firmware of chip A of the 3D Vision Pro transceiver.
3743 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_A 37 /* R--T */
3746 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_B - Returns the
3747 * firmware version of chip B of the 3D Vision Pro transceiver.
3749 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_B 38 /* R--T */
3752 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_B - Returns the
3753 * date of the firmware of chip B of the 3D Vision Pro transceiver.
3755 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_B 39 /* R--T */
3758 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_ADDRESS - Returns the RF address
3759 * of the 3D Vision Pro transceiver.
3761 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_ADDRESS 40 /* R--T */
3764 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_VERSION_A - Returns the
3765 * firmware version of chip A of the glasses.
3766 * Use the display_mask parameter to specify the glasses id.
3768 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_VERSION_A 41 /* R--T */
3771 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_DATE_A - Returns the
3772 * date of the firmware of chip A of the glasses.
3773 * Use the display_mask parameter to specify the glasses id.
3775 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_DATE_A 42 /* R--T */
3778 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_ADDRESS - Returns the RF address
3779 * of the glasses.
3780 * Use the display_mask parameter to specify the glasses id.
3782 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_ADDRESS 43 /* R--T */
3785 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME - Controls the name the
3786 * glasses should use.
3787 * Use the display_mask parameter to specify the glasses id.
3788 * Glasses' name should start and end with an alpha-numeric character.
3790 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME 44 /* RW-T */
3793 * NV_CTRL_STRING_CURRENT_METAMODE_VERSION_2 - Returns the metamode currently
3794 * being used by the specified X screen. The MetaMode string has the same
3795 * syntax as the MetaMode X configuration option, as documented in the NVIDIA
3796 * driver README. Also, see NV_CTRL_BINARY_DATA_METAMODES_VERSION_2 for more
3797 * details on the base syntax.
3799 * The returned string may also be prepended with a comma-separated list of
3800 * "token=value" pairs, separated from the MetaMode string by "::".
3802 #define NV_CTRL_STRING_CURRENT_METAMODE_VERSION_2 45 /* RW-- */
3805 * NV_CTRL_STRING_DISPLAY_NAME_TYPE_BASENAME - Returns a type name for the
3806 * display device ("CRT", "DFP", or "TV"). However, note that the determination
3807 * of the name is based on the protocol through which the X driver communicates
3808 * to the display device. E.g., if the driver communicates using VGA ,then the
3809 * basename is "CRT"; if the driver communicates using TMDS, LVDS, or DP, then
3810 * the name is "DFP".
3812 #define NV_CTRL_STRING_DISPLAY_NAME_TYPE_BASENAME 46 /* R-D- */
3815 * NV_CTRL_STRING_DISPLAY_NAME_TYPE_ID - Returns the type-based name + ID for
3816 * the display device, e.g. "CRT-0", "DFP-1", "TV-2". If this device is a
3817 * DisplayPort 1.2 device, then this name will also be prepended with the
3818 * device's port address like so: "DFP-1.0.1.2.3". See
3819 * NV_CTRL_STRING_DISPLAY_NAME_TYPE_BASENAME for more information about the
3820 * construction of type-based names.
3822 #define NV_CTRL_STRING_DISPLAY_NAME_TYPE_ID 47 /* R-D- */
3825 * NV_CTRL_STRING_DISPLAY_NAME_DP_GUID - Returns the GUID of the DisplayPort
3826 * display device. e.g. "DP-GUID-f16a5bde-79f3-11e1-b2ae-8b5a8969ba9c"
3828 * The display device must be a DisplayPort 1.2 device.
3830 #define NV_CTRL_STRING_DISPLAY_NAME_DP_GUID 48 /* R-D- */
3833 * NV_CTRL_STRING_DISPLAY_NAME_EDID_HASH - Returns the SHA-1 hash of the
3834 * display device's EDID in 8-4-4-4-12 UID format. e.g.
3835 * "DPY-EDID-f16a5bde-79f3-11e1-b2ae-8b5a8969ba9c"
3837 * The display device must have a valid EDID.
3839 #define NV_CTRL_STRING_DISPLAY_NAME_EDID_HASH 49 /* R-D- */
3842 * NV_CTRL_STRING_DISPLAY_NAME_TARGET_INDEX - Returns the current NV-CONTROL
3843 * target ID (name) of the display device. e.g. "DPY-1", "DPY-4"
3845 * This name for the display device is not guarenteed to be the same between
3846 * different runs of the X server.
3848 #define NV_CTRL_STRING_DISPLAY_NAME_TARGET_INDEX 50 /* R-D- */
3851 * NV_CTRL_STRING_DISPLAY_NAME_RANDR - Returns the RandR output name for the
3852 * display device. e.g. "VGA-1", "DVI-I-0", "DVI-D-3", "LVDS-1", "DP-2",
3853 * "HDMI-3", "eDP-6". This name should match If this device is a DisplayPort
3854 * 1.2 device, then this name will also be prepended with the device's port
3855 * address like so: "DVI-I-3.0.1.2.3"
3857 #define NV_CTRL_STRING_DISPLAY_NAME_RANDR 51 /* R-D- */
3859 #define NV_CTRL_STRING_LAST_ATTRIBUTE \
3860 NV_CTRL_STRING_DISPLAY_NAME_RANDR
3863 /**************************************************************************/
3866 * Binary Data Attributes:
3868 * Binary data attributes can be queryied through the XNVCTRLQueryBinaryData()
3869 * and XNVCTRLQueryTargetBinaryData() function calls.
3871 * There are currently no binary data attributes that can be set.
3873 * Unless otherwise noted, all Binary data attributes can be queried
3874 * using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take
3875 * an NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried through
3876 * XNVCTRLQueryBinaryData() (Since an X Screen target is assumed).
3881 * NV_CTRL_BINARY_DATA_EDID - Returns a display device's EDID information
3882 * data.
3884 * This attribute may be queried through XNVCTRLQueryTargetBinaryData()
3885 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3888 #define NV_CTRL_BINARY_DATA_EDID 0 /* R-DG */
3892 * NV_CTRL_BINARY_DATA_MODELINES - Returns a display device's supported
3893 * ModeLines. ModeLines are returned in a buffer, separated by a single
3894 * '\0' and terminated by two consecutive '\0' s like so:
3896 * "ModeLine 1\0ModeLine 2\0ModeLine 3\0Last ModeLine\0\0"
3898 * This attribute may be queried through XNVCTRLQueryTargetBinaryData()
3899 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3901 * Each ModeLine string may be prepended with a comma-separated list
3902 * of "token=value" pairs, separated from the ModeLine string with a
3903 * "::". Valid tokens:
3905 * Token Value
3906 * "source" "xserver" - the ModeLine is from the core X server
3907 * "xconfig" - the ModeLine was specified in the X config file
3908 * "builtin" - the NVIDIA driver provided this builtin ModeLine
3909 * "vesa" - this is a VESA standard ModeLine
3910 * "edid" - the ModeLine was in the display device's EDID
3911 * "nv-control" - the ModeLine was specified via NV-CONTROL
3913 * "xconfig-name" - for ModeLines that were specified in the X config
3914 * file, this is the name the X config file
3915 * gave for the ModeLine.
3917 * Note that a ModeLine can have several sources; the "source" token
3918 * can appear multiple times in the "token=value" pairs list.
3919 * Additional source values may be specified in the future.
3921 * Additional tokens may be added in the future, so it is recommended
3922 * that any token parser processing the returned string from
3923 * NV_CTRL_BINARY_DATA_MODELINES be implemented to gracefully ignore
3924 * unrecognized tokens.
3926 * E.g.,
3928 * "source=xserver, source=vesa, source=edid :: "1024x768_70" 75.0 1024 1048 1184 1328 768 771 777 806 -HSync -VSync"
3929 * "source=xconfig, xconfig-name=1600x1200_60.00 :: "1600x1200_60_0" 161.0 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync"
3932 #define NV_CTRL_BINARY_DATA_MODELINES 1 /* R-DG */
3936 * NV_CTRL_BINARY_DATA_METAMODES - Returns an X Screen's supported
3937 * MetaModes. MetaModes are returned in a buffer separated by a
3938 * single '\0' and terminated by two consecutive '\0' s like so:
3940 * "MetaMode 1\0MetaMode 2\0MetaMode 3\0Last MetaMode\0\0"
3942 * The MetaMode string should have the same syntax as the MetaMode X
3943 * configuration option, as documented in the NVIDIA driver README.
3945 * Each MetaMode string may be prepended with a comma-separated list
3946 * of "token=value" pairs, separated from the MetaMode string with
3947 * "::". Currently, valid tokens are:
3949 * Token Value
3950 * "id" <number> - the id of this MetaMode; this is stored in
3951 * the Vertical Refresh field, as viewed
3952 * by the XRandR and XF86VidMode X *
3953 * extensions.
3955 * "switchable" "yes"/"no" - whether this MetaMode may be switched to via
3956 * ctrl-alt-+/-; Implicit MetaModes (see
3957 * the "IncludeImplicitMetaModes" X
3958 * config option), for example, are not
3959 * normally made available through
3960 * ctrl-alt-+/-.
3962 * "source" "xconfig" - the MetaMode was specified in the X
3963 * config file.
3964 * "implicit" - the MetaMode was implicitly added; see the
3965 * "IncludeImplicitMetaModes" X config option
3966 * for details.
3967 * "nv-control" - the MetaMode was added via the NV-CONTROL X
3968 * extension to the currently running X server.
3969 * "RandR" - the MetaMode was modified in response to an
3970 * RandR RRSetCrtcConfig request.
3972 * Additional tokens may be added in the future, so it is recommended
3973 * that any token parser processing the returned string from
3974 * NV_CTRL_BINARY_DATA_METAMODES be implemented to gracefully ignore
3975 * unrecognized tokens.
3977 * E.g.,
3979 * "id=50, switchable=yes, source=xconfig :: CRT-0: 1024x768 @1024x768 +0+0"
3982 #define NV_CTRL_BINARY_DATA_METAMODES 2 /* R-D- */
3983 #define NV_CTRL_BINARY_DATA_METAMODES_VERSION_1 \
3984 NV_CTRL_BINARY_DATA_METAMODES
3988 * NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU - Returns the list of X
3989 * screens currently driven by the given GPU.
3991 * The format of the returned data is:
3993 * 4 CARD32 number of screens
3994 * 4 * n CARD32 screen indices
3996 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
3997 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
3998 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
4001 #define NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU 3 /* R-DG */
4005 * NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN - Returns the list of GPUs
4006 * currently in use by the given X screen.
4008 * The format of the returned data is:
4010 * 4 CARD32 number of GPUs
4011 * 4 * n CARD32 GPU indices
4014 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN 4 /* R--- */
4018 * NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK - Returns the list of
4019 * GPUs currently connected to the given frame lock board.
4021 * The format of the returned data is:
4023 * 4 CARD32 number of GPUs
4024 * 4 * n CARD32 GPU indices
4026 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4027 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target. This attribute cannot be
4028 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
4031 #define NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK 5 /* R-DF */
4035 * NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT - Returns the Display Device's
4036 * viewport box into the given X Screen (in X Screen coordinates.)
4038 * The format of the returned data is:
4040 * 4 CARD32 Offset X
4041 * 4 CARD32 Offset Y
4042 * 4 CARD32 Width
4043 * 4 CARD32 Height
4046 #define NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT 6 /* R-DG */
4050 * NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU - Returns the list of
4051 * Framelock devices currently connected to the given GPU.
4053 * The format of the returned data is:
4055 * 4 CARD32 number of Framelocks
4056 * 4 * n CARD32 Framelock indices
4058 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4059 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4060 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
4063 #define NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU 7 /* R-DG */
4067 * NV_CTRL_BINARY_DATA_GPUS_USING_VCSC - Returns the list of
4068 * GPU devices connected to the given VCS.
4070 * The format of the returned data is:
4072 * 4 CARD32 number of GPUs
4073 * 4 * n CARD32 GPU indices
4075 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4076 * using a NV_CTRL_TARGET_TYPE_VCSC target. This attribute cannot be
4077 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN and cannot be queried using
4078 * a NV_CTRL_TARGET_TYPE_X_GPU
4081 #define NV_CTRL_BINARY_DATA_GPUS_USING_VCSC 8 /* R-DV */
4085 * NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU - Returns the VCSC device
4086 * that is controlling the given GPU.
4088 * The format of the returned data is:
4090 * 4 CARD32 number of VCS (always 1)
4091 * 4 * n CARD32 VCS indices
4093 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4094 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4095 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN
4098 #define NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU 9 /* R-DG */
4102 * NV_CTRL_BINARY_DATA_COOLERS_USED_BY_GPU - Returns the coolers that
4103 * are cooling the given GPU.
4105 * The format of the returned data is:
4107 * 4 CARD32 number of COOLER
4108 * 4 * n CARD32 COOLER indices
4110 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4111 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4112 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN
4115 #define NV_CTRL_BINARY_DATA_COOLERS_USED_BY_GPU 10 /* R-DG */
4119 * NV_CTRL_BINARY_DATA_GPUS_USED_BY_LOGICAL_XSCREEN - Returns the list of
4120 * GPUs currently driving the given X screen. If Xinerama is enabled, this
4121 * will return all GPUs that are driving any X screen.
4123 * The format of the returned data is:
4125 * 4 CARD32 number of GPUs
4126 * 4 * n CARD32 GPU indices
4129 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_LOGICAL_XSCREEN 11 /* R--- */
4132 * NV_CTRL_BINARY_DATA_THERMAL_SENSORS_USED_BY_GPU - Returns the sensors that
4133 * are attached to the given GPU.
4135 * The format of the returned data is:
4137 * 4 CARD32 number of SENSOR
4138 * 4 * n CARD32 SENSOR indices
4140 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4141 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4142 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN
4145 #define NV_CTRL_BINARY_DATA_THERMAL_SENSORS_USED_BY_GPU 12 /* R--G */
4148 * NV_CTRL_BINARY_DATA_GLASSES_PAIRED_TO_3D_VISION_PRO_TRANSCEIVER - Returns
4149 * the id of the glasses that are currently paired to the given
4150 * 3D Vision Pro transceiver.
4152 * The format of the returned data is:
4154 * 4 CARD32 number of glasses
4155 * 4 * n CARD32 id of glasses
4157 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4158 * using a NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER target.
4160 #define NV_CTRL_BINARY_DATA_GLASSES_PAIRED_TO_3D_VISION_PRO_TRANSCEIVER 13 /* R--T */
4163 * NV_CTRL_BINARY_DATA_DISPLAY_TARGETS - Returns all the display devices
4164 * currently connected to any GPU on the X server.
4166 * The format of the returned data is:
4168 * 4 CARD32 number of display devices
4169 * 4 * n CARD32 display device indices
4171 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData().
4174 #define NV_CTRL_BINARY_DATA_DISPLAY_TARGETS 14 /* R--- */
4177 * NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU - Returns the list of
4178 * display devices that are connected to the GPU target.
4180 * The format of the returned data is:
4182 * 4 CARD32 number of display devices
4183 * 4 * n CARD32 display device indices
4185 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4186 * using a NV_CTRL_TARGET_TYPE_GPU target.
4189 #define NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU 15 /* R--G */
4192 * NV_CTRL_BINARY_DATA_METAMODES_VERSION_2 - Returns values similar to
4193 * NV_CTRL_BINARY_DATA_METAMODES(_VERSION_1) but also returns extended syntax
4194 * information to indicate a specific display device, as well as other per-
4195 * display deviceflags as "token=value" pairs. For example:
4197 * "DPY-1: 1280x1024 {Stereo=PassiveLeft},
4198 * DPY-2: 1280x1024 {Stereo=PassiveRight},"
4200 * The display device names have the form "DPY-%d", where the integer
4201 * part of the name is the NV-CONTROL target ID for that display device
4202 * for this instance of the X server. Note that display device NV-CONTROL
4203 * target IDs are not guaranteed to be the same from one run of the X
4204 * server to the next.
4207 #define NV_CTRL_BINARY_DATA_METAMODES_VERSION_2 16 /* R-D- */
4210 * NV_CTRL_BINARY_DATA_DISPLAYS_ENABLED_ON_XSCREEN - Returns the list of
4211 * display devices that are currently scanning out the X screen target.
4213 * The format of the returned data is:
4215 * 4 CARD32 number of display devices
4216 * 4 * n CARD32 display device indices
4218 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4219 * using a NV_CTRL_TARGET_TYPE_X_SCREEN target.
4222 #define NV_CTRL_BINARY_DATA_DISPLAYS_ENABLED_ON_XSCREEN 17 /* R--- */
4225 #define NV_CTRL_BINARY_DATA_LAST_ATTRIBUTE \
4226 NV_CTRL_BINARY_DATA_DISPLAYS_ENABLED_ON_XSCREEN
4229 /**************************************************************************/
4232 * String Operation Attributes:
4234 * These attributes are used with the XNVCTRLStringOperation()
4235 * function; a string is specified as input, and a string is returned
4236 * as output.
4238 * Unless otherwise noted, all attributes can be operated upon using
4239 * an NV_CTRL_TARGET_TYPE_X_SCREEN target.
4244 * NV_CTRL_STRING_OPERATION_ADD_METAMODE - provide a MetaMode string
4245 * as input, and returns a string containing comma-separated list of
4246 * "token=value" pairs as output. Currently, the only output token is
4247 * "id", which indicates the id that was assigned to the MetaMode.
4249 * All ModeLines referenced in the MetaMode must already exist for
4250 * each display device (as returned by the
4251 * NV_CTRL_BINARY_DATA_MODELINES attribute).
4253 * The MetaMode string should have the same syntax as the MetaMode X
4254 * configuration option, as documented in the NVIDIA driver README.
4256 * The input string can optionally be prepended with a string of
4257 * comma-separated "token=value" pairs, separated from the MetaMode
4258 * string by "::". Currently, the only valid token is "index" which
4259 * indicates the insertion index for the MetaMode.
4261 * E.g.,
4263 * Input: "index=5 :: 1600x1200+0+0, 1600x1200+1600+0"
4264 * Output: "id=58"
4266 * which causes the MetaMode to be inserted at position 5 in the
4267 * MetaMode list (all entries after 5 will be shifted down one slot in
4268 * the list), and the X server's containing mode stores 58 as the
4269 * VRefresh, so that the MetaMode can be uniquely identifed through
4270 * XRandR and XF86VidMode.
4273 #define NV_CTRL_STRING_OPERATION_ADD_METAMODE 0
4277 * NV_CTRL_STRING_OPERATION_GTF_MODELINE - provide as input a string
4278 * of comma-separated "token=value" pairs, and returns a ModeLine
4279 * string, computed using the GTF formula using the parameters from
4280 * the input string. Valid tokens for the input string are "width",
4281 * "height", and "refreshrate".
4283 * E.g.,
4285 * Input: "width=1600, height=1200, refreshrate=60"
4286 * Output: "160.96 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync"
4288 * This operation does not have any impact on any display device's
4289 * modePool, and the ModeLine is not validated; it is simply intended
4290 * for generating ModeLines.
4293 #define NV_CTRL_STRING_OPERATION_GTF_MODELINE 1
4297 * NV_CTRL_STRING_OPERATION_CVT_MODELINE - provide as input a string
4298 * of comma-separated "token=value" pairs, and returns a ModeLine
4299 * string, computed using the CVT formula using the parameters from
4300 * the input string. Valid tokens for the input string are "width",
4301 * "height", "refreshrate", and "reduced-blanking". The
4302 * "reduced-blanking" argument can be "0" or "1", to enable or disable
4303 * use of reduced blanking for the CVT formula.
4305 * E.g.,
4307 * Input: "width=1600, height=1200, refreshrate=60, reduced-blanking=1"
4308 * Output: "130.25 1600 1648 1680 1760 1200 1203 1207 1235 +HSync -VSync"
4310 * This operation does not have any impact on any display device's
4311 * modePool, and the ModeLine is not validated; it is simply intended
4312 * for generating ModeLines.
4315 #define NV_CTRL_STRING_OPERATION_CVT_MODELINE 2
4319 * NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL - build a ModePool for the
4320 * specified display device on the specified target (either an X
4321 * screen or a GPU). This is typically used to generate a ModePool
4322 * for a display device on a GPU on which no X screens are present.
4324 * Currently, a display device's ModePool is static for the life of
4325 * the X server, so XNVCTRLStringOperation will return FALSE if
4326 * requested to build a ModePool on a display device that already has
4327 * a ModePool.
4329 * The string input to BUILD_MODEPOOL may be NULL. If it is not NULL,
4330 * then it is interpreted as a double-colon ("::") separated list
4331 * of "option=value" pairs, where the options and the syntax of their
4332 * values are the X configuration options that impact the behavior of
4333 * modePool construction; namely:
4335 * "ModeValidation"
4336 * "HorizSync"
4337 * "VertRefresh"
4338 * "FlatPanelProperties"
4339 * "TVStandard"
4340 * "ExactModeTimingsDVI"
4341 * "UseEdidFreqs"
4343 * An example input string might look like:
4345 * "ModeValidation=NoVesaModes :: HorizSync=50-110 :: VertRefresh=50-150"
4347 * This request currently does not return a string.
4350 #define NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL 3 /* DG */
4354 * NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS - Configure the streams-
4355 * to-jack+channel topology for a GVI (Graphics capture board).
4357 * The string input to GVI_CONFIGURE_STREAMS may be NULL. If this is the
4358 * case, then the current topology is returned.
4360 * If the input string to GVI_CONFIGURE_STREAMS is not NULL, the string
4361 * is interpreted as a semicolon (";") separated list of comma-separated
4362 * lists of "option=value" pairs that define a stream's composition. The
4363 * available options and their values are:
4365 * "stream": Defines which stream this comma-separated list describes.
4366 * Valid values are the integers between 0 and
4367 * NV_CTRL_GVI_NUM_STREAMS-1 (inclusive).
4369 * "linkN": Defines a jack+channel pair to use for the given link N.
4370 * Valid options are the string "linkN", where N is an integer
4371 * between 0 and NV_CTRL_GVI_MAX_LINKS_PER_STREAM-1 (inclusive).
4372 * Valid values for these options are strings of the form
4373 * "jackX" and/or "jackX.Y", where X is an integer between 0 and
4374 * NV_CTRL_GVI_NUM_JACKS-1 (inclusive), and Y (optional) is an
4375 * integer between 0 and NV_CTRL_GVI_MAX_CHANNELS_PER_JACK-1
4376 * (inclusive).
4378 * An example input string might look like:
4380 * "stream=0, link0=jack0, link1=jack1; stream=1, link0=jack2.1"
4382 * This example specifies two streams, stream 0 and stream 1. Stream 0
4383 * is defined to capture link0 data from the first channel (channel 0) of
4384 * BNC jack 0 and link1 data from the first channel of BNC jack 1. The
4385 * second stream (Stream 1) is defined to capture link0 data from channel 1
4386 * (second channel) of BNC jack 2.
4388 * This example shows a possible configuration for capturing 3G input:
4390 * "stream=0, link0=jack0.0, link1=jack0.1"
4392 * Applications should query the following attributes to determine
4393 * possible combinations:
4395 * NV_CTRL_GVI_MAX_STREAMS
4396 * NV_CTRL_GVI_MAX_LINKS_PER_STREAM
4397 * NV_CTRL_GVI_NUM_JACKS
4398 * NV_CTRL_GVI_MAX_CHANNELS_PER_JACK
4400 * Note: A jack+channel pair can only be tied to one link/stream.
4402 * Upon successful configuration or querying of this attribute, a string
4403 * representing the current topology for all known streams on the device
4404 * will be returned. On failure, NULL is returned.
4406 * Note: Setting this attribute may also result in the following
4407 * NV-CONTROL attributes being reset on the GVI device (to ensure
4408 * the configuration remains valid):
4409 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
4410 * NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT
4411 * NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING
4414 #define NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS 4 /* RW-I */
4417 #define NV_CTRL_STRING_OPERATION_LAST_ATTRIBUTE \
4418 NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS
4423 /**************************************************************************/
4426 * CTRLAttributeValidValuesRec -
4428 * structure and related defines used by
4429 * XNVCTRLQueryValidAttributeValues() to describe the valid values of
4430 * a particular attribute. The type field will be one of:
4432 * ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there
4433 * is no fixed range of valid values.
4435 * ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value,
4436 * interpretted as a bitmask.
4438 * ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are
4439 * either 1 (on/true) or 0 (off/false).
4441 * ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value
4442 * between NVCTRLAttributeValidValues.u.range.min and
4443 * NVCTRLAttributeValidValues.u.range.max (inclusive).
4445 * ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain
4446 * integer values, indicated by which bits in
4447 * NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit
4448 * 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid
4449 * value, etc). This is useful for attributes like NV_CTRL_FSAA_MODE,
4450 * which can only have certain values, depending on GPU.
4452 * ATTRIBUTE_TYPE_64BIT_INTEGER : the attribute is a 64 bit integer value;
4453 * there is no fixed range of valid values.
4455 * ATTRIBUTE_TYPE_STRING : the attribute is a string value; there is no fixed
4456 * range of valid values.
4458 * ATTRIBUTE_TYPE_BINARY_DATA : the attribute is binary data; there is
4459 * no fixed range of valid values.
4461 * ATTRIBUTE_TYPE_STRING_OPERATION : the attribute is a string; there is
4462 * no fixed range of valid values.
4465 * The permissions field of NVCTRLAttributeValidValuesRec is a bitmask
4466 * that may contain:
4468 * ATTRIBUTE_TYPE_READ - Attribute may be read (queried.)
4469 * ATTRIBUTE_TYPE_WRITE - Attribute may be written to (set.)
4470 * ATTRIBUTE_TYPE_DISPLAY - Attribute is valid for display target types
4471 * (requires a display_mask if queried via
4472 * a GPU or X screen.)
4473 * ATTRIBUTE_TYPE_GPU - Attribute is valid for GPU target types.
4474 * ATTRIBUTE_TYPE_FRAMELOCK - Attribute is valid for Frame Lock target types.
4475 * ATTRIBUTE_TYPE_X_SCREEN - Attribute is valid for X Screen target types.
4476 * ATTRIBUTE_TYPE_XINERAMA - Attribute will be made consistent for all
4477 * X Screens when the Xinerama extension is enabled.
4478 * ATTRIBUTE_TYPE_VCSC - Attribute is valid for Visual Computing System
4479 * target types.
4480 * ATTRIBUTE_TYPE_GVI - Attribute is valid for Graphics Video In target
4481 * types.
4482 * ATTRIBUTE_TYPE_COOLER - Attribute is valid for Cooler target types.
4483 * ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER - Attribute is valid for 3D Vision
4484 * Pro Transceiver target types.
4486 * See 'Key to Integer Attribute "Permissions"' at the top of this
4487 * file for a description of what these permission bits mean.
4490 #define ATTRIBUTE_TYPE_UNKNOWN 0
4491 #define ATTRIBUTE_TYPE_INTEGER 1
4492 #define ATTRIBUTE_TYPE_BITMASK 2
4493 #define ATTRIBUTE_TYPE_BOOL 3
4494 #define ATTRIBUTE_TYPE_RANGE 4
4495 #define ATTRIBUTE_TYPE_INT_BITS 5
4496 #define ATTRIBUTE_TYPE_64BIT_INTEGER 6
4497 #define ATTRIBUTE_TYPE_STRING 7
4498 #define ATTRIBUTE_TYPE_BINARY_DATA 8
4499 #define ATTRIBUTE_TYPE_STRING_OPERATION 9
4501 #define ATTRIBUTE_TYPE_READ 0x001
4502 #define ATTRIBUTE_TYPE_WRITE 0x002
4503 #define ATTRIBUTE_TYPE_DISPLAY 0x004
4504 #define ATTRIBUTE_TYPE_GPU 0x008
4505 #define ATTRIBUTE_TYPE_FRAMELOCK 0x010
4506 #define ATTRIBUTE_TYPE_X_SCREEN 0x020
4507 #define ATTRIBUTE_TYPE_XINERAMA 0x040
4508 #define ATTRIBUTE_TYPE_VCSC 0x080
4509 #define ATTRIBUTE_TYPE_GVI 0x100
4510 #define ATTRIBUTE_TYPE_COOLER 0x200
4511 #define ATTRIBUTE_TYPE_THERMAL_SENSOR 0x400
4512 #define ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER 0x800
4514 #define ATTRIBUTE_TYPE_ALL_TARGETS \
4515 ((ATTRIBUTE_TYPE_DISPLAY) | \
4516 (ATTRIBUTE_TYPE_GPU) | \
4517 (ATTRIBUTE_TYPE_FRAMELOCK) | \
4518 (ATTRIBUTE_TYPE_X_SCREEN) | \
4519 (ATTRIBUTE_TYPE_VCSC) | \
4520 (ATTRIBUTE_TYPE_GVI) | \
4521 (ATTRIBUTE_TYPE_COOLER) | \
4522 (ATTRIBUTE_TYPE_THERMAL_SENSOR) | \
4523 (ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER))
4525 typedef struct _NVCTRLAttributeValidValues {
4526 int type;
4527 union {
4528 struct {
4529 int64_t min;
4530 int64_t max;
4531 } range;
4532 struct {
4533 unsigned int ints;
4534 } bits;
4535 } u;
4536 unsigned int permissions;
4537 } NVCTRLAttributeValidValuesRec;
4539 typedef struct _NVCTRLAttributePermissions {
4540 int type;
4541 unsigned int permissions;
4542 } NVCTRLAttributePermissionsRec;
4545 /**************************************************************************/
4548 * NV-CONTROL X event notification.
4550 * To receive X event notifications dealing with NV-CONTROL, you should
4551 * call XNVCtrlSelectNotify() with one of the following set as the type
4552 * of event to receive (see NVCtrlLib.h for more information):
4555 #define ATTRIBUTE_CHANGED_EVENT 0
4556 #define TARGET_ATTRIBUTE_CHANGED_EVENT 1
4557 #define TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT 2
4558 #define TARGET_STRING_ATTRIBUTE_CHANGED_EVENT 3
4559 #define TARGET_BINARY_ATTRIBUTE_CHANGED_EVENT 4
4562 #endif /* __NVCTRL_H */