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