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