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

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

Powered by Google App Engine
This is Rietveld 408576698