Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: third_party/nvidia/NVCtrl.h

Issue 10578052: Add NVCtrl header files. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2010 NVIDIA, Corporation
3 *
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:
10 *
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.
14 *
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.
22 */
23
24 #ifndef __NVCTRL_H
25 #define __NVCTRL_H
26
27 #include <stdint.h>
28
29 /**************************************************************************/
30
31 /*
32 * Attribute Targets
33 *
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.
38 *
39 * Here are the supported target types:
40 */
41
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
51
52 /**************************************************************************/
53
54 /*
55 * Attributes
56 *
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()
63 *
64 * Key to Integer Attribute "Permissions":
65 *
66 * R: The attribute is readable (in general, all attributes will be
67 * readable)
68 *
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).
72 *
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.
81 *
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.
85 *
86 * G: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GPU
87 * target type via XNVCTRLQueryTargetAttribute().
88 *
89 * F: The attribute may be queried using an NV_CTRL_TARGET_TYPE_FRAMELOCK
90 * target type via XNVCTRLQueryTargetAttribute().
91 *
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.
95 *
96 * V: The attribute may be queried using an NV_CTRL_TARGET_TYPE_VCSC
97 * target type via XNVCTRLQueryTargetAttribute().
98 *
99 * I: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GVI target type
100 * via XNVCTRLQueryTargetAttribute().
101 *
102 * Q: The attribute is a 64-bit integer attribute; use the 64-bit versions
103 * of the appropriate query interfaces.
104 *
105 * C: The attribute may be queried using an NV_CTRL_TARGET_TYPE_COOLER target
106 * type via XNVCTRLQueryTargetAttribute().
107 *
108 * S: The attribute may be queried using an NV_CTRL_TARGET_TYPE_THERMAL_SENSOR
109 * target type via XNVCTRLQueryTargetAttribute().
110 *
111 * T: The attribute may be queried using an
112 * NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER target type
113 * via XNVCTRLQueryTargetAttribute().
114 *
115 * NOTE: Unless mentioned otherwise, all attributes may be queried using
116 * an NV_CTRL_TARGET_TYPE_X_SCREEN target type via
117 * XNVCTRLQueryTargetAttribute().
118 */
119
120
121 /**************************************************************************/
122
123 /*
124 * Integer attributes:
125 *
126 * Integer attributes can be queried through the XNVCTRLQueryAttribute() and
127 * XNVCTRLQueryTargetAttribute() function calls.
128 *
129 * Integer attributes can be set through the XNVCTRLSetAttribute() and
130 * XNVCTRLSetTargetAttribute() function calls.
131 *
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).
137 */
138
139
140 /*
141 * NV_CTRL_FLATPANEL_SCALING - the current flat panel scaling state;
142 * possible values are:
143 *
144 * 0: default (the driver will use whatever state is current)
145 * 1: native (the driver will use the panel's scaler, if possible)
146 * 2: scaled (the driver will use the GPU's scaler, if possible)
147 * 3: centered (the driver will center the image)
148 * 4: aspect scaled (scale with the GPU's scaler, but keep the aspect
149 * ratio correct)
150 *
151 * USAGE NOTE: This attribute has been deprecated in favor of the new
152 * NV_CTRL_GPU_SCALING attribute.
153 */
154
155 #define NV_CTRL_FLATPANEL_SCALING 2 /* RWDG */
156 #define NV_CTRL_FLATPANEL_SCALING_DEFAULT 0
157 #define NV_CTRL_FLATPANEL_SCALING_NATIVE 1
158 #define NV_CTRL_FLATPANEL_SCALING_SCALED 2
159 #define NV_CTRL_FLATPANEL_SCALING_CENTERED 3
160 #define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED 4
161
162
163 /*
164 * NV_CTRL_FLATPANEL_DITHERING is deprecated; NV_CTRL_DITHERING should
165 * be used instead.
166 */
167
168 #define NV_CTRL_FLATPANEL_DITHERING 3 /* RWDG */
169 #define NV_CTRL_FLATPANEL_DITHERING_DEFAULT 0
170 #define NV_CTRL_FLATPANEL_DITHERING_ENABLED 1
171 #define NV_CTRL_FLATPANEL_DITHERING_DISABLED 2
172
173 /*
174 * NV_CTRL_DITHERING - the requested dithering configuration;
175 * possible values are:
176 *
177 * 0: auto (the driver will decide when to dither)
178 * 1: enabled (the driver will always dither when possible)
179 * 2: disabled (the driver will never dither)
180 */
181
182 #define NV_CTRL_DITHERING 3 /* RWDG */
183 #define NV_CTRL_DITHERING_AUTO 0
184 #define NV_CTRL_DITHERING_ENABLED 1
185 #define NV_CTRL_DITHERING_DISABLED 2
186
187
188 /*
189 * NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the
190 * specified display device.
191 */
192
193 #define NV_CTRL_DIGITAL_VIBRANCE 4 /* RWDG */
194
195
196 /*
197 * NV_CTRL_BUS_TYPE - returns the bus type through which the specified device
198 * is connected to the computer.
199 * When this attribute is queried on an X screen target, the bus type of the
200 * GPU driving the X screen is returned.
201 */
202
203 #define NV_CTRL_BUS_TYPE 5 /* R--GI */
204 #define NV_CTRL_BUS_TYPE_AGP 0
205 #define NV_CTRL_BUS_TYPE_PCI 1
206 #define NV_CTRL_BUS_TYPE_PCI_EXPRESS 2
207 #define NV_CTRL_BUS_TYPE_INTEGRATED 3
208
209
210 /*
211 * NV_CTRL_VIDEO_RAM - returns the total amount of memory available
212 * to the specified GPU (or the GPU driving the specified X
213 * screen). Note: if the GPU supports TurboCache(TM), the value
214 * reported may exceed the amount of video memory installed on the
215 * GPU. The value reported for integrated GPUs may likewise exceed
216 * the amount of dedicated system memory set aside by the system
217 * BIOS for use by the integrated GPU.
218 */
219
220 #define NV_CTRL_VIDEO_RAM 6 /* R--G */
221
222
223 /*
224 * NV_CTRL_IRQ - returns the interrupt request line used by the specified
225 * device.
226 * When this attribute is queried on an X screen target, the IRQ of the GPU
227 * driving the X screen is returned.
228 */
229
230 #define NV_CTRL_IRQ 7 /* R--GI */
231
232
233 /*
234 * NV_CTRL_OPERATING_SYSTEM - returns the operating system on which
235 * the X server is running.
236 */
237
238 #define NV_CTRL_OPERATING_SYSTEM 8 /* R--G */
239 #define NV_CTRL_OPERATING_SYSTEM_LINUX 0
240 #define NV_CTRL_OPERATING_SYSTEM_FREEBSD 1
241 #define NV_CTRL_OPERATING_SYSTEM_SUNOS 2
242
243
244 /*
245 * NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients.
246 * This setting is only applied to OpenGL clients that are started
247 * after this setting is applied.
248 */
249
250 #define NV_CTRL_SYNC_TO_VBLANK 9 /* RW-X */
251 #define NV_CTRL_SYNC_TO_VBLANK_OFF 0
252 #define NV_CTRL_SYNC_TO_VBLANK_ON 1
253
254
255 /*
256 * NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL
257 * clients; on some NVIDIA hardware, this can only be enabled or
258 * disabled; on other hardware different levels of anisotropic
259 * filtering can be specified. This setting is only applied to OpenGL
260 * clients that are started after this setting is applied.
261 */
262
263 #define NV_CTRL_LOG_ANISO 10 /* RW-X */
264
265
266 /*
267 * NV_CTRL_FSAA_MODE - the FSAA setting for OpenGL clients; possible
268 * FSAA modes:
269 *
270 * NV_CTRL_FSAA_MODE_2x "2x Bilinear Multisampling"
271 * NV_CTRL_FSAA_MODE_2x_5t "2x Quincunx Multisampling"
272 * NV_CTRL_FSAA_MODE_15x15 "1.5 x 1.5 Supersampling"
273 * NV_CTRL_FSAA_MODE_2x2 "2 x 2 Supersampling"
274 * NV_CTRL_FSAA_MODE_4x "4x Bilinear Multisampling"
275 * NV_CTRL_FSAA_MODE_4x_9t "4x Gaussian Multisampling"
276 * NV_CTRL_FSAA_MODE_8x "2x Bilinear Multisampling by 4x Supersampling"
277 * NV_CTRL_FSAA_MODE_16x "4x Bilinear Multisampling by 4x Supersampling"
278 * NV_CTRL_FSAA_MODE_8xS "4x Multisampling by 2x Supersampling"
279 *
280 * This setting is only applied to OpenGL clients that are started
281 * after this setting is applied.
282 */
283
284 #define NV_CTRL_FSAA_MODE 11 /* RW-X */
285 #define NV_CTRL_FSAA_MODE_NONE 0
286 #define NV_CTRL_FSAA_MODE_2x 1
287 #define NV_CTRL_FSAA_MODE_2x_5t 2
288 #define NV_CTRL_FSAA_MODE_15x15 3
289 #define NV_CTRL_FSAA_MODE_2x2 4
290 #define NV_CTRL_FSAA_MODE_4x 5
291 #define NV_CTRL_FSAA_MODE_4x_9t 6
292 #define NV_CTRL_FSAA_MODE_8x 7
293 #define NV_CTRL_FSAA_MODE_16x 8
294 #define NV_CTRL_FSAA_MODE_8xS 9
295 #define NV_CTRL_FSAA_MODE_8xQ 10
296 #define NV_CTRL_FSAA_MODE_16xS 11
297 #define NV_CTRL_FSAA_MODE_16xQ 12
298 #define NV_CTRL_FSAA_MODE_32xS 13
299 #define NV_CTRL_FSAA_MODE_MAX NV_CTRL_FSAA_MODE_32xS
300
301
302 /*
303 * NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL
304 * clients. This setting is only applied to OpenGL clients that are
305 * started after this setting is applied.
306 */
307
308 #define NV_CTRL_TEXTURE_SHARPEN 12 /* RW-X */
309 #define NV_CTRL_TEXTURE_SHARPEN_OFF 0
310 #define NV_CTRL_TEXTURE_SHARPEN_ON 1
311
312
313 /*
314 * NV_CTRL_UBB - returns whether UBB is enabled for the specified X
315 * screen.
316 */
317
318 #define NV_CTRL_UBB 13 /* R-- */
319 #define NV_CTRL_UBB_OFF 0
320 #define NV_CTRL_UBB_ON 1
321
322
323 /*
324 * NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for
325 * the specified X screen.
326 */
327
328 #define NV_CTRL_OVERLAY 14 /* R-- */
329 #define NV_CTRL_OVERLAY_OFF 0
330 #define NV_CTRL_OVERLAY_ON 1
331
332
333 /*
334 * NV_CTRL_STEREO - returns whether stereo (and what type) is enabled
335 * for the specified X screen.
336 */
337
338 #define NV_CTRL_STEREO 16 /* R-- */
339 #define NV_CTRL_STEREO_OFF 0
340 #define NV_CTRL_STEREO_DDC 1
341 #define NV_CTRL_STEREO_BLUELINE 2
342 #define NV_CTRL_STEREO_DIN 3
343 #define NV_CTRL_STEREO_PASSIVE_EYE_PER_DPY 4
344 #define NV_CTRL_STEREO_VERTICAL_INTERLACED 5
345 #define NV_CTRL_STEREO_COLOR_INTERLACED 6
346 #define NV_CTRL_STEREO_HORIZONTAL_INTERLACED 7
347 #define NV_CTRL_STEREO_CHECKERBOARD_PATTERN 8
348 #define NV_CTRL_STEREO_INVERSE_CHECKERBOARD_PATTERN 9
349 #define NV_CTRL_STEREO_3D_VISION 10
350 #define NV_CTRL_STEREO_3D_VISION_PRO 11
351
352 /*
353 * NV_CTRL_EMULATE - controls OpenGL software emulation of future
354 * NVIDIA GPUs.
355 */
356
357 #define NV_CTRL_EMULATE 17 /* RW- */
358 #define NV_CTRL_EMULATE_NONE 0
359
360
361 /*
362 * NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the
363 * specified X screen.
364 */
365
366 #define NV_CTRL_TWINVIEW 18 /* R-- */
367 #define NV_CTRL_TWINVIEW_NOT_ENABLED 0
368 #define NV_CTRL_TWINVIEW_ENABLED 1
369
370
371 /*
372 * NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating the last
373 * cached state of the display devices connected to the GPU or GPU driving
374 * the specified X screen.
375 *
376 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
377 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
378 */
379
380 #define NV_CTRL_CONNECTED_DISPLAYS 19 /* R--G */
381
382
383 /*
384 * NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what
385 * display devices are enabled for use on the specified X screen or
386 * GPU.
387 *
388 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
389 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
390 */
391
392 #define NV_CTRL_ENABLED_DISPLAYS 20 /* R--G */
393
394 /**************************************************************************/
395 /*
396 * Integer attributes specific to configuring Frame Lock on boards that
397 * support it.
398 */
399
400
401 /*
402 * NV_CTRL_FRAMELOCK - returns whether the underlying GPU supports
403 * Frame Lock. All of the other frame lock attributes are only
404 * applicable if NV_CTRL_FRAMELOCK is _SUPPORTED.
405 *
406 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
407 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
408 */
409
410 #define NV_CTRL_FRAMELOCK 21 /* R--G */
411 #define NV_CTRL_FRAMELOCK_NOT_SUPPORTED 0
412 #define NV_CTRL_FRAMELOCK_SUPPORTED 1
413
414
415 /*
416 * NV_CTRL_FRAMELOCK_MASTER - get/set which display device to use
417 * as the frame lock master for the entire sync group. Note that only
418 * one node in the sync group should be configured as the master.
419 *
420 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
421 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
422 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
423 */
424
425 #define NV_CTRL_FRAMELOCK_MASTER 22 /* RW-G */
426
427 /* These are deprecated. NV_CTRL_FRAMELOCK_MASTER now takes and
428 returns a display mask as value. */
429 #define NV_CTRL_FRAMELOCK_MASTER_FALSE 0
430 #define NV_CTRL_FRAMELOCK_MASTER_TRUE 1
431
432
433 /*
434 * NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the
435 * frame lock pulse, the falling edge of the frame lock pulse or both.
436 *
437 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
438 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
439 * target.
440 */
441
442 #define NV_CTRL_FRAMELOCK_POLARITY 23 /* RW-F */
443 #define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE 0x1
444 #define NV_CTRL_FRAMELOCK_POLARITY_FALLING_EDGE 0x2
445 #define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES 0x3
446
447
448 /*
449 * NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the frame lock pulse
450 * and the GPU sync. This value must be multiplied by
451 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION to determine the sync delay in
452 * nanoseconds.
453 *
454 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
455 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
456 * target.
457 *
458 * USAGE NODE: NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX and
459 * NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR are deprecated.
460 * The Sync Delay _MAX and _FACTOR are different for different
461 * GSync products and so, to be correct, the valid values for
462 * NV_CTRL_FRAMELOCK_SYNC_DELAY must be queried to get the range
463 * of acceptable sync delay values, and
464 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION must be queried to
465 * obtain the correct factor.
466 */
467
468 #define NV_CTRL_FRAMELOCK_SYNC_DELAY 24 /* RW-F */
469 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX 2047 // deprecat ed
470 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR 7.81 // deprecat ed
471
472
473 /*
474 * NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses
475 * between the frame lock sync generation (0 == sync every house sync);
476 * this only applies to the master when receiving house sync.
477 *
478 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
479 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
480 * target.
481 */
482
483 #define NV_CTRL_FRAMELOCK_SYNC_INTERVAL 25 /* RW-F */
484
485
486 /*
487 * NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0.
488 *
489 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
490 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
491 * target.
492 */
493
494 #define NV_CTRL_FRAMELOCK_PORT0_STATUS 26 /* R--F */
495 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT 0
496 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT 1
497
498
499 /*
500 * NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1.
501 *
502 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
503 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
504 * target.
505 */
506
507 #define NV_CTRL_FRAMELOCK_PORT1_STATUS 27 /* R--F */
508 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT 0
509 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT 1
510
511
512 /*
513 * NV_CTRL_FRAMELOCK_HOUSE_STATUS - returns whether or not the house
514 * sync signal was detected on the BNC connector of the frame lock
515 * board.
516 *
517 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
518 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
519 * target.
520 */
521
522 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS 28 /* R--F */
523 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED 0
524 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED 1
525
526
527 /*
528 * NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of display
529 * devices to the frame lock pulse as specified by previous calls to
530 * NV_CTRL_FRAMELOCK_MASTER and NV_CTRL_FRAMELOCK_SLAVES.
531 *
532 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
533 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
534 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
535 */
536
537 #define NV_CTRL_FRAMELOCK_SYNC 29 /* RW-G */
538 #define NV_CTRL_FRAMELOCK_SYNC_DISABLE 0
539 #define NV_CTRL_FRAMELOCK_SYNC_ENABLE 1
540
541
542 /*
543 * NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a frame lock
544 * board is receiving sync (regardless of whether or not any display
545 * devices are using the sync).
546 *
547 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
548 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
549 * target.
550 */
551
552 #define NV_CTRL_FRAMELOCK_SYNC_READY 30 /* R--F */
553 #define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE 0
554 #define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE 1
555
556
557 /*
558 * NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo
559 * signal is in sync with the frame lock stereo signal.
560 *
561 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
562 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN
563 * target.
564 */
565
566 #define NV_CTRL_FRAMELOCK_STEREO_SYNC 31 /* R--G */
567 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE 0
568 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE 1
569
570
571 /*
572 * NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync
573 * group, tell the master to enable a test signal, then query port[01]
574 * status and sync_ready on all slaves. When done, tell the master to
575 * disable the test signal. Test signal should only be manipulated
576 * while NV_CTRL_FRAMELOCK_SYNC is enabled.
577 *
578 * The TEST_SIGNAL is also used to reset the Universal Frame Count (as
579 * returned by the glXQueryFrameCountNV() function in the
580 * GLX_NV_swap_group extension). Note: for best accuracy of the
581 * Universal Frame Count, it is recommended to toggle the TEST_SIGNAL
582 * on and off after enabling frame lock.
583 *
584 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
585 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
586 */
587
588 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL 32 /* RW-G */
589 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE 0
590 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE 1
591
592
593 /*
594 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The frame lock boards are
595 * cabled together using regular cat5 cable, connecting to rj45 ports
596 * on the backplane of the card. There is some concern that users may
597 * think these are ethernet ports and connect them to a
598 * router/hub/etc. The hardware can detect this and will shut off to
599 * prevent damage (either to itself or to the router).
600 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if
601 * ethernet is connected to one of the rj45 ports. An appropriate
602 * error message should then be displayed. The _PORT0 and _PORT1
603 * values may be or'ed together.
604 *
605 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
606 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
607 * target.
608 */
609
610 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED 33 /* R--F */
611 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE 0
612 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0 0x1
613 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1 0x2
614
615
616 /*
617 * NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set what video mode is used
618 * to interperate the house sync signal. This should only be set
619 * on the master.
620 *
621 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
622 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
623 * target.
624 */
625
626 #define NV_CTRL_FRAMELOCK_VIDEO_MODE 34 /* RW-F */
627 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE 0
628 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1
629 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM 2
630 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV 3
631
632 /*
633 * During FRAMELOCK bring-up, the above values were redefined to
634 * these:
635 */
636
637 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO 0
638 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1
639 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL 2
640 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL 3
641
642
643 /*
644 * NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the
645 * frame lock board is sending to the GPU, in milliHz.
646 *
647 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
648 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
649 * target.
650 */
651
652 #define NV_CTRL_FRAMELOCK_SYNC_RATE 35 /* R--F */
653
654
655
656 /**************************************************************************/
657
658 /*
659 * NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific
660 * features such as MMX, SSE, or 3DNOW! for OpenGL clients; this
661 * option may result in performance loss, but may be useful in
662 * conjunction with software such as the Valgrind memory debugger.
663 * This setting is only applied to OpenGL clients that are started
664 * after this setting is applied.
665 *
666 * USAGE NOTE: This attribute is deprecated. CPU compatibility is now
667 * checked each time during initialization.
668 */
669
670 #define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW-X */
671 #define NV_CTRL_FORCE_GENERIC_CPU_DISABLE 0
672 #define NV_CTRL_FORCE_GENERIC_CPU_ENABLE 1
673
674
675 /*
676 * NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow
677 * Gamma-corrected antialiased lines to consider variances in the
678 * color display capabilities of output devices when rendering smooth
679 * lines. Only available on recent Quadro GPUs. This setting is only
680 * applied to OpenGL clients that are started after this setting is
681 * applied.
682 */
683
684 #define NV_CTRL_OPENGL_AA_LINE_GAMMA 38 /* RW-X */
685 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE 0
686 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE 1
687
688
689 /*
690 * NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the gpu is both receiving
691 * and locked to an input timing signal. Timing information may come from
692 * the following places: Another frame lock device that is set to master,
693 * the house sync signal, or the GPU's internal timing from a display
694 * device.
695 *
696 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
697 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
698 */
699
700 #define NV_CTRL_FRAMELOCK_TIMING 39 /* R--G */
701 #define NV_CTRL_FRAMELOCK_TIMING_FALSE 0
702 #define NV_CTRL_FRAMELOCK_TIMING_TRUE 1
703
704 /*
705 * NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping
706 * when possible; when FALSE, OpenGL will alway swap by blitting.
707 */
708
709 #define NV_CTRL_FLIPPING_ALLOWED 40 /* RW-X */
710 #define NV_CTRL_FLIPPING_ALLOWED_FALSE 0
711 #define NV_CTRL_FLIPPING_ALLOWED_TRUE 1
712
713 /*
714 * NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is
715 * running.
716 */
717
718 #define NV_CTRL_ARCHITECTURE 41 /* R-- */
719 #define NV_CTRL_ARCHITECTURE_X86 0
720 #define NV_CTRL_ARCHITECTURE_X86_64 1
721 #define NV_CTRL_ARCHITECTURE_IA64 2
722
723
724 /*
725 * NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL. By
726 * default, NVIDIA's OpenGL implementation uses CLAMP_TO_EDGE, which
727 * is not strictly conformant, but some applications rely on the
728 * non-conformant behavior, and not all GPUs support conformant
729 * texture clamping in hardware. _SPEC forces OpenGL texture clamping
730 * to be conformant, but may introduce slower performance on older
731 * GPUS, or incorrect texture clamping in certain applications.
732 */
733
734 #define NV_CTRL_TEXTURE_CLAMPING 42 /* RW-X */
735 #define NV_CTRL_TEXTURE_CLAMPING_EDGE 0
736 #define NV_CTRL_TEXTURE_CLAMPING_SPEC 1
737
738
739
740 #define NV_CTRL_CURSOR_SHADOW 43 /* RW- */
741 #define NV_CTRL_CURSOR_SHADOW_DISABLE 0
742 #define NV_CTRL_CURSOR_SHADOW_ENABLE 1
743
744 #define NV_CTRL_CURSOR_SHADOW_ALPHA 44 /* RW- */
745 #define NV_CTRL_CURSOR_SHADOW_RED 45 /* RW- */
746 #define NV_CTRL_CURSOR_SHADOW_GREEN 46 /* RW- */
747 #define NV_CTRL_CURSOR_SHADOW_BLUE 47 /* RW- */
748
749 #define NV_CTRL_CURSOR_SHADOW_X_OFFSET 48 /* RW- */
750 #define NV_CTRL_CURSOR_SHADOW_Y_OFFSET 49 /* RW- */
751
752
753
754 /*
755 * When Application Control for FSAA is enabled, then what the
756 * application requests is used, and NV_CTRL_FSAA_MODE is ignored. If
757 * this is disabled, then any application setting is overridden with
758 * NV_CTRL_FSAA_MODE
759 */
760
761 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED 50 /* RW-X */
762 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED 1
763 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED 0
764
765
766 /*
767 * When Application Control for LogAniso is enabled, then what the
768 * application requests is used, and NV_CTRL_LOG_ANISO is ignored. If
769 * this is disabled, then any application setting is overridden with
770 * NV_CTRL_LOG_ANISO
771 */
772
773 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED 51 /* RW-X */
774 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED 1
775 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED 0
776
777
778 /*
779 * IMAGE_SHARPENING adjusts the sharpness of the display's image
780 * quality by amplifying high frequency content. Valid values will
781 * normally be in the range [0,32). Only available on GeForceFX or
782 * newer.
783 */
784
785 #define NV_CTRL_IMAGE_SHARPENING 52 /* RWDG */
786
787
788 /*
789 * NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified
790 * display device.
791 */
792
793 #define NV_CTRL_TV_OVERSCAN 53 /* RWDG */
794
795
796 /*
797 * NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on
798 * the specified display device.
799 */
800
801 #define NV_CTRL_TV_FLICKER_FILTER 54 /* RWDG */
802
803
804 /*
805 * NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the
806 * specified display device.
807 */
808
809 #define NV_CTRL_TV_BRIGHTNESS 55 /* RWDG */
810
811
812 /*
813 * NV_CTRL_TV_HUE adjusts the amount of hue on the specified display
814 * device.
815 */
816
817 #define NV_CTRL_TV_HUE 56 /* RWDG */
818
819
820 /*
821 * NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified
822 * display device.
823 */
824
825 #define NV_CTRL_TV_CONTRAST 57 /* RWDG */
826
827
828 /*
829 * NV_CTRL_TV_SATURATION adjusts the amount of saturation on the
830 * specified display device.
831 */
832
833 #define NV_CTRL_TV_SATURATION 58 /* RWDG */
834
835
836 /*
837 * NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used
838 * to request that all TV Settings be reset to their default values;
839 * typical usage would be that this attribute be sent, and then all
840 * the TV attributes be queried to retrieve their new values.
841 */
842
843 #define NV_CTRL_TV_RESET_SETTINGS 59 /* -WDG */
844
845
846 /*
847 * NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature
848 * of the GPU driving the X screen.
849 */
850
851 #define NV_CTRL_GPU_CORE_TEMPERATURE 60 /* R--G */
852
853
854 /*
855 * NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown
856 * threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and
857 * NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core
858 * slowdown threshold temperatures.
859 *
860 * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the
861 * GPU is throttled to prevent overheating.
862 */
863
864 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R--G */
865 #define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD 62 /* R--G */
866 #define NV_CTRL_GPU_MAX_CORE_THRESHOLD 63 /* R--G */
867
868
869 /*
870 * NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the
871 * immediate neighbourhood of the GPU driving the X screen.
872 */
873
874 #define NV_CTRL_AMBIENT_TEMPERATURE 64 /* R--G */
875
876
877 /*
878 * NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen
879 * supports scanout of FP pbuffers;
880 *
881 * if this screen does not support PBUFFER_SCANOUT, then all other
882 * PBUFFER_SCANOUT attributes are unavailable.
883 *
884 * PBUFFER_SCANOUT is supported if and only if:
885 * - Twinview is configured with clone mode. The secondary screen is used to
886 * scanout the pbuffer.
887 * - The desktop is running in with 16 bits per pixel.
888 */
889 #define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED 65 /* R-- */
890 #define NV_CTRL_PBUFFER_SCANOUT_FALSE 0
891 #define NV_CTRL_PBUFFER_SCANOUT_TRUE 1
892
893 /*
894 * NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for
895 * scanout.
896 */
897 #define NV_CTRL_PBUFFER_SCANOUT_XID 66 /* RW- */
898
899 /**************************************************************************/
900 /*
901 * The NV_CTRL_GVO_* integer attributes are used to configure GVO
902 * (Graphics to Video Out). This functionality is available, for
903 * example, on the Quadro FX 4000 SDI graphics board.
904 *
905 * The following is a typical usage pattern for the GVO attributes:
906 *
907 * - query NV_CTRL_GVO_SUPPORTED to determine if the X screen supports GV0.
908 *
909 * - specify NV_CTRL_GVO_SYNC_MODE (one of FREE_RUNNING, GENLOCK, or
910 * FRAMELOCK); if you specify GENLOCK or FRAMELOCK, you should also
911 * specify NV_CTRL_GVO_SYNC_SOURCE.
912 *
913 * - Use NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED and
914 * NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED to detect what input syncs are
915 * present.
916 *
917 * (If no analog sync is detected but it is known that a valid
918 * bi-level or tri-level sync is connected set
919 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE appropriately and
920 * retest with NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED).
921 *
922 * - if syncing to input sync, query the
923 * NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT attribute; note that Input video
924 * format can only be queried after SYNC_SOURCE is specified.
925 *
926 * - specify the NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
927 *
928 * - specify the NV_CTRL_GVO_DATA_FORMAT
929 *
930 * - specify any custom Color Space Conversion (CSC) matrix, offset,
931 * and scale with XNVCTRLSetGvoColorConversion().
932 *
933 * - if using the GLX_NV_video_out extension to display one or more
934 * pbuffers, call glXGetVideoDeviceNV() to lock the GVO output for use
935 * by the GLX client; then bind the pbuffer(s) to the GVO output with
936 * glXBindVideoImageNV() and send pbuffers to the GVO output with
937 * glXSendPbufferToVideoNV(); see the GLX_NV_video_out spec for more
938 * details.
939 *
940 * - if, rather than using the GLX_NV_video_out extension to display
941 * GLX pbuffers on the GVO output, you wish display the X screen on
942 * the GVO output, set NV_CTRL_GVO_DISPLAY_X_SCREEN to
943 * NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE.
944 *
945 * Note that setting most GVO attributes only causes the value to be
946 * cached in the X server. The values will be flushed to the hardware
947 * either when NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, or when a GLX
948 * pbuffer is bound to the GVO output (with glXBindVideoImageNV()).
949 *
950 * Note that GLX_NV_video_out and NV_CTRL_GVO_DISPLAY_X_SCREEN are
951 * mutually exclusive. If NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled,
952 * then glXGetVideoDeviceNV will fail. Similarly, if a GLX client has
953 * locked the GVO output (via glXGetVideoDeviceNV), then
954 * NV_CTRL_GVO_DISPLAY_X_SCREEN will fail. The NV_CTRL_GVO_GLX_LOCKED
955 * event will be sent when a GLX client locks the GVO output.
956 *
957 */
958
959
960 /*
961 * NV_CTRL_GVO_SUPPORTED - returns whether this X screen supports GVO;
962 * if this screen does not support GVO output, then all other GVO
963 * attributes are unavailable.
964 */
965
966 #define NV_CTRL_GVO_SUPPORTED 67 /* R-- */
967 #define NV_CTRL_GVO_SUPPORTED_FALSE 0
968 #define NV_CTRL_GVO_SUPPORTED_TRUE 1
969
970
971 /*
972 * NV_CTRL_GVO_SYNC_MODE - selects the GVO sync mode; possible values
973 * are:
974 *
975 * FREE_RUNNING - GVO does not sync to any external signal
976 *
977 * GENLOCK - the GVO output is genlocked to an incoming sync signal;
978 * genlocking locks at hsync. This requires that the output video
979 * format exactly match the incoming sync video format.
980 *
981 * FRAMELOCK - the GVO output is frame locked to an incoming sync
982 * signal; frame locking locks at vsync. This requires that the output
983 * video format have the same refresh rate as the incoming sync video
984 * format.
985 */
986
987 #define NV_CTRL_GVO_SYNC_MODE 68 /* RW- */
988 #define NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING 0
989 #define NV_CTRL_GVO_SYNC_MODE_GENLOCK 1
990 #define NV_CTRL_GVO_SYNC_MODE_FRAMELOCK 2
991
992
993 /*
994 * NV_CTRL_GVO_SYNC_SOURCE - if NV_CTRL_GVO_SYNC_MODE is set to either
995 * GENLOCK or FRAMELOCK, this controls which sync source is used as
996 * the incoming sync signal (either Composite or SDI). If
997 * NV_CTRL_GVO_SYNC_MODE is FREE_RUNNING, this attribute has no
998 * effect.
999 */
1000
1001 #define NV_CTRL_GVO_SYNC_SOURCE 69 /* RW- */
1002 #define NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE 0
1003 #define NV_CTRL_GVO_SYNC_SOURCE_SDI 1
1004
1005
1006 /*
1007 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT - specifies the desired output video
1008 * format for GVO devices or the desired input video format for GVI devices.
1009 *
1010 * Note that for GVO, the valid video formats may vary depending on
1011 * the NV_CTRL_GVO_SYNC_MODE and the incoming sync video format. See
1012 * the definition of NV_CTRL_GVO_SYNC_MODE.
1013 *
1014 * Note that when querying the ValidValues for this data type, the
1015 * values are reported as bits within a bitmask
1016 * (ATTRIBUTE_TYPE_INT_BITS); unfortunately, there are more valid
1017 * value bits than will fit in a single 32-bit value. To solve this,
1018 * query the ValidValues for NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT to
1019 * check which of the first 31 VIDEO_FORMATS are valid, query the
1020 * ValidValues for NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 to check which
1021 * of the 32-63 VIDEO_FORMATS are valid, and query the ValidValues of
1022 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 to check which of the 64-95
1023 * VIDEO_FORMATS are valid.
1024 *
1025 * Note: Setting this attribute on a GVI device may also result in the
1026 * following NV-CONTROL attributes being reset on that device (to
1027 * ensure the configuration remains valid):
1028 * NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT
1029 * NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING
1030 */
1031
1032 #define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT 70 /* RW--I */
1033
1034 #define NV_CTRL_GVIO_VIDEO_FORMAT_NONE 0
1035 #define NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1
1036 #define NV_CTRL_GVIO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2
1037 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_59_94_SMPTE296 3
1038 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296 4
1039 #define NV_CTRL_GVIO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5
1040 #define NV_CTRL_GVIO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6
1041 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7
1042 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8
1043 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9
1044 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10
1045 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11
1046 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12
1047 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13
1048 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14
1049 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15
1050 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_50_00_SMPTE296 16
1051 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17
1052 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18
1053 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_30_00_SMPTE296 19
1054 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_29_97_SMPTE296 20
1055 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_25_00_SMPTE296 21
1056 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_24_00_SMPTE296 22
1057 #define NV_CTRL_GVIO_VIDEO_FORMAT_720P_23_98_SMPTE296 23
1058 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24
1059 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25
1060 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26
1061 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27
1062 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28
1063 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_30_00_SMPTE372 29
1064 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_29_97_SMPTE372 30
1065 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_60_00_SMPTE372 31
1066 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_59_94_SMPTE372 32
1067 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_25_00_SMPTE372 33
1068 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_50_00_SMPTE372 34
1069 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_24_00_SMPTE372 35
1070 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_23_98_SMPTE372 36
1071 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_48_00_SMPTE372 37
1072 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_SMPTE372 38
1073 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_50_00_3G_LEVEL_A_SMPTE274 39
1074 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_59_94_3G_LEVEL_A_SMPTE274 40
1075 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_60_00_3G_LEVEL_A_SMPTE274 41
1076 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_60_00_3G_LEVEL_B_SMPTE274 42
1077 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_60_00_3G_LEVEL_B_SMPTE274 43
1078 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_60_00_3G_LEVEL_B_SMPTE372 44
1079 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_50_00_3G_LEVEL_B_SMPTE274 45
1080 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_3G_LEVEL_B_SMPTE274 46
1081 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_50_00_3G_LEVEL_B_SMPTE372 47
1082 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_30_00_3G_LEVEL_B_SMPTE274 48
1083 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_30_00_3G_LEVEL_B_SMPTE372 49
1084 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_25_00_3G_LEVEL_B_SMPTE274 50
1085 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_25_00_3G_LEVEL_B_SMPTE372 51
1086 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_24_00_3G_LEVEL_B_SMPTE274 52
1087 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_24_00_3G_LEVEL_B_SMPTE372 53
1088 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_48_00_3G_LEVEL_B_SMPTE274 54
1089 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_48_00_3G_LEVEL_B_SMPTE372 55
1090 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_59_94_3G_LEVEL_B_SMPTE274 56
1091 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_59_94_3G_LEVEL_B_SMPTE274 57
1092 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_59_94_3G_LEVEL_B_SMPTE372 58
1093 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_29_97_3G_LEVEL_B_SMPTE274 59
1094 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_29_97_3G_LEVEL_B_SMPTE372 60
1095 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_23_98_3G_LEVEL_B_SMPTE274 61
1096 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_23_98_3G_LEVEL_B_SMPTE372 62
1097 #define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_47_96_3G_LEVEL_B_SMPTE274 63
1098 #define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_3G_LEVEL_B_SMPTE372 64
1099
1100
1101 /*
1102 * The following are deprecated; NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT and the
1103 * corresponding NV_CTRL_GVIO_* formats should be used instead.
1104 */
1105 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 70 /* RW- */
1106
1107 #define NV_CTRL_GVO_VIDEO_FORMAT_NONE 0
1108 #define NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1
1109 #define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2
1110 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296 3
1111 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296 4
1112 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5
1113 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6
1114 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7
1115 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8
1116 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9
1117 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10
1118 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11
1119 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12
1120 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13
1121 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14
1122 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15
1123 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_50_00_SMPTE296 16
1124 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17
1125 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18
1126 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_30_00_SMPTE296 19
1127 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_29_97_SMPTE296 20
1128 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_25_00_SMPTE296 21
1129 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296 22
1130 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296 23
1131 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24
1132 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25
1133 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26
1134 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27
1135 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28
1136 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_30_00_SMPTE372 29
1137 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_29_97_SMPTE372 30
1138 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_60_00_SMPTE372 31
1139 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_59_94_SMPTE372 32
1140 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_25_00_SMPTE372 33
1141 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_50_00_SMPTE372 34
1142 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_24_00_SMPTE372 35
1143 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_23_98_SMPTE372 36
1144 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_48_00_SMPTE372 37
1145 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_47_96_SMPTE372 38
1146
1147 /*
1148 * NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT - indicates the input video format
1149 * detected for GVO or GVI devices; the possible values are the
1150 * NV_CTRL_GVIO_VIDEO_FORMAT constants.
1151 *
1152 * For GVI devices, the jack number should be specified in the lower
1153 * 16 bits of the "display_mask" parameter, while the channel number should be
1154 * specified in the upper 16 bits.
1155 */
1156
1157 #define NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT 71 /* R--I */
1158
1159 /*
1160 * The following is deprecated. Use NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT,
1161 * instead.
1162 */
1163 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT 71 /* R-- */
1164
1165 /*
1166 * NV_CTRL_GVO_DATA_FORMAT - This controls how the data in the source
1167 * (either the X screen or the GLX pbuffer) is interpretted and
1168 * displayed.
1169 *
1170 * Note: some of the below DATA_FORMATS have been renamed. For
1171 * example, R8G8B8_TO_RGB444 has been renamed to X8X8X8_444_PASSTHRU.
1172 * This is to more accurately reflect DATA_FORMATS where the
1173 * per-channel data could be either RGB or YCrCb -- the point is that
1174 * the driver and GVO hardware do not perform any implicit color space
1175 * conversion on the data; it is passed through to the SDI out.
1176 */
1177
1178 #define NV_CTRL_GVO_DATA_FORMAT 72 /* RW- */
1179 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444 0
1180 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4444 1
1181 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4444 2
1182 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422 3
1183 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4224 4
1184 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4224 5
1185 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_RGB444 6 // renamed
1186 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU 6
1187 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_RGBA4444 7 // renamed
1188 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4444_PASSTHRU 7
1189 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_RGBZ4444 8 // renamed
1190 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4444_PASSTHRU 8
1191 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR10CB10_TO_YCRCB444 9 // renamed
1192 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_444_PASSTHRU 9
1193 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8_TO_YCRCB444 10 // renamed
1194 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_444_PASSTHRU 10
1195 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8A10_TO_YCRCBA4444 11 // renamed
1196 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4444_PASSTHRU 11
1197 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8Z10_TO_YCRCBZ4444 12 // renamed
1198 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4444_PASSTHRU 12
1199 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_R8G8B8_TO_DUAL_YCRCB422 13
1200 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_Y8CR8CB8_TO_DUAL_YCRCB422 14 // renamed
1201 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_X8X8X8_TO_DUAL_422_PASSTHRU 14
1202 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB422 15
1203 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB444 16
1204 #define NV_CTRL_GVO_DATA_FORMAT_Y12CR12CB12_TO_YCRCB444 17 // renamed
1205 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_444_PASSTHRU 17
1206 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB444 18
1207 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_422_PASSTHRU 19
1208 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4224_PASSTHRU 20
1209 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4224_PASSTHRU 21
1210 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_422_PASSTHRU 22
1211 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_422_PASSTHRU 23
1212 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4224_PASSTHRU 24
1213 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4224_PASSTHRU 25
1214 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_422_PASSTHRU 26
1215 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB422 27
1216
1217 /*
1218 * NV_CTRL_GVO_DISPLAY_X_SCREEN - enable/disable GVO output of the X
1219 * screen (in Clone mode). At this point, all the GVO attributes that
1220 * have been cached in the X server are flushed to the hardware and GVO is
1221 * enabled. Note that this attribute can fail to be set if a GLX
1222 * client has locked the GVO output (via glXGetVideoDeviceNV). Note
1223 * that due to the inherit race conditions in this locking strategy,
1224 * NV_CTRL_GVO_DISPLAY_X_SCREEN can fail unexpectantly. In the
1225 * failing situation, X will not return an X error. Instead, you
1226 * should query the value of NV_CTRL_GVO_DISPLAY_X_SCREEN after
1227 * setting it to confirm that the setting was applied.
1228 *
1229 * NOTE: This attribute is related to the NV_CTRL_GVO_LOCK_OWNER
1230 * attribute. When NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled,
1231 * the GVO device will be locked by NV_CTRL_GVO_LOCK_OWNER_CLONE.
1232 * see NV_CTRL_GVO_LOCK_OWNER for detais.
1233 */
1234
1235 #define NV_CTRL_GVO_DISPLAY_X_SCREEN 73 /* RW- */
1236 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE 1
1237 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE 0
1238
1239
1240 /*
1241 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED - indicates whether
1242 * Composite Sync input is detected.
1243 */
1244
1245 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED 74 /* R-- */
1246 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE 0
1247 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_TRUE 1
1248
1249
1250 /*
1251 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE - get/set the
1252 * Composite Sync input detect mode.
1253 */
1254
1255 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE 75 /* RW- */
1256 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO 0
1257 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL 1
1258 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL 2
1259
1260
1261 /*
1262 * NV_CTRL_GVO_SYNC_INPUT_DETECTED - indicates whether SDI Sync input
1263 * is detected, and what type.
1264 */
1265
1266 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED 76 /* R-- */
1267 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE 0
1268 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD 1
1269 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD 2
1270
1271
1272 /*
1273 * NV_CTRL_GVO_VIDEO_OUTPUTS - indicates which GVO video output
1274 * connectors are currently outputing data.
1275 */
1276
1277 #define NV_CTRL_GVO_VIDEO_OUTPUTS 77 /* R-- */
1278 #define NV_CTRL_GVO_VIDEO_OUTPUTS_NONE 0
1279 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO1 1
1280 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO2 2
1281 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO_BOTH 3
1282
1283
1284 /*
1285 * NV_CTRL_GVO_FPGA_VERSION - indicates the version of the Firmware on
1286 * the GVO device. Deprecated; use
1287 * NV_CTRL_STRING_GVIO_FIRMWARE_VERSION instead.
1288 */
1289
1290 #define NV_CTRL_GVO_FIRMWARE_VERSION 78 /* R-- */
1291
1292
1293 /*
1294 * NV_CTRL_GVO_SYNC_DELAY_PIXELS - controls the delay between the
1295 * input sync and the output sync in numbers of pixels from hsync;
1296 * this is a 12 bit value.
1297 *
1298 * If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set,
1299 * then setting this value will set an advance instead of a delay.
1300 */
1301
1302 #define NV_CTRL_GVO_SYNC_DELAY_PIXELS 79 /* RW- */
1303
1304
1305 /*
1306 * NV_CTRL_GVO_SYNC_DELAY_LINES - controls the delay between the input
1307 * sync and the output sync in numbers of lines from vsync; this is a
1308 * 12 bit value.
1309 *
1310 * If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set,
1311 * then setting this value will set an advance instead of a delay.
1312 */
1313
1314 #define NV_CTRL_GVO_SYNC_DELAY_LINES 80 /* RW- */
1315
1316
1317 /*
1318 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE - must be set for a period
1319 * of about 2 seconds for the new InputVideoFormat to be properly
1320 * locked to. In nvidia-settings, we do a reacquire whenever genlock
1321 * or frame lock mode is entered into, when the user clicks the
1322 * "detect" button. This value can be written, but always reads back
1323 * _FALSE.
1324 */
1325
1326 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE 81 /* -W- */
1327 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE 0
1328 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE 1
1329
1330
1331 /*
1332 * NV_CTRL_GVO_GLX_LOCKED - indicates that GVO configurability is locked by
1333 * GLX; this occurs when the GLX_NV_video_out function calls
1334 * glXGetVideoDeviceNV(). All GVO output resources are locked until
1335 * either glXReleaseVideoDeviceNV() is called or the X Display used
1336 * when calling glXGetVideoDeviceNV() is closed.
1337 *
1338 * When GVO is locked, setting of the following GVO NV-CONTROL attributes will
1339 * not happen immediately and will instead be cached. The GVO resource will
1340 * need to be disabled/released and re-enabled/claimed for the values to be
1341 * flushed. These attributes are:
1342 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
1343 * NV_CTRL_GVO_DATA_FORMAT
1344 * NV_CTRL_GVO_FLIP_QUEUE_SIZE
1345 *
1346 * This attribute is deprecated and may be removed in a future release. Its
1347 * functionality has been replaced by NV_CTRL_GVO_LOCK_OWNER.
1348 */
1349
1350 #define NV_CTRL_GVO_GLX_LOCKED 82 /* R-- */
1351 #define NV_CTRL_GVO_GLX_LOCKED_FALSE 0
1352 #define NV_CTRL_GVO_GLX_LOCKED_TRUE 1
1353
1354
1355 /*
1356 * NV_CTRL_GVIO_VIDEO_FORMAT_{WIDTH,HEIGHT,REFRESH_RATE} - query the
1357 * width, height, and refresh rate for the specified
1358 * NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be queried with
1359 * existing interfaces, XNVCTRLQueryAttribute() should be used, and
1360 * the video format specified in the display_mask field; eg:
1361 *
1362 * XNVCTRLQueryAttribute (dpy,
1363 * screen,
1364 * NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC,
1365 * NV_CTRL_GVIO_VIDEO_FORMAT_WIDTH,
1366 * &value);
1367 *
1368 * Note that Refresh Rate is in milliHertz values
1369 */
1370
1371 #define NV_CTRL_GVIO_VIDEO_FORMAT_WIDTH 83 /* R--I */
1372 #define NV_CTRL_GVIO_VIDEO_FORMAT_HEIGHT 84 /* R--I */
1373 #define NV_CTRL_GVIO_VIDEO_FORMAT_REFRESH_RATE 85 /* R--I */
1374
1375 /* The following are deprecated; use the NV_CTRL_GVIO_* versions, instead */
1376 #define NV_CTRL_GVO_VIDEO_FORMAT_WIDTH 83 /* R-- */
1377 #define NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT 84 /* R-- */
1378 #define NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE 85 /* R-- */
1379
1380
1381 /*
1382 * NV_CTRL_GVO_X_SCREEN_PAN_[XY] - when GVO output of the X screen is
1383 * enabled, the pan x/y attributes control which portion of the X
1384 * screen is displayed by GVO. These attributes can be updated while
1385 * GVO output is enabled, or before enabling GVO output. The pan
1386 * values will be clamped so that GVO output is not panned beyond the
1387 * end of the X screen.
1388 */
1389
1390 #define NV_CTRL_GVO_X_SCREEN_PAN_X 86 /* RW- */
1391 #define NV_CTRL_GVO_X_SCREEN_PAN_Y 87 /* RW- */
1392
1393
1394 /*
1395 * NV_CTRL_GPU_OVERCLOCKING_STATE - query the current or set a new
1396 * overclocking state; the value of this attribute controls the
1397 * availability of additional overclocking attributes (see below).
1398 *
1399 * Note: this attribute is unavailable unless overclocking support
1400 * has been enabled in the X server (by the user).
1401 */
1402
1403 #define NV_CTRL_GPU_OVERCLOCKING_STATE 88 /* RW-G */
1404 #define NV_CTRL_GPU_OVERCLOCKING_STATE_NONE 0
1405 #define NV_CTRL_GPU_OVERCLOCKING_STATE_MANUAL 1
1406
1407
1408 /*
1409 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS - query or set the GPU and memory
1410 * clocks of the device driving the X screen. New clock frequencies
1411 * are tested before being applied, and may be rejected.
1412 *
1413 * Note: if the target clocks are too aggressive, their testing may
1414 * render the system unresponsive.
1415 *
1416 * Note: while this attribute can always be queried, it can't be set
1417 * unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL. Since
1418 * the target clocks may be rejected, the requester should read this
1419 * attribute after the set to determine success or failure.
1420 *
1421 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS are "packed" integer attributes; the
1422 * GPU clock is stored in the upper 16 bits of the integer, and the
1423 * memory clock is stored in the lower 16 bits of the integer. All
1424 * clock values are in MHz.
1425 */
1426
1427 #define NV_CTRL_GPU_2D_CLOCK_FREQS 89 /* RW-G */
1428 #define NV_CTRL_GPU_3D_CLOCK_FREQS 90 /* RW-G */
1429
1430
1431 /*
1432 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS - query the default memory
1433 * and GPU core clocks of the device driving the X screen.
1434 *
1435 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS are "packed" integer
1436 * attributes; the GPU clock is stored in the upper 16 bits of the
1437 * integer, and the memory clock is stored in the lower 16 bits of the
1438 * integer. All clock values are in MHz.
1439 */
1440
1441 #define NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS 91 /* R--G */
1442 #define NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS 92 /* R--G */
1443
1444
1445 /*
1446 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS - query the current GPU and memory
1447 * clocks of the graphics device driving the X screen.
1448 *
1449 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS is a "packed" integer attribute;
1450 * the GPU clock is stored in the upper 16 bits of the integer, and
1451 * the memory clock is stored in the lower 16 bits of the integer.
1452 * All clock values are in MHz. All clock values are in MHz.
1453 */
1454
1455 #define NV_CTRL_GPU_CURRENT_CLOCK_FREQS 93 /* R--G */
1456
1457
1458 /*
1459 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS - Holds the last calculated
1460 * optimal 3D clock frequencies found by the
1461 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION process. Querying this
1462 * attribute before having probed for the optimal clocks will return
1463 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID
1464 *
1465 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
1466 * optimal clock detection process is unavailable.
1467 */
1468
1469 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS 94 /* R--G */
1470 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 0
1471
1472
1473 /*
1474 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION - set to _START to
1475 * initiate testing for the optimal 3D clock frequencies. Once
1476 * found, the optimal clock frequencies will be returned by the
1477 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS attribute asynchronously
1478 * (using an X event, see XNVCtrlSelectNotify).
1479 *
1480 * To cancel an ongoing test for the optimal clocks, set the
1481 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION attribute to _CANCEL
1482 *
1483 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
1484 * optimal clock detection process is unavailable.
1485 */
1486
1487 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION 95 /* -W-G */
1488 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_START 0
1489 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_CANCEL 1
1490
1491
1492 /*
1493 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE - query this
1494 * variable to know if a test is currently being run to
1495 * determine the optimal 3D clock frequencies. _BUSY means a
1496 * test is currently running, _IDLE means the test is not running.
1497 *
1498 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
1499 * optimal clock detection process is unavailable.
1500 */
1501
1502 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE 96 /* R--G */
1503 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_IDLE 0
1504 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_BUSY 1
1505
1506
1507 /*
1508 * NV_CTRL_FLATPANEL_CHIP_LOCATION - for the specified display device,
1509 * report whether the flat panel is driven by the on-chip controller,
1510 * or a separate controller chip elsewhere on the graphics board.
1511 * This attribute is only available for flat panels.
1512 */
1513
1514 #define NV_CTRL_FLATPANEL_CHIP_LOCATION 215/* R-DG */
1515 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_INTERNAL 0
1516 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_EXTERNAL 1
1517
1518 /*
1519 * NV_CTRL_FLATPANEL_LINK - report the number of links for a DVI connection, or
1520 * the main link's active lane count for DisplayPort.
1521 * This attribute is only available for flat panels.
1522 */
1523
1524 #define NV_CTRL_FLATPANEL_LINK 216/* R-DG */
1525 #define NV_CTRL_FLATPANEL_LINK_SINGLE 0
1526 #define NV_CTRL_FLATPANEL_LINK_DUAL 1
1527 #define NV_CTRL_FLATPANEL_LINK_QUAD 3
1528
1529 /*
1530 * NV_CTRL_FLATPANEL_SIGNAL - for the specified display device, report
1531 * whether the flat panel is driven by an LVDS, TMDS, or DisplayPort signal.
1532 * This attribute is only available for flat panels.
1533 */
1534
1535 #define NV_CTRL_FLATPANEL_SIGNAL 217/* R-DG */
1536 #define NV_CTRL_FLATPANEL_SIGNAL_LVDS 0
1537 #define NV_CTRL_FLATPANEL_SIGNAL_TMDS 1
1538 #define NV_CTRL_FLATPANEL_SIGNAL_DISPLAYPORT 2
1539
1540
1541 /*
1542 * NV_CTRL_USE_HOUSE_SYNC - when TRUE, the server (master) frame lock
1543 * device will propagate the incoming house sync signal as the outgoing
1544 * frame lock sync signal. If the frame lock device cannot detect a
1545 * frame lock sync signal, it will default to using the internal timings
1546 * from the GPU connected to the primary connector.
1547 *
1548 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1549 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
1550 * target.
1551 */
1552
1553 #define NV_CTRL_USE_HOUSE_SYNC 218/* RW-F */
1554 #define NV_CTRL_USE_HOUSE_SYNC_FALSE 0
1555 #define NV_CTRL_USE_HOUSE_SYNC_TRUE 1
1556
1557 /*
1558 * NV_CTRL_EDID_AVAILABLE - report if an EDID is available for the
1559 * specified display device.
1560 *
1561 * This attribute may also be queried through XNVCTRLQueryTargetAttribute()
1562 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN
1563 * target.
1564 */
1565
1566 #define NV_CTRL_EDID_AVAILABLE 219 /* R-DG */
1567 #define NV_CTRL_EDID_AVAILABLE_FALSE 0
1568 #define NV_CTRL_EDID_AVAILABLE_TRUE 1
1569
1570 /*
1571 * NV_CTRL_FORCE_STEREO - when TRUE, OpenGL will force stereo flipping
1572 * even when no stereo drawables are visible (if the device is configured
1573 * to support it, see the "Stereo" X config option).
1574 * When false, fall back to the default behavior of only flipping when a
1575 * stereo drawable is visible.
1576 */
1577
1578 #define NV_CTRL_FORCE_STEREO 220 /* RW- */
1579 #define NV_CTRL_FORCE_STEREO_FALSE 0
1580 #define NV_CTRL_FORCE_STEREO_TRUE 1
1581
1582
1583 /*
1584 * NV_CTRL_IMAGE_SETTINGS - the image quality setting for OpenGL clients.
1585 *
1586 * This setting is only applied to OpenGL clients that are started
1587 * after this setting is applied.
1588 */
1589
1590 #define NV_CTRL_IMAGE_SETTINGS 221 /* RW-X */
1591 #define NV_CTRL_IMAGE_SETTINGS_HIGH_QUALITY 0
1592 #define NV_CTRL_IMAGE_SETTINGS_QUALITY 1
1593 #define NV_CTRL_IMAGE_SETTINGS_PERFORMANCE 2
1594 #define NV_CTRL_IMAGE_SETTINGS_HIGH_PERFORMANCE 3
1595
1596
1597 /*
1598 * NV_CTRL_XINERAMA - return whether xinerama is enabled
1599 */
1600
1601 #define NV_CTRL_XINERAMA 222 /* R--G */
1602 #define NV_CTRL_XINERAMA_OFF 0
1603 #define NV_CTRL_XINERAMA_ON 1
1604
1605 /*
1606 * NV_CTRL_XINERAMA_STEREO - when TRUE, OpenGL will allow stereo flipping
1607 * on multiple X screens configured with Xinerama.
1608 * When FALSE, flipping is allowed only on one X screen at a time.
1609 */
1610
1611 #define NV_CTRL_XINERAMA_STEREO 223 /* RW- */
1612 #define NV_CTRL_XINERAMA_STEREO_FALSE 0
1613 #define NV_CTRL_XINERAMA_STEREO_TRUE 1
1614
1615 /*
1616 * NV_CTRL_BUS_RATE - if the bus type of the specified device is AGP, then
1617 * NV_CTRL_BUS_RATE returns the configured AGP transfer rate. If the bus type
1618 * is PCI Express, then this attribute returns the width of the physical link.
1619 * When this attribute is queried on an X screen target, the bus rate of the
1620 * GPU driving the X screen is returned.
1621 */
1622
1623 #define NV_CTRL_BUS_RATE 224 /* R--GI */
1624
1625 /*
1626 * NV_CTRL_SHOW_SLI_HUD - when TRUE, OpenGL will draw information about the
1627 * current SLI mode.
1628 * Renamed this attribute to NV_CTRL_SHOW_SLI_VISUAL_INDICATOR
1629 */
1630
1631 #define NV_CTRL_SHOW_SLI_HUD NV_CTRL_SHOW_SLI_VISUAL_INDICATOR
1632 #define NV_CTRL_SHOW_SLI_HUD_FALSE NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_FALSE
1633 #define NV_CTRL_SHOW_SLI_HUD_TRUE NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_TRUE
1634
1635 /*
1636 * NV_CTRL_SHOW_SLI_VISUAL_INDICATOR - when TRUE, OpenGL will draw information
1637 * about the current SLI mode.
1638 */
1639
1640 #define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR 225 /* RW-X */
1641 #define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_FALSE 0
1642 #define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_TRUE 1
1643
1644 /*
1645 * NV_CTRL_XV_SYNC_TO_DISPLAY - this control is valid when TwinView and
1646 * XVideo Sync To VBlank are enabled.
1647 * It controls which display device will be synched to.
1648 */
1649
1650 #define NV_CTRL_XV_SYNC_TO_DISPLAY 226 /* RW- */
1651
1652 /*
1653 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 - this attribute is only
1654 * intended to be used to query the ValidValues for
1655 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for VIDEO_FORMAT values between
1656 * 31 and 63. See NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for details.
1657 */
1658
1659 #define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 227 /* ---GI */
1660
1661 /*
1662 * The following is deprecated; use NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2,
1663 * instead
1664 */
1665 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 227 /* --- */
1666
1667
1668 /*
1669 * NV_CTRL_GVO_OVERRIDE_HW_CSC - Override the SDI hardware's Color Space
1670 * Conversion with the values controlled through
1671 * XNVCTRLSetGvoColorConversion() and XNVCTRLGetGvoColorConversion(). If
1672 * this attribute is FALSE, then the values specified through
1673 * XNVCTRLSetGvoColorConversion() are ignored.
1674 */
1675
1676 #define NV_CTRL_GVO_OVERRIDE_HW_CSC 228 /* RW- */
1677 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_FALSE 0
1678 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_TRUE 1
1679
1680
1681 /*
1682 * NV_CTRL_GVO_CAPABILITIES - this read-only attribute describes GVO
1683 * capabilities that differ between NVIDIA SDI products. This value
1684 * is a bitmask where each bit indicates whether that capability is
1685 * available.
1686 *
1687 * APPLY_CSC_IMMEDIATELY - whether the CSC matrix, offset, and scale
1688 * specified through XNVCTRLSetGvoColorConversion() will take affect
1689 * immediately, or only after SDI output is disabled and enabled
1690 * again.
1691 *
1692 * APPLY_CSC_TO_X_SCREEN - whether the CSC matrix, offset, and scale
1693 * specified through XNVCTRLSetGvoColorConversion() will also apply
1694 * to GVO output of an X screen, or only to OpenGL GVO output, as
1695 * enabled through the GLX_NV_video_out extension.
1696 *
1697 * COMPOSITE_TERMINATION - whether the 75 ohm termination of the
1698 * SDI composite input signal can be programmed through the
1699 * NV_CTRL_GVO_COMPOSITE_TERMINATION attribute.
1700 *
1701 * SHARED_SYNC_BNC - whether the SDI device has a single BNC
1702 * connector used for both (SDI & Composite) incoming signals.
1703 *
1704 * MULTIRATE_SYNC - whether the SDI device supports synchronization
1705 * of input and output video modes that match in being odd or even
1706 * modes (ie, AA.00 Hz modes can be synched to other BB.00 Hz modes and
1707 * AA.XX Hz can match to BB.YY Hz where .XX and .YY are not .00)
1708 */
1709
1710 #define NV_CTRL_GVO_CAPABILITIES 229 /* R-- */
1711 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x00000001
1712 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x00000002
1713 #define NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION 0x00000004
1714 #define NV_CTRL_GVO_CAPABILITIES_SHARED_SYNC_BNC 0x00000008
1715 #define NV_CTRL_GVO_CAPABILITIES_MULTIRATE_SYNC 0x00000010
1716 #define NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW 0x00000020
1717
1718
1719 /*
1720 * NV_CTRL_GVO_COMPOSITE_TERMINATION - enable or disable 75 ohm
1721 * termination of the SDI composite input signal.
1722 */
1723
1724 #define NV_CTRL_GVO_COMPOSITE_TERMINATION 230 /* RW- */
1725 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE 1
1726 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE 0
1727
1728
1729 /*
1730 * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES - display device mask indicating
1731 * which display devices are "associated" with the specified X screen
1732 * (ie: are available to the X screen for displaying the X screen).
1733 */
1734
1735 #define NV_CTRL_ASSOCIATED_DISPLAY_DEVICES 231 /* RW- */
1736
1737 /*
1738 * NV_CTRL_FRAMELOCK_SLAVES - get/set whether the display device(s)
1739 * given should listen or ignore the master's sync signal.
1740 *
1741 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
1742 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
1743 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
1744 */
1745
1746 #define NV_CTRL_FRAMELOCK_SLAVES 232 /* RW-G */
1747
1748 /*
1749 * NV_CTRL_FRAMELOCK_MASTERABLE - Can any of the given display devices
1750 * be set as master of the frame lock group. Returns a bitmask of the
1751 * corresponding display devices that can be set as master.
1752 *
1753 * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
1754 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
1755 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
1756 */
1757
1758 #define NV_CTRL_FRAMELOCK_MASTERABLE 233 /* R-DG */
1759
1760 /*
1761 * NV_CTRL_PROBE_DISPLAYS - re-probes the hardware to detect what
1762 * display devices are connected to the GPU or GPU driving the
1763 * specified X screen. Returns a display mask.
1764 *
1765 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1766 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
1767 */
1768
1769 #define NV_CTRL_PROBE_DISPLAYS 234 /* R--G */
1770
1771
1772 /*
1773 * NV_CTRL_REFRESH_RATE - Returns the refresh rate of the specified
1774 * display device in 100 * Hz (ie. to get the refresh rate in Hz, divide
1775 * the returned value by 100.)
1776 *
1777 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
1778 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
1779 */
1780
1781 #define NV_CTRL_REFRESH_RATE 235 /* R-DG */
1782
1783
1784 /*
1785 * NV_CTRL_GVO_FLIP_QUEUE_SIZE - The Graphics to Video Out interface
1786 * exposed through NV-CONTROL and the GLX_NV_video_out extension uses
1787 * an internal flip queue when pbuffers are sent to the video device
1788 * (via glXSendPbufferToVideoNV()). The NV_CTRL_GVO_FLIP_QUEUE_SIZE
1789 * can be used to query and assign the flip queue size. This
1790 * attribute is applied to GLX when glXGetVideoDeviceNV() is called by
1791 * the application.
1792 */
1793
1794 #define NV_CTRL_GVO_FLIP_QUEUE_SIZE 236 /* RW- */
1795
1796
1797 /*
1798 * NV_CTRL_CURRENT_SCANLINE - query the current scanline for the
1799 * specified display device.
1800 */
1801
1802 #define NV_CTRL_CURRENT_SCANLINE 237 /* R-DG */
1803
1804
1805 /*
1806 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT - Controls where X pixmaps are initially
1807 * created.
1808 *
1809 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM causes pixmaps to stay in
1810 * system memory. These pixmaps can't be accelerated by the NVIDIA driver; this
1811 * will cause blank windows if used with an OpenGL compositing manager.
1812 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM creates pixmaps in system memory
1813 * initially, but allows them to migrate to video memory.
1814 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM creates pixmaps in video memory
1815 * when enough resources are available.
1816 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED is currently reserved for future
1817 * use. Behavior is undefined.
1818 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM creates pixmaps in GPU accessible
1819 * system memory when enough resources are available.
1820 */
1821
1822 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT 238 /* RW- */
1823 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM 0
1824 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM 1
1825 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM 2
1826 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED 3
1827 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM 4
1828
1829
1830 /*
1831 * NV_CTRL_PCI_BUS - Returns the PCI bus number the specified device is using.
1832 */
1833
1834 #define NV_CTRL_PCI_BUS 239 /* R--GI */
1835
1836
1837 /*
1838 * NV_CTRL_PCI_DEVICE - Returns the PCI device number the specified device is
1839 * using.
1840 */
1841
1842 #define NV_CTRL_PCI_DEVICE 240 /* R--GI */
1843
1844
1845 /*
1846 * NV_CTRL_PCI_FUNCTION - Returns the PCI function number the specified device
1847 * is using.
1848 */
1849
1850 #define NV_CTRL_PCI_FUNCTION 241 /* R--GI */
1851
1852
1853 /*
1854 * NV_CTRL_FRAMELOCK_FPGA_REVISION - Querys the FPGA revision of the
1855 * Frame Lock device.
1856 *
1857 * This attribute must be queried through XNVCTRLQueryTargetAttribute()
1858 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target.
1859 */
1860
1861 #define NV_CTRL_FRAMELOCK_FPGA_REVISION 242 /* R--F */
1862
1863 /*
1864 * NV_CTRL_MAX_SCREEN_{WIDTH,HEIGHT} - the maximum allowable size, in
1865 * pixels, of either the specified X screen (if the target_type of the
1866 * query is an X screen), or any X screen on the specified GPU (if the
1867 * target_type of the query is a GPU).
1868 */
1869
1870 #define NV_CTRL_MAX_SCREEN_WIDTH 243 /* R--G */
1871 #define NV_CTRL_MAX_SCREEN_HEIGHT 244 /* R--G */
1872
1873
1874 /*
1875 * NV_CTRL_MAX_DISPLAYS - the maximum number of display devices that
1876 * can be driven simultaneously on a GPU (e.g., that can be used in a
1877 * MetaMode at once). Note that this does not indicate the maximum
1878 * number of bits that can be set in NV_CTRL_CONNECTED_DISPLAYS,
1879 * because more display devices can be connected than are actively in
1880 * use.
1881 */
1882
1883 #define NV_CTRL_MAX_DISPLAYS 245 /* R--G */
1884
1885
1886 /*
1887 * NV_CTRL_DYNAMIC_TWINVIEW - Returns whether or not the screen
1888 * supports dynamic twinview.
1889 */
1890
1891 #define NV_CTRL_DYNAMIC_TWINVIEW 246 /* R-- */
1892
1893
1894 /*
1895 * NV_CTRL_MULTIGPU_DISPLAY_OWNER - Returns the (NV-CONTROL) GPU ID of
1896 * the GPU that has the display device(s) used for showing the X Screen.
1897 */
1898
1899 #define NV_CTRL_MULTIGPU_DISPLAY_OWNER 247 /* R-- */
1900
1901
1902 /*
1903 * NV_CTRL_GPU_SCALING - Controls what the GPU scales to and how.
1904 * This attribute is a packed integer; the scaling target (native/best fit)
1905 * is packed in the upper 16-bits and the scaling method is packed in the
1906 * lower 16-bits.
1907 *
1908 * 'Best fit' scaling will make the GPU scale the frontend (current) mode to
1909 * the closest larger resolution in the flat panel's EDID and allow the
1910 * flat panel to do its own scaling to the native resolution.
1911 *
1912 * 'Native' scaling will make the GPU scale the frontend (current) mode to
1913 * the flat panel's native resolution, thus disabling any internal scaling
1914 * the flat panel might have.
1915 */
1916
1917 #define NV_CTRL_GPU_SCALING 248 /* RWDG */
1918
1919 #define NV_CTRL_GPU_SCALING_TARGET_INVALID 0
1920 #define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_BEST_FIT 1
1921 #define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_NATIVE 2
1922
1923 #define NV_CTRL_GPU_SCALING_METHOD_INVALID 0
1924 #define NV_CTRL_GPU_SCALING_METHOD_STRETCHED 1
1925 #define NV_CTRL_GPU_SCALING_METHOD_CENTERED 2
1926 #define NV_CTRL_GPU_SCALING_METHOD_ASPECT_SCALED 3
1927
1928
1929 /*
1930 * NV_CTRL_FRONTEND_RESOLUTION - Returns the dimensions of the frontend
1931 * (current) resolution as determined by the NVIDIA X Driver.
1932 *
1933 * This attribute is a packed integer; the width is packed in the upper
1934 * 16-bits and the height is packed in the lower 16-bits.
1935 */
1936
1937 #define NV_CTRL_FRONTEND_RESOLUTION 249 /* R-DG */
1938
1939
1940 /*
1941 * NV_CTRL_BACKEND_RESOLUTION - Returns the dimensions of the
1942 * backend resolution as determined by the NVIDIA X Driver.
1943 *
1944 * The backend resolution is the resolution (supported by the display
1945 * device) the GPU is set to scale to. If this resolution matches the
1946 * frontend resolution, GPU scaling will not be needed/used.
1947 *
1948 * This attribute is a packed integer; the width is packed in the upper
1949 * 16-bits and the height is packed in the lower 16-bits.
1950 */
1951
1952 #define NV_CTRL_BACKEND_RESOLUTION 250 /* R-DG */
1953
1954
1955 /*
1956 * NV_CTRL_FLATPANEL_NATIVE_RESOLUTION - Returns the dimensions of the
1957 * native resolution of the flat panel as determined by the
1958 * NVIDIA X Driver.
1959 *
1960 * The native resolution is the resolution at which a flat panel
1961 * must display any image. All other resolutions must be scaled to this
1962 * resolution through GPU scaling or the DFP's native scaling capabilities
1963 * in order to be displayed.
1964 *
1965 * This attribute is only valid for flat panel (DFP) display devices.
1966 *
1967 * This attribute is a packed integer; the width is packed in the upper
1968 * 16-bits and the height is packed in the lower 16-bits.
1969 */
1970
1971 #define NV_CTRL_FLATPANEL_NATIVE_RESOLUTION 251 /* R-DG */
1972
1973
1974 /*
1975 * NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION - Returns the dimensions of the
1976 * resolution, selected by the X driver, from the DFP's EDID that most
1977 * closely matches the frontend resolution of the current mode. The best
1978 * fit resolution is selected on a per-mode basis.
1979 * NV_CTRL_GPU_SCALING_TARGET is used to select between
1980 * NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION and NV_CTRL_NATIVE_RESOLUTION.
1981 *
1982 * This attribute is only valid for flat panel (DFP) display devices.
1983 *
1984 * This attribute is a packed integer; the width is packed in the upper
1985 * 16-bits and the height is packed in the lower 16-bits.
1986 */
1987
1988 #define NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION 252 /* R-DG */
1989
1990
1991 /*
1992 * NV_CTRL_GPU_SCALING_ACTIVE - Returns the current state of
1993 * GPU scaling. GPU scaling is mode-specific (meaning it may vary
1994 * depending on which mode is currently set). GPU scaling is active if
1995 * the frontend timing (current resolution) is different than the target
1996 * resolution. The target resolution is either the native resolution of
1997 * the flat panel or the best fit resolution supported by the flat panel.
1998 * What (and how) the GPU should scale to is controlled through the
1999 * NV_CTRL_GPU_SCALING attribute.
2000 */
2001
2002 #define NV_CTRL_GPU_SCALING_ACTIVE 253 /* R-DG */
2003
2004
2005 /*
2006 * NV_CTRL_DFP_SCALING_ACTIVE - Returns the current state of
2007 * DFP scaling. DFP scaling is mode-specific (meaning it may vary
2008 * depending on which mode is currently set). DFP scaling is active if
2009 * the GPU is set to scale to the best fit resolution (NV_CTRL_GPU_SCALING
2010 * is set to NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_BEST_FIT) and the best fit
2011 * and native resolutions are different.
2012 */
2013
2014 #define NV_CTRL_DFP_SCALING_ACTIVE 254 /* R-DG */
2015
2016
2017 /*
2018 * NV_CTRL_FSAA_APPLICATION_ENHANCED - Controls how the NV_CTRL_FSAA_MODE
2019 * is applied when NV_CTRL_FSAA_APPLICATION_CONTROLLED is set to
2020 * NV_CTRL_APPLICATION_CONTROLLED_DISABLED. When
2021 * NV_CTRL_FSAA_APPLICATION_ENHANCED is _DISABLED, OpenGL applications will
2022 * be forced to use the FSAA mode specified by NV_CTRL_FSAA_MODE. when set
2023 * to _ENABLED, only those applications that have selected a multisample
2024 * FBConfig will be made to use the NV_CTRL_FSAA_MODE specified.
2025 *
2026 * This attribute is ignored when NV_CTRL_FSAA_APPLICATION_CONTROLLED is
2027 * set to NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED.
2028 */
2029
2030 #define NV_CTRL_FSAA_APPLICATION_ENHANCED 255 /* RW-X */
2031 #define NV_CTRL_FSAA_APPLICATION_ENHANCED_ENABLED 1
2032 #define NV_CTRL_FSAA_APPLICATION_ENHANCED_DISABLED 0
2033
2034
2035 /*
2036 * NV_CTRL_FRAMELOCK_SYNC_RATE_4 - This is the refresh rate that the
2037 * frame lock board is sending to the GPU with 4 digits of precision.
2038 *
2039 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
2040 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK.
2041 */
2042
2043 #define NV_CTRL_FRAMELOCK_SYNC_RATE_4 256 /* R--F */
2044
2045
2046 /*
2047 * NV_CTRL_GVO_LOCK_OWNER - indicates that the GVO device is available
2048 * or in use (by GLX, Clone Mode, TwinView etc).
2049 *
2050 * The GVO device is locked by GLX when the GLX_NV_video_out function
2051 * calls glXGetVideoDeviceNV(). The GVO device is then unlocked when
2052 * glXReleaseVideoDeviceNV() is called, or the X Display used when calling
2053 * glXGetVideoDeviceNV() is closed.
2054 *
2055 * The GVO device is locked/unlocked for Clone mode use when the
2056 * attribute NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled/disabled.
2057 *
2058 * The GVO device is locked/unlocked by TwinView mode, when the GVO device is
2059 * associated/unassociated to/from an X screen through the
2060 * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES attribute directly.
2061 *
2062 * When the GVO device is locked, setting of the following GVO NV-CONTROL
2063 * attributes will not happen immediately and will instead be cached. The
2064 * GVO resource will need to be disabled/released and re-enabled/claimed for
2065 * the values to be flushed. These attributes are:
2066 *
2067 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
2068 * NV_CTRL_GVO_DATA_FORMAT
2069 * NV_CTRL_GVO_FLIP_QUEUE_SIZE
2070 */
2071
2072 #define NV_CTRL_GVO_LOCK_OWNER 257 /* R-- */
2073 #define NV_CTRL_GVO_LOCK_OWNER_NONE 0
2074 #define NV_CTRL_GVO_LOCK_OWNER_GLX 1
2075 #define NV_CTRL_GVO_LOCK_OWNER_CLONE 2
2076 #define NV_CTRL_GVO_LOCK_OWNER_X_SCREEN 3
2077
2078
2079 /*
2080 * NV_CTRL_HWOVERLAY - when a workstation overlay is in use, reports
2081 * whether the hardware overlay is used, or if the overlay is emulated.
2082 */
2083
2084 #define NV_CTRL_HWOVERLAY 258 /* R-- */
2085 #define NV_CTRL_HWOVERLAY_FALSE 0
2086 #define NV_CTRL_HWOVERLAY_TRUE 1
2087
2088 /*
2089 * NV_CTRL_NUM_GPU_ERRORS_RECOVERED - Returns the number of GPU errors
2090 * occured. This attribute may be queried through XNVCTRLQueryTargetAttribute()
2091 * using a NV_CTRL_TARGET_TYPE_X_SCREEN target.
2092 */
2093
2094 #define NV_CTRL_NUM_GPU_ERRORS_RECOVERED 259 /* R--- */
2095
2096
2097 /*
2098 * NV_CTRL_REFRESH_RATE_3 - Returns the refresh rate of the specified
2099 * display device in 1000 * Hz (ie. to get the refresh rate in Hz, divide
2100 * the returned value by 1000.)
2101 *
2102 * This attribute may be queried through XNVCTRLQueryTargetAttribute()
2103 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
2104 */
2105
2106 #define NV_CTRL_REFRESH_RATE_3 260 /* R-DG */
2107
2108
2109 /*
2110 * NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS - if the OnDemandVBlankInterrupts
2111 * X driver option is set to true, this attribute can be used to
2112 * determine if on-demand VBlank interrupt control is enabled on the
2113 * specified GPU, as well as to enable or disable this feature.
2114 */
2115
2116 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS 261 /* RW-G */
2117 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_OFF 0
2118 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_ON 1
2119
2120
2121 /*
2122 * NV_CTRL_GPU_POWER_SOURCE reports the type of power source
2123 * of the GPU driving the X screen.
2124 */
2125
2126 #define NV_CTRL_GPU_POWER_SOURCE 262 /* R--G */
2127 #define NV_CTRL_GPU_POWER_SOURCE_AC 0
2128 #define NV_CTRL_GPU_POWER_SOURCE_BATTERY 1
2129
2130
2131 /*
2132 * NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE reports the current
2133 * Performance mode of the GPU driving the X screen. Running
2134 * a 3D app for example, will change this performance mode,
2135 * if Adaptive Clocking is enabled.
2136 */
2137
2138 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE 263 /* R--G */
2139 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_DESKTOP 0
2140 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_MAXPERF 1
2141
2142
2143 /* NV_CTRL_GLYPH_CACHE - Enables RENDER Glyph Caching to VRAM */
2144
2145 #define NV_CTRL_GLYPH_CACHE 264 /* RW- */
2146 #define NV_CTRL_GLYPH_CACHE_DISABLED 0
2147 #define NV_CTRL_GLYPH_CACHE_ENABLED 1
2148
2149
2150 /*
2151 * NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL reports the current
2152 * Performance level of the GPU driving the X screen. Each
2153 * Performance level has associated NVClock and Mem Clock values.
2154 */
2155
2156 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL 265 /* R--G */
2157
2158
2159 /*
2160 * NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE reports if Adaptive Clocking
2161 * is Enabled on the GPU driving the X screen.
2162 */
2163
2164 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE 266 /* R--G */
2165 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_DISABLED 0
2166 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_ENABLED 1
2167
2168
2169 /*
2170 * NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED - Returns whether or not the GVO output
2171 * video is locked to the GPU.
2172 */
2173
2174 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED 267 /* R--- */
2175 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_FALSE 0
2176 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_TRUE 1
2177
2178
2179 /*
2180 * NV_CTRL_GVO_SYNC_LOCK_STATUS - Returns whether or not the GVO device
2181 * is locked to the input ref signal. If the sync mode is set to
2182 * NV_CTRL_GVO_SYNC_MODE_GENLOCK, then this returns the genlock
2183 * sync status, and if the sync mode is set to NV_CTRL_GVO_SYNC_MODE_FRAMELOCK,
2184 * then this reports the frame lock status.
2185 */
2186
2187 #define NV_CTRL_GVO_SYNC_LOCK_STATUS 268 /* R--- */
2188 #define NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED 0
2189 #define NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED 1
2190
2191
2192 /*
2193 * NV_CTRL_GVO_ANC_TIME_CODE_GENERATION - Allows SDI device to generate
2194 * time codes in the ANC region of the SDI video output stream.
2195 */
2196
2197 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION 269 /* RW-- */
2198 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_DISABLE 0
2199 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_ENABLE 1
2200
2201
2202 /*
2203 * NV_CTRL_GVO_COMPOSITE - Enables/Disables SDI compositing. This attribute
2204 * is only available when an SDI input source is detected and is in genlock
2205 * mode.
2206 */
2207
2208 #define NV_CTRL_GVO_COMPOSITE 270 /* RW-- */
2209 #define NV_CTRL_GVO_COMPOSITE_DISABLE 0
2210 #define NV_CTRL_GVO_COMPOSITE_ENABLE 1
2211
2212
2213 /*
2214 * NV_CTRL_GVO_COMPOSITE_ALPHA_KEY - When compositing is enabled, this
2215 * enables/disables alpha blending.
2216 */
2217
2218 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY 271 /* RW-- */
2219 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_DISABLE 0
2220 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_ENABLE 1
2221
2222
2223 /*
2224 * NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE - Set the values of a luma
2225 * channel range. This is a packed int that has the following format
2226 * (in order of high-bits to low bits):
2227 *
2228 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
2229 *
2230 * To query the current values, pass the range # throught the display_mask
2231 * variable.
2232 */
2233
2234 #define NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE 272 /* RW-- */
2235
2236 #define NV_CTRL_GVO_COMPOSITE_MAKE_RANGE(range, enable, min, max) \
2237 ((((min) & 0x3FF) << 0) | \
2238 (((max) & 0x3FF) << 10) | \
2239 (((enable) & 0x1) << 20) | \
2240 (((range) & 0x7FF) << 21))
2241
2242 #define NV_CTRL_GVO_COMPOSITE_GET_RANGE(val, range, enable, min, max) \
2243 (min) = ((val) >> 0) & 0x3FF; \
2244 (max) = ((val) >> 10) & 0x3FF; \
2245 (enable) = ((val) >> 20) & 0x1; \
2246 (range) = ((val) >> 21) & 0x7FF;
2247
2248
2249 /*
2250 * NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE - Set the values of a CR
2251 * channel range. This is a packed int that has the following format
2252 * (in order of high-bits to low bits):
2253 *
2254 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
2255 *
2256 * To query the current values, pass the range # throught he display_mask
2257 * variable.
2258 */
2259
2260 #define NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE 273 /* RW-- */
2261
2262
2263 /*
2264 * NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE - Set the values of a CB
2265 * channel range. This is a packed int that has the following format
2266 * (in order of high-bits to low bits):
2267 *
2268 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)
2269 *
2270 * To query the current values, pass the range # throught he display_mask
2271 * variable.
2272 */
2273
2274 #define NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE 274 /* RW-- */
2275
2276
2277 /*
2278 * NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES - Returns the number of ranges
2279 * available for each channel (Y/Luma, Cr, and Cb.)
2280 */
2281
2282 #define NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES 275 /* R--- */
2283
2284
2285 /*
2286 * NV_CTRL_SWITCH_TO_DISPLAYS - Can be used to select which displays
2287 * to switch to (as a hotkey event).
2288 */
2289
2290 #define NV_CTRL_SWITCH_TO_DISPLAYS 276 /* -W- */
2291
2292
2293 /*
2294 * NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT - Event that notifies
2295 * when a notebook lid change occurs (i.e. when the lid is opened or
2296 * closed.) This attribute can be queried to retrieve the current
2297 * notebook lid status (opened/closed.)
2298 */
2299
2300 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT 277 /* RW- */
2301 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_CLOSE 0
2302 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_OPEN 1
2303
2304 /*
2305 * NV_CTRL_NOTEBOOK_INTERNAL_LCD - Returns the display device mask of
2306 * the intenal LCD of a notebook.
2307 */
2308
2309 #define NV_CTRL_NOTEBOOK_INTERNAL_LCD 278 /* R-- */
2310
2311 /*
2312 * NV_CTRL_DEPTH_30_ALLOWED - returns whether the NVIDIA X driver supports
2313 * depth 30 on the specified X screen or GPU.
2314 */
2315
2316 #define NV_CTRL_DEPTH_30_ALLOWED 279 /* R--G */
2317
2318
2319 /*
2320 * NV_CTRL_MODE_SET_EVENT This attribute is sent as an event
2321 * when hotkey, ctrl-alt-+/- or randr event occurs. Note that
2322 * This attribute cannot be set or queried and is meant to
2323 * be received by clients that wish to be notified of when
2324 * mode set events occur.
2325 */
2326
2327 #define NV_CTRL_MODE_SET_EVENT 280 /* --- */
2328
2329
2330 /*
2331 * NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE - the gamma value used by
2332 * OpenGL when NV_CTRL_OPENGL_AA_LINE_GAMMA is enabled
2333 */
2334
2335 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE 281 /* RW-X */
2336
2337
2338 /*
2339 * NV_CTRL_VCSC_HIGH_PERF_MODE - Is used to both query High Performance Mode
2340 * status on the Visual Computing System, and also to enable or disable High
2341 * Performance Mode.
2342 */
2343
2344 #define NV_CTRL_VCSC_HIGH_PERF_MODE 282 /* RW-V */
2345 #define NV_CTRL_VCSC_HIGH_PERF_MODE_DISABLE 0
2346 #define NV_CTRL_VCSC_HIGH_PERF_MODE_ENABLE 1
2347
2348 /*
2349 * NV_CTRL_DISPLAYPORT_LINK_RATE - returns the negotiated lane bandwidth of the
2350 * DisplayPort main link.
2351 * This attribute is only available for DisplayPort flat panels.
2352 */
2353
2354 #define NV_CTRL_DISPLAYPORT_LINK_RATE 291 /* R-DG */
2355 #define NV_CTRL_DISPLAYPORT_LINK_RATE_DISABLED 0x0
2356 #define NV_CTRL_DISPLAYPORT_LINK_RATE_1_62GBPS 0x6
2357 #define NV_CTRL_DISPLAYPORT_LINK_RATE_2_70GBPS 0xA
2358
2359 /*
2360 * NV_CTRL_STEREO_EYES_EXCHANGE - Controls whether or not the left and right
2361 * eyes of a stereo image are flipped.
2362 */
2363
2364 #define NV_CTRL_STEREO_EYES_EXCHANGE 292 /* RW-X */
2365 #define NV_CTRL_STEREO_EYES_EXCHANGE_OFF 0
2366 #define NV_CTRL_STEREO_EYES_EXCHANGE_ON 1
2367
2368 /*
2369 * NV_CTRL_NO_SCANOUT - returns whether the special "NoScanout" mode is
2370 * enabled on the specified X screen or GPU; for details on this mode,
2371 * see the description of the "none" value for the "UseDisplayDevice"
2372 * X configuration option in the NVIDIA driver README.
2373 */
2374
2375 #define NV_CTRL_NO_SCANOUT 293 /* R--G */
2376 #define NV_CTRL_NO_SCANOUT_DISABLED 0
2377 #define NV_CTRL_NO_SCANOUT_ENABLED 1
2378
2379 /*
2380 * NV_CTRL_GVO_CSC_CHANGED_EVENT This attribute is sent as an event
2381 * when the color space conversion matrix has been altered by another
2382 * client.
2383 */
2384
2385 #define NV_CTRL_GVO_CSC_CHANGED_EVENT 294 /* --- */
2386
2387 /*
2388 * NV_CTRL_FRAMELOCK_SLAVEABLE - Returns a bitmask of the display devices
2389 * that are (currently) allowed to be selected as slave devices for the
2390 * given GPU
2391 */
2392
2393 #define NV_CTRL_FRAMELOCK_SLAVEABLE 295 /* R-DG */
2394
2395 /*
2396 * NV_CTRL_GVO_SYNC_TO_DISPLAY This attribute controls whether or not
2397 * the non-SDI display device will be sync'ed to the SDI display device
2398 * (when configured in TwinView, Clone Mode or when using the SDI device
2399 * with OpenGL).
2400 */
2401
2402 #define NV_CTRL_GVO_SYNC_TO_DISPLAY 296 /* --- */
2403 #define NV_CTRL_GVO_SYNC_TO_DISPLAY_DISABLE 0
2404 #define NV_CTRL_GVO_SYNC_TO_DISPLAY_ENABLE 1
2405
2406 /*
2407 * NV_CTRL_X_SERVER_UNIQUE_ID - returns a pseudo-unique identifier for this
2408 * X server. Intended for use in cases where an NV-CONTROL client communicates
2409 * with multiple X servers, and wants some level of confidence that two
2410 * X Display connections correspond to the same or different X servers.
2411 */
2412
2413 #define NV_CTRL_X_SERVER_UNIQUE_ID 297 /* R--- */
2414
2415 /*
2416 * NV_CTRL_PIXMAP_CACHE - This attribute controls whether the driver attempts to
2417 * store video memory pixmaps in a cache. The cache speeds up allocation and
2418 * deallocation of pixmaps, but could use more memory than when the cache is
2419 * disabled.
2420 */
2421
2422 #define NV_CTRL_PIXMAP_CACHE 298 /* RW-X */
2423 #define NV_CTRL_PIXMAP_CACHE_DISABLE 0
2424 #define NV_CTRL_PIXMAP_CACHE_ENABLE 1
2425
2426 /*
2427 * NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB - When the pixmap cache is enabled and
2428 * there is not enough free space in the cache to fit a new pixmap, the driver
2429 * will round up to the next multiple of this number of kilobytes when
2430 * allocating more memory for the cache.
2431 */
2432
2433 #define NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB 299 /* RW-X */
2434
2435 /*
2436 * NV_CTRL_IS_GVO_DISPLAY - returns whether or not a given display is an
2437 * SDI device.
2438 */
2439
2440 #define NV_CTRL_IS_GVO_DISPLAY 300 /* R-D */
2441 #define NV_CTRL_IS_GVO_DISPLAY_FALSE 0
2442 #define NV_CTRL_IS_GVO_DISPLAY_TRUE 1
2443
2444 /*
2445 * NV_CTRL_PCI_ID - Returns the PCI vendor and device ID of the specified
2446 * device.
2447 *
2448 * NV_CTRL_PCI_ID is a "packed" integer attribute; the PCI vendor ID is stored
2449 * in the upper 16 bits of the integer, and the PCI device ID is stored in the
2450 * lower 16 bits of the integer.
2451 */
2452
2453 #define NV_CTRL_PCI_ID 301 /* R--GI */
2454
2455 /*
2456 * NV_CTRL_GVO_FULL_RANGE_COLOR - Allow full range color data [4-1019]
2457 * without clamping to [64-940].
2458 */
2459
2460 #define NV_CTRL_GVO_FULL_RANGE_COLOR 302 /* RW- */
2461 #define NV_CTRL_GVO_FULL_RANGE_COLOR_DISABLED 0
2462 #define NV_CTRL_GVO_FULL_RANGE_COLOR_ENABLED 1
2463
2464 /*
2465 * NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE - Returns whether or not
2466 * SLI Mosaic Mode supported.
2467 */
2468
2469 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE 303 /* R-- */
2470 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_FALSE 0
2471 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_TRUE 1
2472
2473 /*
2474 * NV_CTRL_GVO_ENABLE_RGB_DATA - Allows clients to specify when
2475 * the GVO board should process colors as RGB when the output data
2476 * format is one of the NV_CTRL_GVO_DATA_FORMAT_???_PASSTRHU modes.
2477 */
2478
2479 #define NV_CTRL_GVO_ENABLE_RGB_DATA 304 /* RW- */
2480 #define NV_CTRL_GVO_ENABLE_RGB_DATA_DISABLE 0
2481 #define NV_CTRL_GVO_ENABLE_RGB_DATA_ENABLE 1
2482
2483 /*
2484 * NV_CTRL_IMAGE_SHARPENING_DEFAULT - Returns default value of
2485 * Image Sharpening.
2486 */
2487
2488 #define NV_CTRL_IMAGE_SHARPENING_DEFAULT 305 /* R-- */
2489
2490 /*
2491 * NV_CTRL_PCI_DOMAIN - Returns the PCI domain number the specified device is
2492 * using.
2493 */
2494
2495 #define NV_CTRL_PCI_DOMAIN 306 /* R--GI */
2496
2497 /*
2498 * NV_CTRL_GVI_NUM_JACKS - Returns the number of input BNC jacks available
2499 * on a GVI device.
2500 */
2501
2502 #define NV_CTRL_GVI_NUM_JACKS 307 /* R--I */
2503
2504 /*
2505 * NV_CTRL_GVI_MAX_LINKS_PER_STREAM - Returns the maximum supported number of
2506 * links that can be tied to one stream.
2507 */
2508
2509 #define NV_CTRL_GVI_MAX_LINKS_PER_STREAM 308 /* R--I */
2510
2511 /*
2512 * NV_CTRL_GVI_DETECTED_CHANNEL_BITS_PER_COMPONENT - Returns the detected
2513 * number of bits per component (BPC) of data on the given input jack+
2514 * channel.
2515 *
2516 * The jack number should be specified in the lower 16 bits of the
2517 * "display_mask" parameter, while the channel number should be specified in
2518 * the upper 16 bits.
2519 */
2520
2521 #define NV_CTRL_GVI_DETECTED_CHANNEL_BITS_PER_COMPONENT 309 /* R--I */
2522 #define NV_CTRL_GVI_BITS_PER_COMPONENT_UNKNOWN 0
2523 #define NV_CTRL_GVI_BITS_PER_COMPONENT_8 1
2524 #define NV_CTRL_GVI_BITS_PER_COMPONENT_10 2
2525 #define NV_CTRL_GVI_BITS_PER_COMPONENT_12 3
2526
2527 /*
2528 * NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT - Specify the number of
2529 * bits per component (BPC) of data for the captured stream.
2530 * The stream number should be specified in the "display_mask" parameter.
2531 *
2532 * Note: Setting this attribute may also result in the following
2533 * NV-CONTROL attributes being reset on the GVI device (to ensure
2534 * the configuration remains valid):
2535 * NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING
2536 */
2537
2538 #define NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT 310 /* RW-I */
2539
2540 /*
2541 * NV_CTRL_GVI_DETECTED_CHANNEL_COMPONENT_SAMPLING - Returns the detected
2542 * sampling format for the input jack+channel.
2543 *
2544 * The jack number should be specified in the lower 16 bits of the
2545 * "display_mask" parameter, while the channel number should be specified in
2546 * the upper 16 bits.
2547 */
2548
2549 #define NV_CTRL_GVI_DETECTED_CHANNEL_COMPONENT_SAMPLING 311 /* R--I */
2550 #define NV_CTRL_GVI_COMPONENT_SAMPLING_UNKNOWN 0
2551 #define NV_CTRL_GVI_COMPONENT_SAMPLING_4444 1
2552 #define NV_CTRL_GVI_COMPONENT_SAMPLING_4224 2
2553 #define NV_CTRL_GVI_COMPONENT_SAMPLING_444 3
2554 #define NV_CTRL_GVI_COMPONENT_SAMPLING_422 4
2555 #define NV_CTRL_GVI_COMPONENT_SAMPLING_420 5
2556
2557 /*
2558 * NV_CTRL_GVI_REQUESTED_COMPONENT_SAMPLING - Specify the sampling format for
2559 * the captured stream.
2560 * The possible values are the NV_CTRL_GVI_DETECTED_COMPONENT_SAMPLING
2561 * constants.
2562 * The stream number should be specified in the "display_mask" parameter.
2563 */
2564
2565 #define NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING 312 /* RW-I */
2566
2567 /*
2568 * NV_CTRL_GVI_CHROMA_EXPAND - Enable or disable 4:2:2 -> 4:4:4 chroma
2569 * expansion for the captured stream. This value is ignored when a
2570 * COMPONENT_SAMPLING format is selected that does not use chroma subsampling,
2571 * or if a BITS_PER_COMPONENT value is selected that is not supported.
2572 * The stream number should be specified in the "display_mask" parameter.
2573 */
2574
2575 #define NV_CTRL_GVI_REQUESTED_STREAM_CHROMA_EXPAND 313 /* RW-I */
2576 #define NV_CTRL_GVI_CHROMA_EXPAND_FALSE 0
2577 #define NV_CTRL_GVI_CHROMA_EXPAND_TRUE 1
2578
2579 /*
2580 * NV_CTRL_GVI_DETECTED_CHANNEL_COLOR_SPACE - Returns the detected color space
2581 * of the input jack+channel.
2582 *
2583 * The jack number should be specified in the lower 16 bits of the
2584 * "display_mask" parameter, while the channel number should be specified in
2585 * the upper 16 bits.
2586 */
2587
2588 #define NV_CTRL_GVI_DETECTED_CHANNEL_COLOR_SPACE 314 /* R--I */
2589 #define NV_CTRL_GVI_COLOR_SPACE_UNKNOWN 0
2590 #define NV_CTRL_GVI_COLOR_SPACE_GBR 1
2591 #define NV_CTRL_GVI_COLOR_SPACE_GBRA 2
2592 #define NV_CTRL_GVI_COLOR_SPACE_GBRD 3
2593 #define NV_CTRL_GVI_COLOR_SPACE_YCBCR 4
2594 #define NV_CTRL_GVI_COLOR_SPACE_YCBCRA 5
2595 #define NV_CTRL_GVI_COLOR_SPACE_YCBCRD 6
2596
2597 /*
2598 * NV_CTRL_GVI_DETECTED_CHANNEL_LINK_ID - Returns the detected link identifier
2599 * for the given input jack+channel.
2600 *
2601 * The jack number should be specified in the lower 16 bits of the
2602 * "display_mask" parameter, while the channel number should be specified in
2603 * the upper 16 bits.
2604 */
2605
2606 #define NV_CTRL_GVI_DETECTED_CHANNEL_LINK_ID 315 /* R--I */
2607 #define NV_CTRL_GVI_LINK_ID_UNKNOWN 0xFFFF
2608
2609 /*
2610 * NV_CTRL_GVI_DETECTED_CHANNEL_SMPTE352_IDENTIFIER - Returns the 4-byte
2611 * SMPTE 352 identifier from the given input jack+channel.
2612 *
2613 * The jack number should be specified in the lower 16 bits of the
2614 * "display_mask" parameter, while the channel number should be specified in
2615 * the upper 16 bits.
2616 */
2617
2618 #define NV_CTRL_GVI_DETECTED_CHANNEL_SMPTE352_IDENTIFIER 316 /* R--I */
2619
2620 /*
2621 * NV_CTRL_GVI_GLOBAL_IDENTIFIER - Returns a global identifier for the
2622 * GVI device. This identifier can be used to relate GVI devices named
2623 * in NV-CONTROL with those enumerated in OpenGL.
2624 */
2625
2626 #define NV_CTRL_GVI_GLOBAL_IDENTIFIER 317 /* R--I */
2627
2628 /*
2629 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION - Returns the number of nanoseconds
2630 * that one unit of NV_CTRL_FRAMELOCK_SYNC_DELAY corresponds to.
2631 */
2632 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION 318 /* R-- */
2633
2634 /*
2635 * NV_CTRL_GPU_COOLER_MANUAL_CONTROL - Query the current or set a new
2636 * cooler control state; the value of this attribute controls the
2637 * availability of additional cooler control attributes (see below).
2638 *
2639 * Note: this attribute is unavailable unless cooler control support
2640 * has been enabled in the X server (by the user).
2641 */
2642
2643 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL 319 /* RW-G */
2644 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_FALSE 0
2645 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_TRUE 1
2646
2647 /*
2648 * NV_CTRL_THERMAL_COOLER_LEVEL - Returns cooler's current operating
2649 * level.
2650 */
2651
2652 #define NV_CTRL_THERMAL_COOLER_LEVEL 320 /* RW-C */
2653
2654 /* NV_CTRL_THERMAL_COOLER_LEVEL_SET_DEFAULT - Sets default values of
2655 * cooler.
2656 */
2657
2658 #define NV_CTRL_THERMAL_COOLER_LEVEL_SET_DEFAULT 321 /* -W-C */
2659
2660 /*
2661 * NV_CTRL_THERMAL_COOLER_CONTROL_TYPE -
2662 * Returns a cooler's control signal characteristics.
2663 * The possible types are restricted, Variable and Toggle.
2664 */
2665
2666 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE 322 /* R--C */
2667 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_NONE 0
2668 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_TOGGLE 1
2669 #define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_VARIABLE 2
2670
2671 /*
2672 * NV_CTRL_THERMAL_COOLER_TARGET - Returns objects that cooler cools.
2673 * Targets may be GPU, Memory, Power Supply or All of these.
2674 * GPU_RELATED = GPU | MEMORY | POWER_SUPPLY
2675 *
2676 */
2677
2678 #define NV_CTRL_THERMAL_COOLER_TARGET 323 /* R--C */
2679 #define NV_CTRL_THERMAL_COOLER_TARGET_NONE 0
2680 #define NV_CTRL_THERMAL_COOLER_TARGET_GPU 1
2681 #define NV_CTRL_THERMAL_COOLER_TARGET_MEMORY 2
2682 #define NV_CTRL_THERMAL_COOLER_TARGET_POWER_SUPPLY 4
2683 #define NV_CTRL_THERMAL_COOLER_TARGET_GPU_RELATED \
2684 (NV_CTRL_THERMAL_COOLER_TARGET_GPU | \
2685 NV_CTRL_THERMAL_COOLER_TARGET_MEMORY | \
2686 NV_CTRL_THERMAL_COOLER_TARGET_POWER_SUPPLY)
2687
2688 /*
2689 * NV_CTRL_GPU_ECC_SUPPORTED - Reports whether ECC is supported by the
2690 * targeted GPU.
2691 */
2692 #define NV_CTRL_GPU_ECC_SUPPORTED 324 /* R--G */
2693 #define NV_CTRL_GPU_ECC_SUPPORTED_FALSE 0
2694 #define NV_CTRL_GPU_ECC_SUPPORTED_TRUE 1
2695
2696 /*
2697 * NV_CTRL_GPU_ECC_STATUS - Returns the current hardware ECC setting
2698 * for the targeted GPU.
2699 */
2700 #define NV_CTRL_GPU_ECC_STATUS 325 /* R--G */
2701 #define NV_CTRL_GPU_ECC_STATUS_DISABLED 0
2702 #define NV_CTRL_GPU_ECC_STATUS_ENABLED 1
2703
2704 /*
2705 * NV_CTRL_GPU_ECC_CONFIGURATION - Reports whether ECC can be configured
2706 * dynamically for the GPU in question.
2707 */
2708 #define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED 326 /* R--G */
2709 #define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED_FALSE 0
2710 #define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED_TRUE 1
2711
2712 /*
2713 * NV_CTRL_GPU_ECC_CONFIGURATION_SETTING - Returns the current ECC
2714 * configuration setting or specifies new settings. New settings do not
2715 * take effect until the next POST.
2716 */
2717 #define NV_CTRL_GPU_ECC_CONFIGURATION 327 /* RW-G */
2718 #define NV_CTRL_GPU_ECC_CONFIGURATION_DISABLED 0
2719 #define NV_CTRL_GPU_ECC_CONFIGURATION_ENABLED 1
2720
2721 /*
2722 * NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_SETTING - Returns the default
2723 * ECC configuration setting.
2724 */
2725 #define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION 328 /* R--G */
2726 #define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_DISABLED 0
2727 #define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_ENABLED 1
2728
2729 /*
2730 * NV_CTRL_GPU_ECC_SINGLE_BIT_ERRORS - Returns the number of single-bit
2731 * ECC errors detected by the targeted GPU since the last POST.
2732 * Note: this attribute is a 64-bit integer attribute.
2733 */
2734 #define NV_CTRL_GPU_ECC_SINGLE_BIT_ERRORS 329 /* R--GQ */
2735
2736 /*
2737 * NV_CTRL_GPU_ECC_DOUBLE_BIT_ERRORS - Returns the number of double-bit
2738 * ECC errors detected by the targeted GPU since the last POST.
2739 * Note: this attribute is a 64-bit integer attribute.
2740 */
2741 #define NV_CTRL_GPU_ECC_DOUBLE_BIT_ERRORS 330 /* R--GQ */
2742
2743 /*
2744 * NV_CTRL_GPU_ECC_AGGREGATE_SINGLE_BIT_ERRORS - Returns the number of
2745 * single-bit ECC errors detected by the targeted GPU since the
2746 * last counter reset.
2747 * Note: this attribute is a 64-bit integer attribute.
2748 */
2749 #define NV_CTRL_GPU_ECC_AGGREGATE_SINGLE_BIT_ERRORS 331 /* R--GQ */
2750
2751 /*
2752 * NV_CTRL_GPU_ECC_AGGREGATE_DOUBLE_BIT_ERRORS - Returns the number of
2753 * double-bit ECC errors detected by the targeted GPU since the
2754 * last counter reset.
2755 * Note: this attribute is a 64-bit integer attribute.
2756 */
2757 #define NV_CTRL_GPU_ECC_AGGREGATE_DOUBLE_BIT_ERRORS 332 /* R--GQ */
2758
2759 /*
2760 * NV_CTRL_GPU_ECC_RESET_ERROR_STATUS - Resets the volatile/aggregate
2761 * single-bit and double-bit error counters. This attribute is a
2762 * bitmask attribute.
2763 */
2764 #define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS 333 /* -W-G */
2765 #define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS_VOLATILE 0x00000001
2766 #define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS_AGGREGATE 0x00000002
2767
2768 /*
2769 * NV_CTRL_GPU_POWER_MIZER_MODE - Provides a hint to the driver
2770 * as to how to manage the performance of the GPU.
2771 *
2772 * ADAPTIVE - adjust GPU clocks based on GPU
2773 * utilization
2774 * PREFER_MAXIMUM_PERFORMANCE - raise GPU clocks to favor
2775 * maximum performance, to the extent
2776 * that thermal and other constraints
2777 * allow
2778 */
2779 #define NV_CTRL_GPU_POWER_MIZER_MODE 334 /* RW-G */
2780 #define NV_CTRL_GPU_POWER_MIZER_MODE_ADAPTIVE 0
2781 #define NV_CTRL_GPU_POWER_MIZER_MODE_PREFER_MAXIMUM_PERFORMANCE 1
2782
2783 /*
2784 * NV_CTRL_GVI_SYNC_OUTPUT_FORMAT - Returns the output sync signal
2785 * from the GVI device.
2786 */
2787
2788 #define NV_CTRL_GVI_SYNC_OUTPUT_FORMAT 335 /* R--I */
2789
2790 /*
2791 * NV_CTRL_GVI_MAX_CHANNELS_PER_JACK - Returns the maximum
2792 * supported number of (logical) channels within a single physical jack of
2793 * a GVI device. For most SDI video formats, there is only one channel
2794 * (channel 0). But for 3G video formats (as specified in SMPTE 425),
2795 * as an example, there are two channels (channel 0 and channel 1) per
2796 * physical jack.
2797 */
2798
2799 #define NV_CTRL_GVI_MAX_CHANNELS_PER_JACK 336 /* R--I */
2800
2801 /*
2802 * NV_CTRL_GVI_MAX_STREAMS - Returns the maximum number of streams
2803 * that can be configured on the GVI device.
2804 */
2805
2806 #define NV_CTRL_GVI_MAX_STREAMS 337 /* R--I */
2807
2808 /*
2809 * NV_CTRL_GVI_NUM_CAPTURE_SURFACES - The GVI interface exposed through
2810 * NV-CONTROL and the GLX_NV_video_input extension uses internal capture
2811 * surfaces when frames are read from the GVI device. The
2812 * NV_CTRL_GVI_NUM_CAPTURE_SURFACES can be used to query and assign the
2813 * number of capture surfaces. This attribute is applied when
2814 * glXBindVideoCaptureDeviceNV() is called by the application.
2815 *
2816 * A lower number of capture surfaces will mean less video memory is used,
2817 * but can result in frames being dropped if the application cannot keep up
2818 * with the capture device. A higher number will prevent frames from being
2819 * dropped, making capture more reliable but will consume move video memory.
2820 */
2821 #define NV_CTRL_GVI_NUM_CAPTURE_SURFACES 338 /* RW-I */
2822
2823 /*
2824 * NV_CTRL_OVERSCAN_COMPENSATION - This option specifies the amount of overscan
2825 * compensation to apply to the current mode. It is measured in raster pixels,
2826 * i.e. pixels as specified in the current mode's backend timings.
2827 *
2828 * This option is similar to NV_CTRL_TV_OVERSCAN, but can be available on
2829 * display devices other than TVs. It also has semantics that are the opposite
2830 * of NV_CTRL_TV_OVERSCAN: a higher NV_CTRL_OVERSCAN_COMPENSATION makes the
2831 * screen smaller instead of bigger. NV_CTRL_OVERSCAN_COMPENSATION and
2832 * NV_CTRL_TV_OVERSCAN will not be available on the same display device at the
2833 * same time.
2834 */
2835 #define NV_CTRL_OVERSCAN_COMPENSATION 339 /* RWDG */
2836
2837 /*
2838 * NV_CTRL_GPU_PCIE_GENERATION - Reports the current PCI-E generation.
2839 */
2840 #define NV_CTRL_GPU_PCIE_GENERATION 341 /* R--GI */
2841 #define NV_CTRL_GPU_PCIE_GENERATION1 0x00000001
2842 #define NV_CTRL_GPU_PCIE_GENERATION2 0x00000002
2843
2844 /*
2845 * NV_CTRL_GVI_BOUND_GPU - Returns the NV_CTRL_TARGET_TYPE_GPU target_id of
2846 * the GPU currently bound to the GVI device. Returns -1 if no GPU is
2847 * currently bound to the GVI device.
2848 */
2849 #define NV_CTRL_GVI_BOUND_GPU 342 /* R--I */
2850
2851 /*
2852 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 - this attribute is only
2853 * intended to be used to query the ValidValues for
2854 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for VIDEO_FORMAT values between
2855 * 64 and 95. See NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for details.
2856 */
2857
2858 #define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 343 /* ---GI */
2859
2860 /*
2861 * NV_CTRL_ACCELERATE_TRAPEZOIDS - Toggles RENDER Trapezoid acceleration
2862 */
2863
2864 #define NV_CTRL_ACCELERATE_TRAPEZOIDS 344 /* RW- */
2865 #define NV_CTRL_ACCELERATE_TRAPEZOIDS_DISABLE 0
2866 #define NV_CTRL_ACCELERATE_TRAPEZOIDS_ENABLE 1
2867
2868 /*
2869 * NV_CTRL_GPU_CORES - Returns number of GPU cores supported by the graphics
2870 * pipeline.
2871 */
2872
2873 #define NV_CTRL_GPU_CORES 345 /* R--G */
2874
2875 /*
2876 * NV_CTRL_GPU_MEMORY_BUS_WIDTH - Returns memory bus bandwidth on the associated
2877 * subdevice.
2878 */
2879
2880 #define NV_CTRL_GPU_MEMORY_BUS_WIDTH 346 /* R--G */
2881
2882 /*
2883 * NV_CTRL_GVI_TEST_MODE - This attribute controls the GVI test mode. When
2884 * enabled, the GVI device will generate fake data as quickly as possible. All
2885 * GVI settings are still valid when this is enabled (e.g., the requested video
2886 * format is honored and sets the video size).
2887 * This may be used to test the pipeline.
2888 */
2889
2890 #define NV_CTRL_GVI_TEST_MODE 347 /* R--I */
2891 #define NV_CTRL_GVI_TEST_MODE_DISABLE 0
2892 #define NV_CTRL_GVI_TEST_MODE_ENABLE 1
2893
2894 /*
2895 * NV_CTRL_COLOR_SPACE - This option sets color space of the video
2896 * signal.
2897 */
2898 #define NV_CTRL_COLOR_SPACE 348 /* RWDG */
2899 #define NV_CTRL_COLOR_SPACE_RGB 0
2900 #define NV_CTRL_COLOR_SPACE_YCbCr422 1
2901 #define NV_CTRL_COLOR_SPACE_YCbCr444 2
2902
2903 /*
2904 * NV_CTRL_COLOR_RANGE - This option sets color range of the video
2905 * signal.
2906 */
2907 #define NV_CTRL_COLOR_RANGE 349 /* RWDG */
2908 #define NV_CTRL_COLOR_RANGE_FULL 0
2909 #define NV_CTRL_COLOR_RANGE_LIMITED 1
2910
2911 /*
2912 * NV_CTRL_GPU_SCALING_DEFAULT_TARGET - Returns the default scaling target
2913 * for the specified display device.
2914 *
2915 * NV_CTRL_GPU_SCALING_DEFAULT_METHOD - Returns the default scaling method
2916 * for the specified display device.
2917 *
2918 * The values returned by these attributes are one of the target or method
2919 * values defined for the attribute NV_CTRL_GPU_SCALING.
2920 */
2921 #define NV_CTRL_GPU_SCALING_DEFAULT_TARGET 350 /* R-DG */
2922 #define NV_CTRL_GPU_SCALING_DEFAULT_METHOD 351 /* R-DG */
2923
2924 /*
2925 * NV_CTRL_DITHERING_MODE - Controls the dithering mode, when
2926 * NV_CTRL_CURRENT_DITHERING is Enabled.
2927 *
2928 * AUTO: allow the driver to choose the dithering mode automatically.
2929 *
2930 * DYNAMIC_2X2: use a 2x2 matrix to dither from the GPU's pixel
2931 * pipeline to the bit depth of the flat panel. The matrix values
2932 * are changed from frame to frame.
2933 *
2934 * STATIC_2X2: use a 2x2 matrix to dither from the GPU's pixel
2935 * pipeline to the bit depth of the flat panel. The matrix values
2936 * do not change from frame to frame.
2937 *
2938 * TEMPORAL: use a pseudorandom value from a uniform distribution calculated at
2939 * every pixel to achieve stochastic dithering. This method produces a better
2940 * visual result than 2x2 matrix approaches.
2941 */
2942 #define NV_CTRL_DITHERING_MODE 352 /* RWDG */
2943 #define NV_CTRL_DITHERING_MODE_AUTO 0
2944 #define NV_CTRL_DITHERING_MODE_DYNAMIC_2X2 1
2945 #define NV_CTRL_DITHERING_MODE_STATIC_2X2 2
2946 #define NV_CTRL_DITHERING_MODE_TEMPORAL 3
2947
2948 /*
2949 * NV_CTRL_CURRENT_DITHERING - Returns the current dithering state.
2950 */
2951 #define NV_CTRL_CURRENT_DITHERING 353 /* R-DG */
2952 #define NV_CTRL_CURRENT_DITHERING_DISABLED 0
2953 #define NV_CTRL_CURRENT_DITHERING_ENABLED 1
2954
2955 /*
2956 * NV_CTRL_CURRENT_DITHERING_MODE - Returns the current dithering
2957 * mode.
2958 */
2959 #define NV_CTRL_CURRENT_DITHERING_MODE 354 /* R-DG */
2960 #define NV_CTRL_CURRENT_DITHERING_MODE_NONE 0
2961 #define NV_CTRL_CURRENT_DITHERING_MODE_DYNAMIC_2X2 1
2962 #define NV_CTRL_CURRENT_DITHERING_MODE_STATIC_2X2 2
2963 #define NV_CTRL_CURRENT_DITHERING_MODE_TEMPORAL 3
2964
2965 /*
2966 * NV_CTRL_THERMAL_SENSOR_READING - Returns the thermal sensor's current
2967 * reading.
2968 */
2969 #define NV_CTRL_THERMAL_SENSOR_READING 355 /* R--S */
2970
2971 /*
2972 * NV_CTRL_THERMAL_SENSOR_PROVIDER - Returns the hardware device that
2973 * provides the thermal sensor.
2974 */
2975 #define NV_CTRL_THERMAL_SENSOR_PROVIDER 356 /* R--S */
2976 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_NONE 0
2977 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_GPU_INTERNAL 1
2978 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADM1032 2
2979 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADT7461 3
2980 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_MAX6649 4
2981 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_MAX1617 5
2982 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM99 6
2983 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM89 7
2984 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM64 8
2985 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_G781 9
2986 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADT7473 10
2987 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_SBMAX6649 11
2988 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_VBIOSEVT 12
2989 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_OS 13
2990 #define NV_CTRL_THERMAL_SENSOR_PROVIDER_UNKNOWN 0xFFFFFFFF
2991
2992 /*
2993 * NV_CTRL_THERMAL_SENSOR_TARGET - Returns what hardware component
2994 * the thermal sensor is measuring.
2995 */
2996 #define NV_CTRL_THERMAL_SENSOR_TARGET 357 /* R--S */
2997 #define NV_CTRL_THERMAL_SENSOR_TARGET_NONE 0
2998 #define NV_CTRL_THERMAL_SENSOR_TARGET_GPU 1
2999 #define NV_CTRL_THERMAL_SENSOR_TARGET_MEMORY 2
3000 #define NV_CTRL_THERMAL_SENSOR_TARGET_POWER_SUPPLY 4
3001 #define NV_CTRL_THERMAL_SENSOR_TARGET_BOARD 8
3002 #define NV_CTRL_THERMAL_SENSOR_TARGET_UNKNOWN 0xFFFFFFFF
3003
3004 /*
3005 * NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR - when TRUE, OpenGL will
3006 * draw information about the current MULTIGPU mode.
3007 */
3008 #define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR 358 /* RW-X */
3009 #define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR_FALSE 0
3010 #define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR_TRUE 1
3011
3012 /*
3013 * NV_CTRL_GPU_CURRENT_PROCESSOR_CLOCK_FREQS - Returns GPU's processor
3014 * clock freqs.
3015 */
3016 #define NV_CTRL_GPU_CURRENT_PROCESSOR_CLOCK_FREQS 359 /* RW-G */
3017
3018 /*
3019 * NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS - query the flags (various information
3020 * for the specified NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be
3021 * queried with existing interfaces, the video format should be specified
3022 * in the display_mask field; eg:
3023 *
3024 * XNVCTRLQueryTargetAttribute(dpy,
3025 * NV_CTRL_TARGET_TYPE_GVI,
3026 * gvi,
3027 * NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296,
3028 * NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS,
3029 * &flags);
3030 *
3031 * Note: The NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_1080P_NO_12BPC flag is set
3032 * for those 1080P 3G modes (level A and B) that do not support
3033 * 12 bits per component (when configuring a GVI stream.)
3034 */
3035
3036 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS 360 /* R--I */
3037 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_NONE 0x00000000
3038 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_INTERLACED 0x00000001
3039 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_PROGRESSIVE 0x00000002
3040 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_PSF 0x00000004
3041 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_A 0x00000008
3042 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_B 0x00000010
3043 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G \
3044 ((NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_A) | \
3045 (NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_B))
3046 #define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_1080P_NO_12BPC 0x00000020
3047
3048 /*
3049 * NV_CTRL_GPU_PCIE_MAX_LINK_SPEED - returns maximum PCI-E link speed.
3050 */
3051
3052 #define NV_CTRL_GPU_PCIE_MAX_LINK_SPEED 361 /* R--GI */
3053
3054 /*
3055 * NV_CTRL_3D_VISION_PRO_RESET_TRANSCEIVER_TO_FACTORY_SETTINGS - Resets the
3056 * 3D Vision Pro transceiver to its factory settings.
3057 */
3058 #define NV_CTRL_3D_VISION_PRO_RESET_TRANSCEIVER_TO_FACTORY_SETTINGS 363 /* -W-T */
3059
3060 /*
3061 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL - Controls the channel that is
3062 * currently used by the 3D Vision Pro transceiver.
3063 */
3064 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL 364 /* RW-T */
3065
3066 /*
3067 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE - Controls the mode in which the
3068 * 3D Vision Pro transceiver operates.
3069 * NV_CTRL_3D_VISION_PRO_TM_LOW_RANGE is bidirectional
3070 * NV_CTRL_3D_VISION_PRO_TM_MEDIUM_RANGE is bidirectional
3071 * NV_CTRL_3D_VISION_PRO_TM_HIGH_RANGE may be bidirectional just up to a
3072 * given range, and unidirectional beyond it
3073 * NV_CTRL_3D_VISION_PRO_TM_COUNT is the total number of
3074 * 3D Vision Pro transceiver modes
3075 */
3076 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE 365 /* RW-T */
3077 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_INVALID 0
3078 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_LOW_RANGE 1
3079 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_MEDIUM_RANGE 2
3080 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_HIGH_RANGE 3
3081 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_COUNT 4
3082
3083 /*
3084 * NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES - controls whether updates to the color
3085 * lookup table (LUT) are synchronous with respect to X rendering. For example,
3086 * if an X client sends XStoreColors followed by XFillRectangle, the driver will
3087 * guarantee that the FillRectangle request is not processed until after the
3088 * updated LUT colors are actually visible on the screen if
3089 * NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES is enabled. Otherwise, the rendering may
3090 * occur first.
3091 *
3092 * This makes a difference for applications that use the LUT to animate, such as
3093 * XPilot. If you experience flickering in applications that use LUT
3094 * animations, try enabling this attribute.
3095 *
3096 * When synchronous updates are enabled, XStoreColors requests will be processed
3097 * at your screen's refresh rate.
3098 */
3099
3100 #define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES 367 /* RWDG */
3101 #define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES_DISABLE 0
3102 #define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES_ENABLE 1
3103
3104 /*
3105 * NV_CTRL_DITHERING_DEPTH - Controls the dithering depth when
3106 * NV_CTRL_CURRENT_DITHERING is ENABLED. Some displays connected
3107 * to the GPU via the DVI or LVDS interfaces cannot display the
3108 * full color range of ten bits per channel, so the GPU will
3109 * dither to either 6 or 8 bits per channel.
3110 */
3111 #define NV_CTRL_DITHERING_DEPTH 368 /* RWDG */
3112 #define NV_CTRL_DITHERING_DEPTH_AUTO 0
3113 #define NV_CTRL_DITHERING_DEPTH_6_BITS 1
3114 #define NV_CTRL_DITHERING_DEPTH_8_BITS 2
3115
3116 /*
3117 * NV_CTRL_CURRENT_DITHERING_DEPTH - Returns the current dithering
3118 * depth value.
3119 */
3120 #define NV_CTRL_CURRENT_DITHERING_DEPTH 369 /* R-DG */
3121 #define NV_CTRL_CURRENT_DITHERING_DEPTH_NONE 0
3122 #define NV_CTRL_CURRENT_DITHERING_DEPTH_6_BITS 1
3123 #define NV_CTRL_CURRENT_DITHERING_DEPTH_8_BITS 2
3124
3125 /*
3126 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_FREQUENCY - Returns the
3127 * frequency of the channel(in kHz) of the 3D Vision Pro transceiver.
3128 * Use the display_mask parameter to specify the channel number.
3129 */
3130 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_FREQUENCY 370 /* R--T */
3131
3132 /*
3133 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_QUALITY - Returns the
3134 * quality of the channel(in percentage) of the 3D Vision Pro transceiver.
3135 * Use the display_mask parameter to specify the channel number.
3136 */
3137 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_QUALITY 371 /* R--T */
3138
3139 /*
3140 * NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_COUNT - Returns the number of
3141 * channels on the 3D Vision Pro transceiver.
3142 */
3143 #define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_COUNT 372 /* R--T */
3144
3145 /*
3146 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES - Puts the 3D Vision Pro
3147 * transceiver into pairing mode to gather additional glasses.
3148 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_STOP - stops any pairing
3149 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON - starts continuous
3150 * pairing via beacon mode
3151 * Any other value, N - Puts the 3D Vision Pro transceiver into
3152 * authenticated pairing mode for N seconds.
3153 */
3154 #define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES 373 /* -W-T */
3155 #define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_STOP 0
3156 #define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON 0xFFFFFFFF
3157
3158 /*
3159 * NV_CTRL_3D_VISION_PRO_UNPAIR_GLASSES - Tells a specific pair
3160 * of glasses to unpair. The glasses will "forget" the address
3161 * of the 3D Vision Pro transceiver to which they have been paired.
3162 * To unpair all the currently paired glasses, specify
3163 * the glasses id as 0.
3164 */
3165 #define NV_CTRL_3D_VISION_PRO_UNPAIR_GLASSES 374 /* -W-T */
3166
3167 /*
3168 * NV_CTRL_3D_VISION_PRO_DISCOVER_GLASSES - Tells the 3D Vision Pro
3169 * transceiver about the glasses that have been paired using
3170 * NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON. Unless this is done,
3171 * the 3D Vision Pro transceiver will not know about glasses paired in
3172 * beacon mode.
3173 */
3174 #define NV_CTRL_3D_VISION_PRO_DISCOVER_GLASSES 375 /* -W-T */
3175
3176 /*
3177 * NV_CTRL_3D_VISION_PRO_IDENTIFY_GLASSES - Causes glasses LEDs to
3178 * flash for a short period of time.
3179 */
3180 #define NV_CTRL_3D_VISION_PRO_IDENTIFY_GLASSES 376 /* -W-T */
3181
3182 /*
3183 * NV_CTRL_3D_VISION_PRO_GLASSES_SYNC_CYCLE - Controls the
3184 * sync cycle duration(in milliseconds) of the glasses.
3185 * Use the display_mask parameter to specify the glasses id.
3186 */
3187 #define NV_CTRL_3D_VISION_PRO_GLASSES_SYNC_CYCLE 378 /* RW-T */
3188
3189 /*
3190 * NV_CTRL_3D_VISION_PRO_GLASSES_MISSED_SYNC_CYCLES - Returns the
3191 * number of state sync cycles recently missed by the glasses.
3192 * Use the display_mask parameter to specify the glasses id.
3193 */
3194 #define NV_CTRL_3D_VISION_PRO_GLASSES_MISSED_SYNC_CYCLES 379 /* R--T */
3195
3196 /*
3197 * NV_CTRL_3D_VISION_PRO_GLASSES_BATTERY_LEVEL - Returns the
3198 * battery level(in percentage) of the glasses.
3199 * Use the display_mask parameter to specify the glasses id.
3200 */
3201 #define NV_CTRL_3D_VISION_PRO_GLASSES_BATTERY_LEVEL 380 /* R--T */
3202
3203
3204 /*
3205 * NV_CTRL_GVO_ANC_PARITY_COMPUTATION - Controls the SDI device's computation
3206 * of the parity bit (bit 8) for ANC data words.
3207 */
3208
3209 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION 381 /* RW--- */
3210 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_AUTO 0
3211 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_ON 1
3212 #define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_OFF 2
3213
3214 /*
3215 * NV_CTRL_3D_VISION_PRO_GLASSES_PAIR_EVENT - This attribute is sent
3216 * as an event when glasses get paired in response to pair command
3217 * from any of the clients.
3218 */
3219 #define NV_CTRL_3D_VISION_PRO_GLASSES_PAIR_EVENT 382 /* ---T */
3220
3221 /*
3222 * NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT - This attribute is sent
3223 * as an event when glasses get unpaired in response to unpair command
3224 * from any of the clients.
3225 */
3226 #define NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT 383 /* ---T */
3227
3228 #define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT
3229
3230 /**************************************************************************/
3231
3232 /*
3233 * String Attributes:
3234 *
3235 * String attributes can be queryied through the XNVCTRLQueryStringAttribute()
3236 * and XNVCTRLQueryTargetStringAttribute() function calls.
3237 *
3238 * String attributes can be set through the XNVCTRLSetStringAttribute()
3239 * function call. (There are currently no string attributes that can be
3240 * set on non-X Screen targets.)
3241 *
3242 * Unless otherwise noted, all string attributes can be queried/set using an
3243 * NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take an
3244 * NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried/set through
3245 * XNVCTRLQueryStringAttribute()/XNVCTRLSetStringAttribute() (Since
3246 * these assume an X Screen target).
3247 */
3248
3249
3250 /*
3251 * NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the
3252 * specified X screen is running.
3253 *
3254 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3255 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3256 */
3257
3258 #define NV_CTRL_STRING_PRODUCT_NAME 0 /* R--G */
3259
3260
3261 /*
3262 * NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on
3263 * which the specified X screen is running.
3264 */
3265
3266 #define NV_CTRL_STRING_VBIOS_VERSION 1 /* R--G */
3267
3268
3269 /*
3270 * NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the
3271 * NVIDIA driver version number for the NVIDIA X driver in use.
3272 */
3273
3274 #define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION 3 /* R--G */
3275
3276
3277 /*
3278 * NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device
3279 * specified in the display_mask argument.
3280 *
3281 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3282 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3283 */
3284
3285 #define NV_CTRL_STRING_DISPLAY_DEVICE_NAME 4 /* R-DG */
3286
3287
3288 /*
3289 * NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the
3290 * specified display device; only valid if the display device is a TV.
3291 */
3292
3293 #define NV_CTRL_STRING_TV_ENCODER_NAME 5 /* R-DG */
3294
3295
3296 /*
3297 * NV_CTRL_STRING_GVIO_FIRMWARE_VERSION - indicates the version of the
3298 * Firmware on the GVIO device.
3299 */
3300
3301 #define NV_CTRL_STRING_GVIO_FIRMWARE_VERSION 8 /* R--I */
3302
3303 /*
3304 * The following is deprecated; use NV_CTRL_STRING_GVIO_FIRMWARE_VERSION,
3305 * instead
3306 */
3307 #define NV_CTRL_STRING_GVO_FIRMWARE_VERSION 8 /* R-- */
3308
3309
3310 /*
3311 * NV_CTRL_STRING_CURRENT_MODELINE - Return the ModeLine currently
3312 * being used by the specified display device.
3313 *
3314 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3315 * using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3316 *
3317 * The ModeLine string may be prepended with a comma-separated list of
3318 * "token=value" pairs, separated from the ModeLine string by "::".
3319 * This "token=value" syntax is the same as that used in
3320 * NV_CTRL_BINARY_DATA_MODELINES
3321 */
3322
3323 #define NV_CTRL_STRING_CURRENT_MODELINE 9 /* R-DG */
3324
3325
3326 /*
3327 * NV_CTRL_STRING_ADD_MODELINE - Adds a ModeLine to the specified
3328 * display device. The ModeLine is not added if validation fails.
3329 *
3330 * The ModeLine string should have the same syntax as a ModeLine in
3331 * the X configuration file; e.g.,
3332 *
3333 * "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
3334 */
3335
3336 #define NV_CTRL_STRING_ADD_MODELINE 10 /* -WDG */
3337
3338
3339 /*
3340 * NV_CTRL_STRING_DELETE_MODELINE - Deletes an existing ModeLine
3341 * from the specified display device. The currently selected
3342 * ModeLine cannot be deleted. (This also means you cannot delete
3343 * the last ModeLine.)
3344 *
3345 * The ModeLine string should have the same syntax as a ModeLine in
3346 * the X configuration file; e.g.,
3347 *
3348 * "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync
3349 */
3350
3351 #define NV_CTRL_STRING_DELETE_MODELINE 11 /* -WDG */
3352
3353
3354 /*
3355 * NV_CTRL_STRING_CURRENT_METAMODE - Returns the metamode currently
3356 * being used by the specified X screen. The MetaMode string has the
3357 * same syntax as the MetaMode X configuration option, as documented
3358 * in the NVIDIA driver README.
3359 *
3360 * The returned string may be prepended with a comma-separated list of
3361 * "token=value" pairs, separated from the MetaMode string by "::".
3362 * This "token=value" syntax is the same as that used in
3363 * NV_CTRL_BINARY_DATA_METAMODES.
3364 */
3365
3366 #define NV_CTRL_STRING_CURRENT_METAMODE 12 /* R--- */
3367
3368
3369 /*
3370 * NV_CTRL_STRING_ADD_METAMODE - Adds a MetaMode to the specified
3371 * X Screen.
3372 *
3373 * It is recommended to not use this attribute, but instead use
3374 * NV_CTRL_STRING_OPERATION_ADD_METAMODE.
3375 */
3376
3377 #define NV_CTRL_STRING_ADD_METAMODE 13 /* -W-- */
3378
3379
3380 /*
3381 * NV_CTRL_STRING_DELETE_METAMODE - Deletes an existing MetaMode from
3382 * the specified X Screen. The currently selected MetaMode cannot be
3383 * deleted. (This also means you cannot delete the last MetaMode).
3384 * The MetaMode string should have the same syntax as the MetaMode X
3385 * configuration option, as documented in the NVIDIA driver README.
3386 */
3387
3388 #define NV_CTRL_STRING_DELETE_METAMODE 14 /* -WD-- */
3389
3390
3391 /*
3392 * NV_CTRL_STRING_VCSC_PRODUCT_NAME - Querys the product name of the
3393 * VCSC device.
3394 *
3395 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3396 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3397 */
3398
3399 #define NV_CTRL_STRING_VCSC_PRODUCT_NAME 15 /* R---V */
3400
3401
3402 /*
3403 * NV_CTRL_STRING_VCSC_PRODUCT_ID - Querys the product ID of the VCSC device.
3404 *
3405 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3406 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3407 */
3408
3409 #define NV_CTRL_STRING_VCSC_PRODUCT_ID 16 /* R---V */
3410
3411
3412 /*
3413 * NV_CTRL_STRING_VCSC_SERIAL_NUMBER - Querys the unique serial number
3414 * of the VCS device.
3415 *
3416 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3417 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3418 */
3419
3420 #define NV_CTRL_STRING_VCSC_SERIAL_NUMBER 17 /* R---V */
3421
3422
3423 /*
3424 * NV_CTRL_STRING_VCSC_BUILD_DATE - Querys the date of the VCS device.
3425 * the returned string is in the following format: "Week.Year"
3426 *
3427 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3428 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3429 */
3430
3431 #define NV_CTRL_STRING_VCSC_BUILD_DATE 18 /* R---V */
3432
3433
3434 /*
3435 * NV_CTRL_STRING_VCSC_FIRMWARE_VERSION - Querys the firmware version
3436 * of the VCS device.
3437 *
3438 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3439 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3440 */
3441
3442 #define NV_CTRL_STRING_VCSC_FIRMWARE_VERSION 19 /* R---V */
3443
3444
3445 /*
3446 * NV_CTRL_STRING_VCSC_FIRMWARE_REVISION - Querys the firmware revision
3447 * of the VCS device.
3448 *
3449 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3450 * using a NV_CTRL_TARGET_TYPE_VCS target.
3451 */
3452
3453 #define NV_CTRL_STRING_VCSC_FIRMWARE_REVISION 20 /* R---V */
3454
3455
3456 /*
3457 * NV_CTRL_STRING_VCSC_HARDWARE_VERSION - Querys the hardware version
3458 * of the VCS device.
3459 *
3460 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3461 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3462 */
3463
3464 #define NV_CTRL_STRING_VCSC_HARDWARE_VERSION 21 /* R---V */
3465
3466
3467 /*
3468 * NV_CTRL_STRING_VCSC_HARDWARE_REVISION - Querys the hardware revision
3469 * of the VCS device.
3470 *
3471 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3472 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3473 */
3474
3475 #define NV_CTRL_STRING_VCSC_HARDWARE_REVISION 22 /* R---V */
3476
3477
3478 /*
3479 * NV_CTRL_STRING_MOVE_METAMODE - Moves a MetaMode to the specified
3480 * index location. The MetaMode must already exist in the X Screen's
3481 * list of MetaModes (as returned by the NV_CTRL_BINARY_DATA_METAMODES
3482 * attribute). If the index is larger than the number of MetaModes in
3483 * the list, the MetaMode is moved to the end of the list. The
3484 * MetaMode string should have the same syntax as the MetaMode X
3485 * configuration option, as documented in the NVIDIA driver README.
3486
3487 * The MetaMode string must be prepended with a comma-separated list
3488 * of "token=value" pairs, separated from the MetaMode string by "::".
3489 * Currently, the only valid token is "index", which indicates where
3490 * in the MetaMode list the MetaMode should be moved to.
3491 *
3492 * Other tokens may be added in the future.
3493 *
3494 * E.g.,
3495 * "index=5 :: CRT-0: 1024x768 @1024x768 +0+0"
3496 */
3497
3498 #define NV_CTRL_STRING_MOVE_METAMODE 23 /* -W-- */
3499
3500
3501 /*
3502 * NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES - returns the valid
3503 * horizontal sync ranges used to perform mode validation for the
3504 * specified display device. The ranges are in the same format as the
3505 * "HorizSync" X config option:
3506 *
3507 * "horizsync-range may be a comma separated list of either discrete
3508 * values or ranges of values. A range of values is two values
3509 * separated by a dash."
3510 *
3511 * The values are in kHz.
3512 *
3513 * Additionally, the string may be prepended with a comma-separated
3514 * list of "token=value" pairs, separated from the HorizSync string by
3515 * "::". Valid tokens:
3516 *
3517 * Token Value
3518 * "source" "edid" - HorizSync is from the display device's EDID
3519 * "xconfig" - HorizSync is from the "HorizSync" entry in
3520 * the Monitor section of the X config file
3521 * "option" - HorizSync is from the "HorizSync" NVIDIA X
3522 * config option
3523 * "twinview" - HorizSync is from the "SecondMonitorHorizSync"
3524 * NVIDIA X config option
3525 * "builtin" - HorizSync is from NVIDIA X driver builtin
3526 * default values
3527 *
3528 * Additional tokens and/or values may be added in the future.
3529 *
3530 * Example: "source=edid :: 30.000-62.000"
3531 */
3532
3533 #define NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES 24 /* R-DG */
3534
3535
3536 /*
3537 * NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES - returns the valid
3538 * vertical refresh ranges used to perform mode validation for the
3539 * specified display device. The ranges are in the same format as the
3540 * "VertRefresh" X config option:
3541 *
3542 * "vertrefresh-range may be a comma separated list of either discrete
3543 * values or ranges of values. A range of values is two values
3544 * separated by a dash."
3545 *
3546 * The values are in Hz.
3547 *
3548 * Additionally, the string may be prepended with a comma-separated
3549 * list of "token=value" pairs, separated from the VertRefresh string by
3550 * "::". Valid tokens:
3551 *
3552 * Token Value
3553 * "source" "edid" - VertRefresh is from the display device's EDID
3554 * "xconfig" - VertRefresh is from the "VertRefresh" entry in
3555 * the Monitor section of the X config file
3556 * "option" - VertRefresh is from the "VertRefresh" NVIDIA X
3557 * config option
3558 * "twinview" - VertRefresh is from the "SecondMonitorVertRefresh"
3559 * NVIDIA X config option
3560 * "builtin" - VertRefresh is from NVIDIA X driver builtin
3561 * default values
3562 *
3563 * Additional tokens and/or values may be added in the future.
3564 *
3565 * Example: "source=edid :: 50.000-75.000"
3566 */
3567
3568 #define NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES 25 /* R-DG */
3569
3570
3571 /*
3572 * NV_CTRL_STRING_XINERAMA_SCREEN_INFO - returns the physical X Screen's
3573 * initial position and size (in absolute coordinates) within the Xinerama
3574 * desktop as the "token=value" string: "x=#, y=#, width=#, height=#"
3575 *
3576 * Querying this attribute returns FALSE if NV_CTRL_XINERAMA is not
3577 * NV_CTRL_XINERAMA_ON.
3578 */
3579
3580 #define NV_CTRL_STRING_XINERAMA_SCREEN_INFO 26 /* R--- */
3581
3582
3583 /*
3584 * NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER - used to specify the
3585 * order that display devices will be returned via Xinerama when
3586 * TwinViewXineramaInfo is enabled. Follows the same syntax as the
3587 * TwinViewXineramaInfoOrder X config option.
3588 */
3589
3590 #define NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER 27 /* RW-- */
3591
3592
3593 /*
3594 * NV_CTRL_STRING_SLI_MODE - returns a string describing the current
3595 * SLI mode, if any, or FALSE if SLI is not currently enabled.
3596 *
3597 * This string should be used for informational purposes only, and
3598 * should not be used to distinguish between SLI modes, other than to
3599 * recognize when SLI is disabled (FALSE is returned) or
3600 * enabled (the returned string is non-NULL and describes the current
3601 * SLI configuration).
3602 */
3603
3604 #define NV_CTRL_STRING_SLI_MODE 28 /* R---*/
3605
3606
3607 /*
3608 * NV_CTRL_STRING_PERFORMANCE_MODES - returns a string with all the
3609 * performance modes defined for this GPU along with their associated
3610 * NV Clock and Memory Clock values.
3611 *
3612 * Each performance modes are returned as a comma-separated list of
3613 * "token=value" pairs. Each set of performance mode tokens are separated
3614 * by a ";". Valid tokens:
3615 *
3616 * Token Value
3617 * "perf" integer - the Performance level
3618 * "nvclock" integer - the GPU clocks (in MHz) for the perf level
3619 * "memclock" integer - the memory clocks (in MHz) for the perf level
3620 *
3621 *
3622 * Example:
3623 *
3624 * perf=0, nvclock=500, memclock=505 ; perf=1, nvclock=650, memclock=505
3625 *
3626 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3627 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3628 */
3629
3630 #define NV_CTRL_STRING_PERFORMANCE_MODES 29 /* R--G */
3631
3632
3633 /*
3634 * NV_CTRL_STRING_VCSC_FAN_STATUS - returns a string with status of all the
3635 * fans in the Visual Computing System, if such a query is supported. Fan
3636 * information is reported along with its tachometer reading (in RPM) and a
3637 * flag indicating whether the fan has failed or not.
3638 *
3639 * Valid tokens:
3640 *
3641 * Token Value
3642 * "fan" integer - the Fan index
3643 * "speed" integer - the tachometer reading of the fan in rpm
3644 * "fail" integer - flag to indicate whether the fan has failed
3645 *
3646 * Example:
3647 *
3648 * fan=0, speed=694, fail=0 ; fan=1, speed=693, fail=0
3649 *
3650 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3651 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3652 *
3653 */
3654
3655 #define NV_CTRL_STRING_VCSC_FAN_STATUS 30 /* R---V */
3656
3657
3658 /*
3659 * NV_CTRL_STRING_VCSC_TEMPERATURES - returns a string with all Temperature
3660 * readings in the Visual Computing System, if such a query is supported.
3661 * Intake, Exhaust and Board Temperature values are reported in Celcius.
3662 *
3663 * Valid tokens:
3664 *
3665 * Token Value
3666 * "intake" integer - the intake temperature for the VCS
3667 * "exhaust" integer - the exhaust temperature for the VCS
3668 * "board" integer - the board temperature of the VCS
3669 *
3670 * Example:
3671 *
3672 * intake=29, exhaust=46, board=41
3673 *
3674 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3675 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3676 *
3677 */
3678
3679 #define NV_CTRL_STRING_VCSC_TEMPERATURES 31 /* R---V */
3680
3681
3682 /*
3683 * NV_CTRL_STRING_VCSC_PSU_INFO - returns a string with all Power Supply Unit
3684 * related readings in the Visual Computing System, if such a query is
3685 * supported. Current in amperes, Power in watts, Voltage in volts and PSU
3686 * state may be reported. Not all PSU types support all of these values, and
3687 * therefore some readings may be unknown.
3688 *
3689 * Valid tokens:
3690 *
3691 * Token Value
3692 * "current" integer - the current drawn in amperes by the VCS
3693 * "power" integer - the power drawn in watts by the VCS
3694 * "voltage" integer - the voltage reading of the VCS
3695 * "state" integer - flag to indicate whether PSU is operating normally
3696 *
3697 * Example:
3698 *
3699 * current=10, power=15, voltage=unknown, state=normal
3700 *
3701 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute()
3702 * using a NV_CTRL_TARGET_TYPE_VCSC target.
3703 *
3704 */
3705
3706
3707 #define NV_CTRL_STRING_VCSC_PSU_INFO 32 /* R---V */
3708
3709
3710 /*
3711 * NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME - query the name for the specified
3712 * NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be queried with existing
3713 * interfaces, XNVCTRLQueryStringAttribute() should be used, and the video
3714 * format specified in the display_mask field; eg:
3715 *
3716 * XNVCTRLQueryStringAttribute(dpy,
3717 * screen,
3718 * NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296,
3719 * NV_CTRL_GVIO_VIDEO_FORMAT_NAME,
3720 * &name);
3721 */
3722
3723 #define NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME 33 /* R--GI */
3724
3725 /*
3726 * The following is deprecated; use NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME,
3727 * instead
3728 */
3729 #define NV_CTRL_STRING_GVO_VIDEO_FORMAT_NAME 33 /* R--- */
3730
3731
3732 /*
3733 * NV_CTRL_STRING_GPU_CURRENT_CLOCK_FREQS - returns a string with the
3734 * associated NV Clock, Memory Clock and Processor Clock values.
3735 *
3736 * Current valid tokens are "nvclock", "memclock", and "processorclock".
3737 * Not all tokens will be reported on all GPUs, and additional tokens
3738 * may be added in the future.
3739 *
3740 * Clock values are returned as a comma-separated list of
3741 * "token=value" pairs.
3742 * Valid tokens:
3743 *
3744 * Token Value
3745 * "nvclock" integer - the GPU clocks (in MHz) for the current
3746 * perf level
3747 * "memclock" integer - the memory clocks (in MHz) for the current
3748 * perf level
3749 * "processorclock" integer - the processor clocks (in MHz) for the perf level
3750 *
3751 *
3752 * Example:
3753 *
3754 * nvclock=459, memclock=400, processorclock=918
3755 *
3756 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
3757 * using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3758 */
3759
3760 #define NV_CTRL_STRING_GPU_CURRENT_CLOCK_FREQS 34 /* RW-G */
3761
3762 /*
3763 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_HARDWARE_REVISION - Returns the
3764 * hardware revision of the 3D Vision Pro transceiver.
3765 */
3766 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_HARDWARE_REVISION 35 /* R--T * /
3767
3768 /*
3769 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_A - Returns the
3770 * firmware version of chip A of the 3D Vision Pro transceiver.
3771 */
3772 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_A 36 /* R--T * /
3773
3774 /*
3775 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_A - Returns the
3776 * date of the firmware of chip A of the 3D Vision Pro transceiver.
3777 */
3778 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_A 37 /* R--T * /
3779
3780 /*
3781 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_B - Returns the
3782 * firmware version of chip B of the 3D Vision Pro transceiver.
3783 */
3784 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_B 38 /* R--T * /
3785
3786 /*
3787 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_B - Returns the
3788 * date of the firmware of chip B of the 3D Vision Pro transceiver.
3789 */
3790 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_B 39 /* R--T * /
3791
3792 /*
3793 * NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_ADDRESS - Returns the RF address
3794 * of the 3D Vision Pro transceiver.
3795 */
3796 #define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_ADDRESS 40 /* R--T * /
3797
3798 /*
3799 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_VERSION_A - Returns the
3800 * firmware version of chip A of the glasses.
3801 * Use the display_mask parameter to specify the glasses id.
3802 */
3803 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_VERSION_A 41 /* R--T * /
3804
3805 /*
3806 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_DATE_A - Returns the
3807 * date of the firmware of chip A of the glasses.
3808 * Use the display_mask parameter to specify the glasses id.
3809 */
3810 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_DATE_A 42 /* R--T * /
3811
3812 /*
3813 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_ADDRESS - Returns the RF address
3814 * of the glasses.
3815 * Use the display_mask parameter to specify the glasses id.
3816 */
3817 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_ADDRESS 43 /* R--T * /
3818
3819 /*
3820 * NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME - Controls the name the
3821 * glasses should use.
3822 * Use the display_mask parameter to specify the glasses id.
3823 * Glasses' name should start and end with an alpha-numeric character.
3824 */
3825 #define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME 44 /* RW-T * /
3826
3827
3828 #define NV_CTRL_STRING_LAST_ATTRIBUTE \
3829 NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME
3830
3831
3832 /**************************************************************************/
3833
3834 /*
3835 * Binary Data Attributes:
3836 *
3837 * Binary data attributes can be queryied through the XNVCTRLQueryBinaryData()
3838 * and XNVCTRLQueryTargetBinaryData() function calls.
3839 *
3840 * There are currently no binary data attributes that can be set.
3841 *
3842 * Unless otherwise noted, all Binary data attributes can be queried
3843 * using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take
3844 * an NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried through
3845 * XNVCTRLQueryBinaryData() (Since an X Screen target is assumed).
3846 */
3847
3848
3849 /*
3850 * NV_CTRL_BINARY_DATA_EDID - Returns a display device's EDID information
3851 * data.
3852 *
3853 * This attribute may be queried through XNVCTRLQueryTargetBinaryData()
3854 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3855 */
3856
3857 #define NV_CTRL_BINARY_DATA_EDID 0 /* R-DG */
3858
3859
3860 /*
3861 * NV_CTRL_BINARY_DATA_MODELINES - Returns a display device's supported
3862 * ModeLines. ModeLines are returned in a buffer, separated by a single
3863 * '\0' and terminated by two consecutive '\0' s like so:
3864 *
3865 * "ModeLine 1\0ModeLine 2\0ModeLine 3\0Last ModeLine\0\0"
3866 *
3867 * This attribute may be queried through XNVCTRLQueryTargetBinaryData()
3868 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
3869 *
3870 * Each ModeLine string may be prepended with a comma-separated list
3871 * of "token=value" pairs, separated from the ModeLine string with a
3872 * "::". Valid tokens:
3873 *
3874 * Token Value
3875 * "source" "xserver" - the ModeLine is from the core X server
3876 * "xconfig" - the ModeLine was specified in the X config file
3877 * "builtin" - the NVIDIA driver provided this builtin ModeLine
3878 * "vesa" - this is a VESA standard ModeLine
3879 * "edid" - the ModeLine was in the display device's EDID
3880 * "nv-control" - the ModeLine was specified via NV-CONTROL
3881 *
3882 * "xconfig-name" - for ModeLines that were specified in the X config
3883 * file, this is the name the X config file
3884 * gave for the ModeLine.
3885 *
3886 * Note that a ModeLine can have several sources; the "source" token
3887 * can appear multiple times in the "token=value" pairs list.
3888 * Additional source values may be specified in the future.
3889 *
3890 * Additional tokens may be added in the future, so it is recommended
3891 * that any token parser processing the returned string from
3892 * NV_CTRL_BINARY_DATA_MODELINES be implemented to gracefully ignore
3893 * unrecognized tokens.
3894 *
3895 * E.g.,
3896 *
3897 * "source=xserver, source=vesa, source=edid :: "1024x768_70" 75.0 1024 1048 1 184 1328 768 771 777 806 -HSync -VSync"
3898 * "source=xconfig, xconfig-name=1600x1200_60.00 :: "1600x1200_60_0" 161.0 160 0 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync"
3899 */
3900
3901 #define NV_CTRL_BINARY_DATA_MODELINES 1 /* R-DG */
3902
3903
3904 /*
3905 * NV_CTRL_BINARY_DATA_METAMODES - Returns an X Screen's supported
3906 * MetaModes. MetaModes are returned in a buffer separated by a
3907 * single '\0' and terminated by two consecutive '\0' s like so:
3908 *
3909 * "MetaMode 1\0MetaMode 2\0MetaMode 3\0Last MetaMode\0\0"
3910 *
3911 * The MetaMode string should have the same syntax as the MetaMode X
3912 * configuration option, as documented in the NVIDIA driver README.
3913
3914 * Each MetaMode string may be prepended with a comma-separated list
3915 * of "token=value" pairs, separated from the MetaMode string with
3916 * "::". Currently, valid tokens are:
3917 *
3918 * Token Value
3919 * "id" <number> - the id of this MetaMode; this is stored in
3920 * the Vertical Refresh field, as viewed
3921 * by the XRandR and XF86VidMode X *
3922 * extensions.
3923 *
3924 * "switchable" "yes"/"no" - whether this MetaMode may be switched to via
3925 * ctrl-alt-+/-; Implicit MetaModes (see
3926 * the "IncludeImplicitMetaModes" X
3927 * config option), for example, are not
3928 * normally made available through
3929 * ctrl-alt-+/-.
3930 *
3931 * "source" "xconfig" - the MetaMode was specified in the X
3932 * config file.
3933 * "implicit" - the MetaMode was implicitly added; see the
3934 * "IncludeImplicitMetaModes" X config option
3935 * for details.
3936 * "nv-control" - the MetaMode was added via the NV-CONTROL X
3937 * extension to the currently running X server.
3938 *
3939 * Additional tokens may be added in the future, so it is recommended
3940 * that any token parser processing the returned string from
3941 * NV_CTRL_BINARY_DATA_METAMODES be implemented to gracefully ignore
3942 * unrecognized tokens.
3943 *
3944 * E.g.,
3945 *
3946 * "id=50, switchable=yes, source=xconfig :: CRT-0: 1024x768 @1024x768 +0+0"
3947 */
3948
3949 #define NV_CTRL_BINARY_DATA_METAMODES 2 /* R-D- */
3950
3951
3952 /*
3953 * NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU - Returns the list of X
3954 * screens currently driven by the given GPU.
3955 *
3956 * The format of the returned data is:
3957 *
3958 * 4 CARD32 number of screens
3959 * 4 * n CARD32 screen indices
3960 *
3961 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
3962 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
3963 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
3964 */
3965
3966 #define NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU 3 /* R-DG */
3967
3968
3969 /*
3970 * NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN - Returns the list of GPUs
3971 * currently in use by the given X screen.
3972 *
3973 * The format of the returned data is:
3974 *
3975 * 4 CARD32 number of GPUs
3976 * 4 * n CARD32 GPU indices
3977 */
3978
3979 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN 4 /* R--- */
3980
3981
3982 /*
3983 * NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK - Returns the list of
3984 * GPUs currently connected to the given frame lock board.
3985 *
3986 * The format of the returned data is:
3987 *
3988 * 4 CARD32 number of GPUs
3989 * 4 * n CARD32 GPU indices
3990 *
3991 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
3992 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target. This attribute cannot be
3993 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
3994 */
3995
3996 #define NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK 5 /* R-DF */
3997
3998
3999 /*
4000 * NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT - Returns the Display Device's
4001 * viewport box into the given X Screen (in X Screen coordinates.)
4002 *
4003 * The format of the returned data is:
4004 *
4005 * 4 CARD32 Offset X
4006 * 4 CARD32 Offset Y
4007 * 4 CARD32 Width
4008 * 4 CARD32 Height
4009 */
4010
4011 #define NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT 6 /* R-DG */
4012
4013
4014 /*
4015 * NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU - Returns the list of
4016 * Framelock devices currently connected to the given GPU.
4017 *
4018 * The format of the returned data is:
4019 *
4020 * 4 CARD32 number of Framelocks
4021 * 4 * n CARD32 Framelock indices
4022 *
4023 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4024 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4025 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
4026 */
4027
4028 #define NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU 7 /* R-DG */
4029
4030
4031 /*
4032 * NV_CTRL_BINARY_DATA_GPUS_USING_VCSC - Returns the list of
4033 * GPU devices connected to the given VCS.
4034 *
4035 * The format of the returned data is:
4036 *
4037 * 4 CARD32 number of GPUs
4038 * 4 * n CARD32 GPU indices
4039 *
4040 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4041 * using a NV_CTRL_TARGET_TYPE_VCSC target. This attribute cannot be
4042 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN and cannot be queried using
4043 * a NV_CTRL_TARGET_TYPE_X_GPU
4044 */
4045
4046 #define NV_CTRL_BINARY_DATA_GPUS_USING_VCSC 8 /* R-DV */
4047
4048
4049 /*
4050 * NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU - Returns the VCSC device
4051 * that is controlling the given GPU.
4052 *
4053 * The format of the returned data is:
4054 *
4055 * 4 CARD32 number of VCS (always 1)
4056 * 4 * n CARD32 VCS indices
4057 *
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
4061 */
4062
4063 #define NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU 9 /* R-DG */
4064
4065
4066 /*
4067 * NV_CTRL_BINARY_DATA_COOLERS_USED_BY_GPU - Returns the coolers that
4068 * are cooling the given GPU.
4069 *
4070 * The format of the returned data is:
4071 *
4072 * 4 CARD32 number of COOLER
4073 * 4 * n CARD32 COOLER indices
4074 *
4075 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4076 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4077 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN
4078 */
4079
4080 #define NV_CTRL_BINARY_DATA_COOLERS_USED_BY_GPU 10 /* R-DG */
4081
4082
4083 /*
4084 * NV_CTRL_BINARY_DATA_GPUS_USED_BY_LOGICAL_XSCREEN - Returns the list of
4085 * GPUs currently driving the given X screen. If Xinerama is enabled, this
4086 * will return all GPUs that are driving any X screen.
4087 *
4088 * The format of the returned data is:
4089 *
4090 * 4 CARD32 number of GPUs
4091 * 4 * n CARD32 GPU indices
4092 */
4093
4094 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_LOGICAL_XSCREEN 11 /* R--- */
4095
4096 /*
4097 * NV_CTRL_BINARY_DATA_THERMAL_SENSORS_USED_BY_GPU - Returns the sensors that
4098 * are attached to the given GPU.
4099 *
4100 * The format of the returned data is:
4101 *
4102 * 4 CARD32 number of SENSOR
4103 * 4 * n CARD32 SENSOR indices
4104 *
4105 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4106 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be
4107 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN
4108 */
4109
4110 #define NV_CTRL_BINARY_DATA_THERMAL_SENSORS_USED_BY_GPU 12 /* R--G */
4111
4112 /*
4113 * NV_CTRL_BINARY_DATA_GLASSES_PAIRED_TO_3D_VISION_PRO_TRANSCEIVER - Returns
4114 * the id of the glasses that are currently paired to the given
4115 * 3D Vision Pro transceiver.
4116 *
4117 * The format of the returned data is:
4118 *
4119 * 4 CARD32 number of glasses
4120 * 4 * n CARD32 id of glasses
4121 *
4122 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4123 * using a NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER target.
4124 */
4125 #define NV_CTRL_BINARY_DATA_GLASSES_PAIRED_TO_3D_VISION_PRO_TRANSCEIVER 13 /* R- -T */
4126
4127 /*
4128 * NV_CTRL_BINARY_DATA_DISPLAY_TARGETS - Returns all the display devices
4129 * currently connected to any GPU on the X server.
4130 *
4131 * The format of the returned data is:
4132 *
4133 * 4 CARD32 number of display devices
4134 * 4 * n CARD32 display device indices
4135 *
4136 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData().
4137 */
4138
4139 #define NV_CTRL_BINARY_DATA_DISPLAY_TARGETS 14 /* R--- */
4140
4141 /*
4142 * NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU - Returns the list of
4143 * display devices that are connected to the GPU target.
4144 *
4145 * The format of the returned data is:
4146 *
4147 * 4 CARD32 number of display devices
4148 * 4 * n CARD32 display device indices
4149 *
4150 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
4151 * using a NV_CTRL_TARGET_TYPE_GPU target.
4152 */
4153
4154 #define NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU 15 /* R--G */
4155
4156
4157 #define NV_CTRL_BINARY_DATA_LAST_ATTRIBUTE \
4158 NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU
4159
4160
4161 /**************************************************************************/
4162
4163 /*
4164 * String Operation Attributes:
4165 *
4166 * These attributes are used with the XNVCTRLStringOperation()
4167 * function; a string is specified as input, and a string is returned
4168 * as output.
4169 *
4170 * Unless otherwise noted, all attributes can be operated upon using
4171 * an NV_CTRL_TARGET_TYPE_X_SCREEN target.
4172 */
4173
4174
4175 /*
4176 * NV_CTRL_STRING_OPERATION_ADD_METAMODE - provide a MetaMode string
4177 * as input, and returns a string containing comma-separated list of
4178 * "token=value" pairs as output. Currently, the only output token is
4179 * "id", which indicates the id that was assigned to the MetaMode.
4180 *
4181 * All ModeLines referenced in the MetaMode must already exist for
4182 * each display device (as returned by the
4183 * NV_CTRL_BINARY_DATA_MODELINES attribute).
4184 *
4185 * The MetaMode string should have the same syntax as the MetaMode X
4186 * configuration option, as documented in the NVIDIA driver README.
4187 *
4188 * The input string can optionally be prepended with a string of
4189 * comma-separated "token=value" pairs, separated from the MetaMode
4190 * string by "::". Currently, the only valid token is "index" which
4191 * indicates the insertion index for the MetaMode.
4192 *
4193 * E.g.,
4194 *
4195 * Input: "index=5 :: 1600x1200+0+0, 1600x1200+1600+0"
4196 * Output: "id=58"
4197 *
4198 * which causes the MetaMode to be inserted at position 5 in the
4199 * MetaMode list (all entries after 5 will be shifted down one slot in
4200 * the list), and the X server's containing mode stores 58 as the
4201 * VRefresh, so that the MetaMode can be uniquely identifed through
4202 * XRandR and XF86VidMode.
4203 */
4204
4205 #define NV_CTRL_STRING_OPERATION_ADD_METAMODE 0
4206
4207
4208 /*
4209 * NV_CTRL_STRING_OPERATION_GTF_MODELINE - provide as input a string
4210 * of comma-separated "token=value" pairs, and returns a ModeLine
4211 * string, computed using the GTF formula using the parameters from
4212 * the input string. Valid tokens for the input string are "width",
4213 * "height", and "refreshrate".
4214 *
4215 * E.g.,
4216 *
4217 * Input: "width=1600, height=1200, refreshrate=60"
4218 * Output: "160.96 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync"
4219 *
4220 * This operation does not have any impact on any display device's
4221 * modePool, and the ModeLine is not validated; it is simply intended
4222 * for generating ModeLines.
4223 */
4224
4225 #define NV_CTRL_STRING_OPERATION_GTF_MODELINE 1
4226
4227
4228 /*
4229 * NV_CTRL_STRING_OPERATION_CVT_MODELINE - provide as input a string
4230 * of comma-separated "token=value" pairs, and returns a ModeLine
4231 * string, computed using the CVT formula using the parameters from
4232 * the input string. Valid tokens for the input string are "width",
4233 * "height", "refreshrate", and "reduced-blanking". The
4234 * "reduced-blanking" argument can be "0" or "1", to enable or disable
4235 * use of reduced blanking for the CVT formula.
4236 *
4237 * E.g.,
4238 *
4239 * Input: "width=1600, height=1200, refreshrate=60, reduced-blanking=1"
4240 * Output: "130.25 1600 1648 1680 1760 1200 1203 1207 1235 +HSync -VSync"
4241 *
4242 * This operation does not have any impact on any display device's
4243 * modePool, and the ModeLine is not validated; it is simply intended
4244 * for generating ModeLines.
4245 */
4246
4247 #define NV_CTRL_STRING_OPERATION_CVT_MODELINE 2
4248
4249
4250 /*
4251 * NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL - build a ModePool for the
4252 * specified display device on the specified target (either an X
4253 * screen or a GPU). This is typically used to generate a ModePool
4254 * for a display device on a GPU on which no X screens are present.
4255 *
4256 * Currently, a display device's ModePool is static for the life of
4257 * the X server, so XNVCTRLStringOperation will return FALSE if
4258 * requested to build a ModePool on a display device that already has
4259 * a ModePool.
4260 *
4261 * The string input to BUILD_MODEPOOL may be NULL. If it is not NULL,
4262 * then it is interpreted as a double-colon ("::") separated list
4263 * of "option=value" pairs, where the options and the syntax of their
4264 * values are the X configuration options that impact the behavior of
4265 * modePool construction; namely:
4266 *
4267 * "ModeValidation"
4268 * "HorizSync"
4269 * "VertRefresh"
4270 * "FlatPanelProperties"
4271 * "TVStandard"
4272 * "ExactModeTimingsDVI"
4273 * "UseEdidFreqs"
4274 *
4275 * An example input string might look like:
4276 *
4277 * "ModeValidation=NoVesaModes :: HorizSync=50-110 :: VertRefresh=50-150"
4278 *
4279 * This request currently does not return a string.
4280 */
4281
4282 #define NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL 3 /* DG */
4283
4284
4285 /*
4286 * NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS - Configure the streams-
4287 * to-jack+channel topology for a GVI (Graphics capture board).
4288 *
4289 * The string input to GVI_CONFIGURE_STREAMS may be NULL. If this is the
4290 * case, then the current topology is returned.
4291 *
4292 * If the input string to GVI_CONFIGURE_STREAMS is not NULL, the string
4293 * is interpreted as a semicolon (";") separated list of comma-separated
4294 * lists of "option=value" pairs that define a stream's composition. The
4295 * available options and their values are:
4296 *
4297 * "stream": Defines which stream this comma-separated list describes.
4298 * Valid values are the integers between 0 and
4299 * NV_CTRL_GVI_NUM_STREAMS-1 (inclusive).
4300 *
4301 * "linkN": Defines a jack+channel pair to use for the given link N.
4302 * Valid options are the string "linkN", where N is an integer
4303 * between 0 and NV_CTRL_GVI_MAX_LINKS_PER_STREAM-1 (inclusive).
4304 * Valid values for these options are strings of the form
4305 * "jackX" and/or "jackX.Y", where X is an integer between 0 and
4306 * NV_CTRL_GVI_NUM_JACKS-1 (inclusive), and Y (optional) is an
4307 * integer between 0 and NV_CTRL_GVI_MAX_CHANNELS_PER_JACK-1
4308 * (inclusive).
4309 *
4310 * An example input string might look like:
4311 *
4312 * "stream=0, link0=jack0, link1=jack1; stream=1, link0=jack2.1"
4313 *
4314 * This example specifies two streams, stream 0 and stream 1. Stream 0
4315 * is defined to capture link0 data from the first channel (channel 0) of
4316 * BNC jack 0 and link1 data from the first channel of BNC jack 1. The
4317 * second stream (Stream 1) is defined to capture link0 data from channel 1
4318 * (second channel) of BNC jack 2.
4319 *
4320 * This example shows a possible configuration for capturing 3G input:
4321 *
4322 * "stream=0, link0=jack0.0, link1=jack0.1"
4323 *
4324 * Applications should query the following attributes to determine
4325 * possible combinations:
4326 *
4327 * NV_CTRL_GVI_MAX_STREAMS
4328 * NV_CTRL_GVI_MAX_LINKS_PER_STREAM
4329 * NV_CTRL_GVI_NUM_JACKS
4330 * NV_CTRL_GVI_MAX_CHANNELS_PER_JACK
4331 *
4332 * Note: A jack+channel pair can only be tied to one link/stream.
4333 *
4334 * Upon successful configuration or querying of this attribute, a string
4335 * representing the current topology for all known streams on the device
4336 * will be returned. On failure, NULL is returned.
4337 *
4338 * Note: Setting this attribute may also result in the following
4339 * NV-CONTROL attributes being reset on the GVI device (to ensure
4340 * the configuration remains valid):
4341 * NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT
4342 * NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT
4343 * NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING
4344 */
4345
4346 #define NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS 4 /* RW-I */
4347
4348
4349 #define NV_CTRL_STRING_OPERATION_LAST_ATTRIBUTE \
4350 NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS
4351
4352
4353
4354
4355 /**************************************************************************/
4356
4357 /*
4358 * CTRLAttributeValidValuesRec -
4359 *
4360 * structure and related defines used by
4361 * XNVCTRLQueryValidAttributeValues() to describe the valid values of
4362 * a particular attribute. The type field will be one of:
4363 *
4364 * ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there
4365 * is no fixed range of valid values.
4366 *
4367 * ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value,
4368 * interpretted as a bitmask.
4369 *
4370 * ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are
4371 * either 1 (on/true) or 0 (off/false).
4372 *
4373 * ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value
4374 * between NVCTRLAttributeValidValues.u.range.min and
4375 * NVCTRLAttributeValidValues.u.range.max (inclusive).
4376 *
4377 * ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain
4378 * integer values, indicated by which bits in
4379 * NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit
4380 * 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid
4381 * value, etc). This is useful for attributes like NV_CTRL_FSAA_MODE,
4382 * which can only have certain values, depending on GPU.
4383 *
4384 * ATTRIBUTE_TYPE_64BIT_INTEGER : the attribute is a 64 bit integer value;
4385 * there is no fixed range of valid values.
4386 *
4387 * ATTRIBUTE_TYPE_STRING : the attribute is a string value; there is no fixed
4388 * range of valid values.
4389 *
4390 * ATTRIBUTE_TYPE_BINARY_DATA : the attribute is binary data; there is
4391 * no fixed range of valid values.
4392 *
4393 * ATTRIBUTE_TYPE_STRING_OPERATION : the attribute is a string; there is
4394 * no fixed range of valid values.
4395 *
4396 *
4397 * The permissions field of NVCTRLAttributeValidValuesRec is a bitmask
4398 * that may contain:
4399 *
4400 * ATTRIBUTE_TYPE_READ - Attribute may be read (queried.)
4401 * ATTRIBUTE_TYPE_WRITE - Attribute may be written to (set.)
4402 * ATTRIBUTE_TYPE_DISPLAY - Attribute is valid for display target types
4403 * (requires a display_mask if queried via
4404 * a GPU or X screen.)
4405 * ATTRIBUTE_TYPE_GPU - Attribute is valid for GPU target types.
4406 * ATTRIBUTE_TYPE_FRAMELOCK - Attribute is valid for Frame Lock target types.
4407 * ATTRIBUTE_TYPE_X_SCREEN - Attribute is valid for X Screen target types.
4408 * ATTRIBUTE_TYPE_XINERAMA - Attribute will be made consistent for all
4409 * X Screens when the Xinerama extension is enabled.
4410 * ATTRIBUTE_TYPE_VCSC - Attribute is valid for Visual Computing System
4411 * target types.
4412 * ATTRIBUTE_TYPE_GVI - Attribute is valid for Graphics Video In target
4413 * types.
4414 * ATTRIBUTE_TYPE_COOLER - Attribute is valid for Cooler target types.
4415 * ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER - Attribute is valid for 3D Vision
4416 * Pro Transceiver target types.
4417 *
4418 * See 'Key to Integer Attribute "Permissions"' at the top of this
4419 * file for a description of what these permission bits mean.
4420 */
4421
4422 #define ATTRIBUTE_TYPE_UNKNOWN 0
4423 #define ATTRIBUTE_TYPE_INTEGER 1
4424 #define ATTRIBUTE_TYPE_BITMASK 2
4425 #define ATTRIBUTE_TYPE_BOOL 3
4426 #define ATTRIBUTE_TYPE_RANGE 4
4427 #define ATTRIBUTE_TYPE_INT_BITS 5
4428 #define ATTRIBUTE_TYPE_64BIT_INTEGER 6
4429 #define ATTRIBUTE_TYPE_STRING 7
4430 #define ATTRIBUTE_TYPE_BINARY_DATA 8
4431 #define ATTRIBUTE_TYPE_STRING_OPERATION 9
4432
4433 #define ATTRIBUTE_TYPE_READ 0x001
4434 #define ATTRIBUTE_TYPE_WRITE 0x002
4435 #define ATTRIBUTE_TYPE_DISPLAY 0x004
4436 #define ATTRIBUTE_TYPE_GPU 0x008
4437 #define ATTRIBUTE_TYPE_FRAMELOCK 0x010
4438 #define ATTRIBUTE_TYPE_X_SCREEN 0x020
4439 #define ATTRIBUTE_TYPE_XINERAMA 0x040
4440 #define ATTRIBUTE_TYPE_VCSC 0x080
4441 #define ATTRIBUTE_TYPE_GVI 0x100
4442 #define ATTRIBUTE_TYPE_COOLER 0x200
4443 #define ATTRIBUTE_TYPE_THERMAL_SENSOR 0x400
4444 #define ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER 0x800
4445
4446 #define ATTRIBUTE_TYPE_ALL_TARGETS \
4447 ((ATTRIBUTE_TYPE_DISPLAY) | \
4448 (ATTRIBUTE_TYPE_GPU) | \
4449 (ATTRIBUTE_TYPE_FRAMELOCK) | \
4450 (ATTRIBUTE_TYPE_X_SCREEN) | \
4451 (ATTRIBUTE_TYPE_VCSC) | \
4452 (ATTRIBUTE_TYPE_GVI) | \
4453 (ATTRIBUTE_TYPE_COOLER) | \
4454 (ATTRIBUTE_TYPE_THERMAL_SENSOR) | \
4455 (ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER))
4456
4457 typedef struct _NVCTRLAttributeValidValues {
4458 int type;
4459 union {
4460 struct {
4461 int64_t min;
4462 int64_t max;
4463 } range;
4464 struct {
4465 unsigned int ints;
4466 } bits;
4467 } u;
4468 unsigned int permissions;
4469 } NVCTRLAttributeValidValuesRec;
4470
4471 typedef struct _NVCTRLAttributePermissions {
4472 int type;
4473 unsigned int permissions;
4474 } NVCTRLAttributePermissionsRec;
4475
4476
4477 /**************************************************************************/
4478
4479 /*
4480 * NV-CONTROL X event notification.
4481 *
4482 * To receive X event notifications dealing with NV-CONTROL, you should
4483 * call XNVCtrlSelectNotify() with one of the following set as the type
4484 * of event to receive (see NVCtrlLib.h for more information):
4485 */
4486
4487 #define ATTRIBUTE_CHANGED_EVENT 0
4488 #define TARGET_ATTRIBUTE_CHANGED_EVENT 1
4489 #define TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT 2
4490 #define TARGET_STRING_ATTRIBUTE_CHANGED_EVENT 3
4491 #define TARGET_BINARY_ATTRIBUTE_CHANGED_EVENT 4
4492
4493
4494 #endif /* __NVCTRL_H */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698