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