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