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