00001 /* 00002 * Copyright (c) 2008 NVIDIA, Corporation 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining a copy 00005 * of this software and associated documentation files (the "Software"), to deal 00006 * in the Software without restriction, including without limitation the rights 00007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00008 * copies of the Software, and to permit persons to whom the Software is 00009 * furnished to do so, subject to the following conditions: 00010 * 00011 * The above copyright notice and this permission notice (including the next 00012 * paragraph) shall be included in all copies or substantial portions of the 00013 * Software. 00014 * 00015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 00021 * SOFTWARE. 00022 */ 00023 00024 #ifndef __NVCTRL_H 00025 #define __NVCTRL_H 00026 00027 00028 /**************************************************************************/ 00029 00030 /* 00031 * Attribute Targets 00032 * 00033 * Targets define attribute groups. For example, some attributes are only 00034 * valid to set on a GPU, others are only valid when talking about an 00035 * X Screen. Target types are then what is used to identify the target 00036 * group of the attribute you wish to set/query. 00037 * 00038 * Here are the supported target types: 00039 */ 00040 00041 #define NV_CTRL_TARGET_TYPE_X_SCREEN 0 00042 #define NV_CTRL_TARGET_TYPE_GPU 1 00043 #define NV_CTRL_TARGET_TYPE_FRAMELOCK 2 00044 #define NV_CTRL_TARGET_TYPE_VCSC 3 /* Visual Computing System */ 00045 00046 00047 /**************************************************************************/ 00048 00049 /* 00050 * Attributes 00051 * 00052 * Some attributes may only be read; some may require a display_mask 00053 * argument and others may be valid only for specific target types. 00054 * This information is encoded in the "permission" comment after each 00055 * attribute #define, and can be queried at run time with 00056 * XNVCTRLQueryValidAttributeValues() and/or 00057 * XNVCTRLQueryValidTargetAttributeValues() 00058 * 00059 * Key to Integer Attribute "Permissions": 00060 * 00061 * R: The attribute is readable (in general, all attributes will be 00062 * readable) 00063 * 00064 * W: The attribute is writable (attributes may not be writable for 00065 * various reasons: they represent static system information, they 00066 * can only be changed by changing an XF86Config option, etc). 00067 * 00068 * D: The attribute requires the display mask argument. The 00069 * attributes NV_CTRL_CONNECTED_DISPLAYS and NV_CTRL_ENABLED_DISPLAYS 00070 * will be a bitmask of what display devices are connected and what 00071 * display devices are enabled for use in X, respectively. Each bit 00072 * in the bitmask represents a display device; it is these bits which 00073 * should be used as the display_mask when dealing with attributes 00074 * designated with "D" below. For attributes that do not require the 00075 * display mask, the argument is ignored. 00076 * 00077 * G: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GPU 00078 * target type via XNVCTRLQueryTargetAttribute(). 00079 * 00080 * F: The attribute may be queried using an NV_CTRL_TARGET_TYPE_FRAMELOCK 00081 * target type via XNVCTRLQueryTargetAttribute(). 00082 * 00083 * X: When Xinerama is enabled, this attribute is kept consistent across 00084 * all Physical X Screens; Assignment of this attribute will be 00085 * broadcast by the NVIDIA X Driver to all X Screens. 00086 * 00087 * V: The attribute may be queried using an NV_CTRL_TARGET_TYPE_VCSC 00088 * target type via XNVCTRLQueryTargetXXXAttribute(). 00089 * 00090 * NOTE: Unless mentioned otherwise, all attributes may be queried using 00091 * an NV_CTRL_TARGET_TYPE_X_SCREEN target type via 00092 * XNVCTRLQueryTargetAttribute(). 00093 */ 00094 00095 00096 /**************************************************************************/ 00097 00098 /* 00099 * Integer attributes: 00100 * 00101 * Integer attributes can be queried through the XNVCTRLQueryAttribute() and 00102 * XNVCTRLQueryTargetAttribute() function calls. 00103 * 00104 * Integer attributes can be set through the XNVCTRLSetAttribute() and 00105 * XNVCTRLSetTargetAttribute() function calls. 00106 * 00107 * Unless otherwise noted, all integer attributes can be queried/set 00108 * using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot 00109 * take an NV_CTRL_TARGET_TYPE_X_SCREEN also cannot be queried/set through 00110 * XNVCTRLQueryAttribute()/XNVCTRLSetAttribute() (Since these assume 00111 * an X Screen target). 00112 */ 00113 00114 00115 /* 00116 * NV_CTRL_FLATPANEL_SCALING - the current flat panel scaling state; 00117 * possible values are: 00118 * 00119 * 0: default (the driver will use whatever state is current) 00120 * 1: native (the driver will use the panel's scaler, if possible) 00121 * 2: scaled (the driver will use the GPU's scaler, if possible) 00122 * 3: centered (the driver will center the image) 00123 * 4: aspect scaled (scale with the GPU's scaler, but keep the aspect 00124 * ratio correct) 00125 * 00126 * USAGE NOTE: This attribute has been deprecated in favor of the new 00127 * NV_CTRL_FLATPANEL_GPU_SCALING attribute. 00128 */ 00129 00130 #define NV_CTRL_FLATPANEL_SCALING 2 /* RWDG */ 00131 #define NV_CTRL_FLATPANEL_SCALING_DEFAULT 0 00132 #define NV_CTRL_FLATPANEL_SCALING_NATIVE 1 00133 #define NV_CTRL_FLATPANEL_SCALING_SCALED 2 00134 #define NV_CTRL_FLATPANEL_SCALING_CENTERED 3 00135 #define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED 4 00136 00137 00138 /* 00139 * NV_CTRL_FLATPANEL_DITHERING - the current flat panel dithering 00140 * state; possible values are: 00141 * 00142 * 0: default (the driver will decide when to dither) 00143 * 1: enabled (the driver will always dither when possible) 00144 * 2: disabled (the driver will never dither) 00145 * 00146 * USAGE NOTE: This attribute had been deprecated. 00147 */ 00148 00149 #define NV_CTRL_FLATPANEL_DITHERING 3 /* RWDG */ 00150 #define NV_CTRL_FLATPANEL_DITHERING_DEFAULT 0 00151 #define NV_CTRL_FLATPANEL_DITHERING_ENABLED 1 00152 #define NV_CTRL_FLATPANEL_DITHERING_DISABLED 2 00153 00154 00155 /* 00156 * NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the 00157 * specified display device. 00158 */ 00159 00160 #define NV_CTRL_DIGITAL_VIBRANCE 4 /* RWDG */ 00161 00162 00163 /* 00164 * NV_CTRL_BUS_TYPE - returns the Bus type through which the GPU 00165 * driving the specified X screen is connected to the computer. 00166 */ 00167 00168 #define NV_CTRL_BUS_TYPE 5 /* R--G */ 00169 #define NV_CTRL_BUS_TYPE_AGP 0 00170 #define NV_CTRL_BUS_TYPE_PCI 1 00171 #define NV_CTRL_BUS_TYPE_PCI_EXPRESS 2 00172 #define NV_CTRL_BUS_TYPE_INTEGRATED 3 00173 00174 00175 /* 00176 * NV_CTRL_VIDEO_RAM - returns the total amount of memory available 00177 * to the specified GPU (or the GPU driving the specified X 00178 * screen). Note: if the GPU supports TurboCache(TM), the value 00179 * reported may exceed the amount of video memory installed on the 00180 * GPU. The value reported for integrated GPUs may likewise exceed 00181 * the amount of dedicated system memory set aside by the system 00182 * BIOS for use by the integrated GPU. 00183 */ 00184 00185 #define NV_CTRL_VIDEO_RAM 6 /* R--G */ 00186 00187 00188 /* 00189 * NV_CTRL_IRQ - returns the interrupt request line used by the GPU 00190 * driving the specified X screen. 00191 */ 00192 00193 #define NV_CTRL_IRQ 7 /* R--G */ 00194 00195 00196 /* 00197 * NV_CTRL_OPERATING_SYSTEM - returns the operating system on which 00198 * the X server is running. 00199 */ 00200 00201 #define NV_CTRL_OPERATING_SYSTEM 8 /* R--G */ 00202 #define NV_CTRL_OPERATING_SYSTEM_LINUX 0 00203 #define NV_CTRL_OPERATING_SYSTEM_FREEBSD 1 00204 #define NV_CTRL_OPERATING_SYSTEM_SUNOS 2 00205 00206 00207 /* 00208 * NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients. 00209 * This setting is only applied to OpenGL clients that are started 00210 * after this setting is applied. 00211 */ 00212 00213 #define NV_CTRL_SYNC_TO_VBLANK 9 /* RW-X */ 00214 #define NV_CTRL_SYNC_TO_VBLANK_OFF 0 00215 #define NV_CTRL_SYNC_TO_VBLANK_ON 1 00216 00217 00218 /* 00219 * NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL 00220 * clients; on some NVIDIA hardware, this can only be enabled or 00221 * disabled; on other hardware different levels of anisotropic 00222 * filtering can be specified. This setting is only applied to OpenGL 00223 * clients that are started after this setting is applied. 00224 */ 00225 00226 #define NV_CTRL_LOG_ANISO 10 /* RW-X */ 00227 00228 00229 /* 00230 * NV_CTRL_FSAA_MODE - the FSAA setting for OpenGL clients; possible 00231 * FSAA modes: 00232 * 00233 * NV_CTRL_FSAA_MODE_2x "2x Bilinear Multisampling" 00234 * NV_CTRL_FSAA_MODE_2x_5t "2x Quincunx Multisampling" 00235 * NV_CTRL_FSAA_MODE_15x15 "1.5 x 1.5 Supersampling" 00236 * NV_CTRL_FSAA_MODE_2x2 "2 x 2 Supersampling" 00237 * NV_CTRL_FSAA_MODE_4x "4x Bilinear Multisampling" 00238 * NV_CTRL_FSAA_MODE_4x_9t "4x Gaussian Multisampling" 00239 * NV_CTRL_FSAA_MODE_8x "2x Bilinear Multisampling by 4x Supersampling" 00240 * NV_CTRL_FSAA_MODE_16x "4x Bilinear Multisampling by 4x Supersampling" 00241 * NV_CTRL_FSAA_MODE_8xS "4x Multisampling by 2x Supersampling" 00242 * 00243 * This setting is only applied to OpenGL clients that are started 00244 * after this setting is applied. 00245 */ 00246 00247 #define NV_CTRL_FSAA_MODE 11 /* RW-X */ 00248 #define NV_CTRL_FSAA_MODE_NONE 0 00249 #define NV_CTRL_FSAA_MODE_2x 1 00250 #define NV_CTRL_FSAA_MODE_2x_5t 2 00251 #define NV_CTRL_FSAA_MODE_15x15 3 00252 #define NV_CTRL_FSAA_MODE_2x2 4 00253 #define NV_CTRL_FSAA_MODE_4x 5 00254 #define NV_CTRL_FSAA_MODE_4x_9t 6 00255 #define NV_CTRL_FSAA_MODE_8x 7 00256 #define NV_CTRL_FSAA_MODE_16x 8 00257 #define NV_CTRL_FSAA_MODE_8xS 9 00258 #define NV_CTRL_FSAA_MODE_8xQ 10 00259 #define NV_CTRL_FSAA_MODE_16xS 11 00260 #define NV_CTRL_FSAA_MODE_16xQ 12 00261 #define NV_CTRL_FSAA_MODE_32xS 13 00262 #define NV_CTRL_FSAA_MODE_MAX NV_CTRL_FSAA_MODE_32xS 00263 00264 00265 /* 00266 * NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL 00267 * clients. This setting is only applied to OpenGL clients that are 00268 * started after this setting is applied. 00269 */ 00270 00271 #define NV_CTRL_TEXTURE_SHARPEN 12 /* RW-X */ 00272 #define NV_CTRL_TEXTURE_SHARPEN_OFF 0 00273 #define NV_CTRL_TEXTURE_SHARPEN_ON 1 00274 00275 00276 /* 00277 * NV_CTRL_UBB - returns whether UBB is enabled for the specified X 00278 * screen. 00279 */ 00280 00281 #define NV_CTRL_UBB 13 /* R-- */ 00282 #define NV_CTRL_UBB_OFF 0 00283 #define NV_CTRL_UBB_ON 1 00284 00285 00286 /* 00287 * NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for 00288 * the specified X screen. 00289 */ 00290 00291 #define NV_CTRL_OVERLAY 14 /* R-- */ 00292 #define NV_CTRL_OVERLAY_OFF 0 00293 #define NV_CTRL_OVERLAY_ON 1 00294 00295 00296 /* 00297 * NV_CTRL_STEREO - returns whether stereo (and what type) is enabled 00298 * for the specified X screen. 00299 */ 00300 00301 #define NV_CTRL_STEREO 16 /* R-- */ 00302 #define NV_CTRL_STEREO_OFF 0 00303 #define NV_CTRL_STEREO_DDC 1 00304 #define NV_CTRL_STEREO_BLUELINE 2 00305 #define NV_CTRL_STEREO_DIN 3 00306 #define NV_CTRL_STEREO_TWINVIEW 4 00307 00308 00309 /* 00310 * NV_CTRL_EMULATE - controls OpenGL software emulation of future 00311 * NVIDIA GPUs. 00312 */ 00313 00314 #define NV_CTRL_EMULATE 17 /* RW- */ 00315 #define NV_CTRL_EMULATE_NONE 0 00316 00317 00318 /* 00319 * NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the 00320 * specified X screen. 00321 */ 00322 00323 #define NV_CTRL_TWINVIEW 18 /* R-- */ 00324 #define NV_CTRL_TWINVIEW_NOT_ENABLED 0 00325 #define NV_CTRL_TWINVIEW_ENABLED 1 00326 00327 00328 /* 00329 * NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating the last 00330 * cached state of the display devices connected to the GPU or GPU driving 00331 * the specified X screen. 00332 * 00333 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00334 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00335 */ 00336 00337 #define NV_CTRL_CONNECTED_DISPLAYS 19 /* R--G */ 00338 00339 00340 /* 00341 * NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what 00342 * display devices are enabled for use on the specified X screen or 00343 * GPU. 00344 * 00345 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00346 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00347 */ 00348 00349 #define NV_CTRL_ENABLED_DISPLAYS 20 /* R--G */ 00350 00351 /**************************************************************************/ 00352 /* 00353 * Integer attributes specific to configuring Frame Lock on boards that 00354 * support it. 00355 */ 00356 00357 00358 /* 00359 * NV_CTRL_FRAMELOCK - returns whether the underlying GPU supports 00360 * Frame Lock. All of the other frame lock attributes are only 00361 * applicable if NV_CTRL_FRAMELOCK is _SUPPORTED. 00362 * 00363 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00364 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00365 */ 00366 00367 #define NV_CTRL_FRAMELOCK 21 /* R--G */ 00368 #define NV_CTRL_FRAMELOCK_NOT_SUPPORTED 0 00369 #define NV_CTRL_FRAMELOCK_SUPPORTED 1 00370 00371 00372 /* 00373 * NV_CTRL_FRAMELOCK_MASTER - get/set which display device to use 00374 * as the frame lock master for the entire sync group. Note that only 00375 * one node in the sync group should be configured as the master. 00376 * 00377 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 00378 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 00379 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 00380 */ 00381 00382 #define NV_CTRL_FRAMELOCK_MASTER 22 /* RW-G */ 00383 00384 /* These are deprecated. NV_CTRL_FRAMELOCK_MASTER now takes and 00385 returns a display mask as value. */ 00386 #define NV_CTRL_FRAMELOCK_MASTER_FALSE 0 00387 #define NV_CTRL_FRAMELOCK_MASTER_TRUE 1 00388 00389 00390 /* 00391 * NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the 00392 * frame lock pulse, the falling edge of the frame lock pulse or both. 00393 * 00394 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00395 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00396 * target. 00397 */ 00398 00399 #define NV_CTRL_FRAMELOCK_POLARITY 23 /* RW-F */ 00400 #define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE 0x1 00401 #define NV_CTRL_FRAMELOCK_POLARITY_FALLING_EDGE 0x2 00402 #define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES 0x3 00403 00404 00405 /* 00406 * NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the frame lock pulse 00407 * and the GPU sync. This value must be multiplied by 00408 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION to determine the sync delay in 00409 * nanoseconds. 00410 * 00411 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00412 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00413 * target. 00414 * 00415 * USAGE NODE: NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX and 00416 * NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR are deprecated. 00417 * The Sync Delay _MAX and _FACTOR are different for different 00418 * GSync products and so, to be correct, the valid values for 00419 * NV_CTRL_FRAMELOCK_SYNC_DELAY must be queried to get the range 00420 * of acceptable sync delay values, and 00421 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION must be queried to 00422 * obtain the correct factor. 00423 */ 00424 00425 #define NV_CTRL_FRAMELOCK_SYNC_DELAY 24 /* RW-F */ 00426 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX 2047 // deprecated 00427 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR 7.81 // deprecated 00428 00429 00430 /* 00431 * NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses 00432 * between the frame lock sync generation (0 == sync every house sync); 00433 * this only applies to the master when receiving house sync. 00434 * 00435 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00436 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00437 * target. 00438 */ 00439 00440 #define NV_CTRL_FRAMELOCK_SYNC_INTERVAL 25 /* RW-F */ 00441 00442 00443 /* 00444 * NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0. 00445 * 00446 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00447 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00448 * target. 00449 */ 00450 00451 #define NV_CTRL_FRAMELOCK_PORT0_STATUS 26 /* R--F */ 00452 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT 0 00453 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT 1 00454 00455 00456 /* 00457 * NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1. 00458 * 00459 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00460 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00461 * target. 00462 */ 00463 00464 #define NV_CTRL_FRAMELOCK_PORT1_STATUS 27 /* R--F */ 00465 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT 0 00466 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT 1 00467 00468 00469 /* 00470 * NV_CTRL_FRAMELOCK_HOUSE_STATUS - returns whether or not the house 00471 * sync signal was detected on the BNC connector of the frame lock 00472 * board. 00473 * 00474 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00475 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00476 * target. 00477 */ 00478 00479 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS 28 /* R--F */ 00480 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED 0 00481 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED 1 00482 00483 00484 /* 00485 * NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of display 00486 * devices to the frame lock pulse as specified by previous calls to 00487 * NV_CTRL_FRAMELOCK_MASTER and NV_CTRL_FRAMELOCK_SLAVES. 00488 * 00489 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 00490 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 00491 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 00492 */ 00493 00494 #define NV_CTRL_FRAMELOCK_SYNC 29 /* RW-G */ 00495 #define NV_CTRL_FRAMELOCK_SYNC_DISABLE 0 00496 #define NV_CTRL_FRAMELOCK_SYNC_ENABLE 1 00497 00498 00499 /* 00500 * NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a slave frame lock 00501 * board is receiving sync (regardless of whether or not any display 00502 * devices are using the sync). 00503 * 00504 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00505 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00506 * target. 00507 */ 00508 00509 #define NV_CTRL_FRAMELOCK_SYNC_READY 30 /* R--F */ 00510 #define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE 0 00511 #define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE 1 00512 00513 00514 /* 00515 * NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo 00516 * signal is in sync with the frame lock stereo signal. 00517 * 00518 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00519 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN 00520 * target. 00521 */ 00522 00523 #define NV_CTRL_FRAMELOCK_STEREO_SYNC 31 /* R--G */ 00524 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE 0 00525 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE 1 00526 00527 00528 /* 00529 * NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync 00530 * group, tell the master to enable a test signal, then query port[01] 00531 * status and sync_ready on all slaves. When done, tell the master to 00532 * disable the test signal. Test signal should only be manipulated 00533 * while NV_CTRL_FRAMELOCK_SYNC is enabled. 00534 * 00535 * The TEST_SIGNAL is also used to reset the Universal Frame Count (as 00536 * returned by the glXQueryFrameCountNV() function in the 00537 * GLX_NV_swap_group extension). Note: for best accuracy of the 00538 * Universal Frame Count, it is recommended to toggle the TEST_SIGNAL 00539 * on and off after enabling frame lock. 00540 * 00541 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00542 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00543 */ 00544 00545 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL 32 /* RW-G */ 00546 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE 0 00547 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE 1 00548 00549 00550 /* 00551 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The frame lock boards are 00552 * cabled together using regular cat5 cable, connecting to rj45 ports 00553 * on the backplane of the card. There is some concern that users may 00554 * think these are ethernet ports and connect them to a 00555 * router/hub/etc. The hardware can detect this and will shut off to 00556 * prevent damage (either to itself or to the router). 00557 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if 00558 * ethernet is connected to one of the rj45 ports. An appropriate 00559 * error message should then be displayed. The _PORT0 and _PORT1 00560 * values may be or'ed together. 00561 * 00562 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00563 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00564 * target. 00565 */ 00566 00567 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED 33 /* R--F */ 00568 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE 0 00569 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0 0x1 00570 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1 0x2 00571 00572 00573 /* 00574 * NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set what video mode is used 00575 * to interperate the house sync signal. This should only be set 00576 * on the master. 00577 * 00578 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00579 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00580 * target. 00581 */ 00582 00583 #define NV_CTRL_FRAMELOCK_VIDEO_MODE 34 /* RW-F */ 00584 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE 0 00585 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1 00586 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM 2 00587 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV 3 00588 00589 /* 00590 * During FRAMELOCK bring-up, the above values were redefined to 00591 * these: 00592 */ 00593 00594 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO 0 00595 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1 00596 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL 2 00597 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL 3 00598 00599 00600 /* 00601 * NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the 00602 * frame lock board is sending to the GPU, in milliHz. 00603 * 00604 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00605 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00606 * target. 00607 */ 00608 00609 #define NV_CTRL_FRAMELOCK_SYNC_RATE 35 /* R--F */ 00610 00611 00612 00613 /**************************************************************************/ 00614 00615 /* 00616 * NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific 00617 * features such as MMX, SSE, or 3DNOW! for OpenGL clients; this 00618 * option may result in performance loss, but may be useful in 00619 * conjunction with software such as the Valgrind memory debugger. 00620 * This setting is only applied to OpenGL clients that are started 00621 * after this setting is applied. 00622 * 00623 * USAGE NOTE: This attribute is deprecated. CPU compatibility is now 00624 * checked each time during initialization. 00625 */ 00626 00627 #define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW-X */ 00628 #define NV_CTRL_FORCE_GENERIC_CPU_DISABLE 0 00629 #define NV_CTRL_FORCE_GENERIC_CPU_ENABLE 1 00630 00631 00632 /* 00633 * NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow 00634 * Gamma-corrected antialiased lines to consider variances in the 00635 * color display capabilities of output devices when rendering smooth 00636 * lines. Only available on recent Quadro GPUs. This setting is only 00637 * applied to OpenGL clients that are started after this setting is 00638 * applied. 00639 */ 00640 00641 #define NV_CTRL_OPENGL_AA_LINE_GAMMA 38 /* RW-X */ 00642 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE 0 00643 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE 1 00644 00645 00646 /* 00647 * NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the gpu is both receiving 00648 * and locked to an input timing signal. Timing information may come from 00649 * the following places: Another frame lock device that is set to master, 00650 * the house sync signal, or the GPU's internal timing from a display 00651 * device. 00652 * 00653 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00654 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00655 */ 00656 00657 #define NV_CTRL_FRAMELOCK_TIMING 39 /* R--G */ 00658 #define NV_CTRL_FRAMELOCK_TIMING_FALSE 0 00659 #define NV_CTRL_FRAMELOCK_TIMING_TRUE 1 00660 00661 /* 00662 * NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping 00663 * when possible; when FALSE, OpenGL will alway swap by blitting. XXX 00664 * can this be enabled dynamically? 00665 */ 00666 00667 #define NV_CTRL_FLIPPING_ALLOWED 40 /* RW-X */ 00668 #define NV_CTRL_FLIPPING_ALLOWED_FALSE 0 00669 #define NV_CTRL_FLIPPING_ALLOWED_TRUE 1 00670 00671 /* 00672 * NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is 00673 * running. 00674 */ 00675 00676 #define NV_CTRL_ARCHITECTURE 41 /* R-- */ 00677 #define NV_CTRL_ARCHITECTURE_X86 0 00678 #define NV_CTRL_ARCHITECTURE_X86_64 1 00679 #define NV_CTRL_ARCHITECTURE_IA64 2 00680 00681 00682 /* 00683 * NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL. By 00684 * default, NVIDIA's OpenGL implementation uses CLAMP_TO_EDGE, which 00685 * is not strictly conformant, but some applications rely on the 00686 * non-conformant behavior, and not all GPUs support conformant 00687 * texture clamping in hardware. _SPEC forces OpenGL texture clamping 00688 * to be conformant, but may introduce slower performance on older 00689 * GPUS, or incorrect texture clamping in certain applications. 00690 */ 00691 00692 #define NV_CTRL_TEXTURE_CLAMPING 42 /* RW-X */ 00693 #define NV_CTRL_TEXTURE_CLAMPING_EDGE 0 00694 #define NV_CTRL_TEXTURE_CLAMPING_SPEC 1 00695 00696 00697 00698 #define NV_CTRL_CURSOR_SHADOW 43 /* RW- */ 00699 #define NV_CTRL_CURSOR_SHADOW_DISABLE 0 00700 #define NV_CTRL_CURSOR_SHADOW_ENABLE 1 00701 00702 #define NV_CTRL_CURSOR_SHADOW_ALPHA 44 /* RW- */ 00703 #define NV_CTRL_CURSOR_SHADOW_RED 45 /* RW- */ 00704 #define NV_CTRL_CURSOR_SHADOW_GREEN 46 /* RW- */ 00705 #define NV_CTRL_CURSOR_SHADOW_BLUE 47 /* RW- */ 00706 00707 #define NV_CTRL_CURSOR_SHADOW_X_OFFSET 48 /* RW- */ 00708 #define NV_CTRL_CURSOR_SHADOW_Y_OFFSET 49 /* RW- */ 00709 00710 00711 00712 /* 00713 * When Application Control for FSAA is enabled, then what the 00714 * application requests is used, and NV_CTRL_FSAA_MODE is ignored. If 00715 * this is disabled, then any application setting is overridden with 00716 * NV_CTRL_FSAA_MODE 00717 */ 00718 00719 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED 50 /* RW-X */ 00720 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED 1 00721 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED 0 00722 00723 00724 /* 00725 * When Application Control for LogAniso is enabled, then what the 00726 * application requests is used, and NV_CTRL_LOG_ANISO is ignored. If 00727 * this is disabled, then any application setting is overridden with 00728 * NV_CTRL_LOG_ANISO 00729 */ 00730 00731 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED 51 /* RW-X */ 00732 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED 1 00733 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED 0 00734 00735 00736 /* 00737 * IMAGE_SHARPENING adjusts the sharpness of the display's image 00738 * quality by amplifying high frequency content. Valid values will 00739 * normally be in the range [0,32). Only available on GeForceFX or 00740 * newer. 00741 */ 00742 00743 #define NV_CTRL_IMAGE_SHARPENING 52 /* RWDG */ 00744 00745 00746 /* 00747 * NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified 00748 * display device. 00749 */ 00750 00751 #define NV_CTRL_TV_OVERSCAN 53 /* RWDG */ 00752 00753 00754 /* 00755 * NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on 00756 * the specified display device. 00757 */ 00758 00759 #define NV_CTRL_TV_FLICKER_FILTER 54 /* RWDG */ 00760 00761 00762 /* 00763 * NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the 00764 * specified display device. 00765 */ 00766 00767 #define NV_CTRL_TV_BRIGHTNESS 55 /* RWDG */ 00768 00769 00770 /* 00771 * NV_CTRL_TV_HUE adjusts the amount of hue on the specified display 00772 * device. 00773 */ 00774 00775 #define NV_CTRL_TV_HUE 56 /* RWDG */ 00776 00777 00778 /* 00779 * NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified 00780 * display device. 00781 */ 00782 00783 #define NV_CTRL_TV_CONTRAST 57 /* RWDG */ 00784 00785 00786 /* 00787 * NV_CTRL_TV_SATURATION adjusts the amount of saturation on the 00788 * specified display device. 00789 */ 00790 00791 #define NV_CTRL_TV_SATURATION 58 /* RWDG */ 00792 00793 00794 /* 00795 * NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used 00796 * to request that all TV Settings be reset to their default values; 00797 * typical usage would be that this attribute be sent, and then all 00798 * the TV attributes be queried to retrieve their new values. 00799 */ 00800 00801 #define NV_CTRL_TV_RESET_SETTINGS 59 /* -WDG */ 00802 00803 00804 /* 00805 * NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature 00806 * of the GPU driving the X screen. 00807 */ 00808 00809 #define NV_CTRL_GPU_CORE_TEMPERATURE 60 /* R--G */ 00810 00811 00812 /* 00813 * NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown 00814 * threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and 00815 * NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core 00816 * slowdown threshold temperatures. 00817 * 00818 * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the 00819 * GPU is throttled to prevent overheating. 00820 */ 00821 00822 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R--G */ 00823 #define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD 62 /* R--G */ 00824 #define NV_CTRL_GPU_MAX_CORE_THRESHOLD 63 /* R--G */ 00825 00826 00827 /* 00828 * NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the 00829 * immediate neighbourhood of the GPU driving the X screen. 00830 */ 00831 00832 #define NV_CTRL_AMBIENT_TEMPERATURE 64 /* R--G */ 00833 00834 00835 /* 00836 * NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen 00837 * supports scanout of FP pbuffers; 00838 * 00839 * if this screen does not support PBUFFER_SCANOUT, then all other 00840 * PBUFFER_SCANOUT attributes are unavailable. 00841 * 00842 * PBUFFER_SCANOUT is supported if and only if: 00843 * - Twinview is configured with clone mode. The secondary screen is used to 00844 * scanout the pbuffer. 00845 * - The desktop is running in with 16 bits per pixel. 00846 */ 00847 #define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED 65 /* R-- */ 00848 #define NV_CTRL_PBUFFER_SCANOUT_FALSE 0 00849 #define NV_CTRL_PBUFFER_SCANOUT_TRUE 1 00850 00851 /* 00852 * NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for 00853 * scanout. 00854 */ 00855 #define NV_CTRL_PBUFFER_SCANOUT_XID 66 /* RW- */ 00856 00857 /**************************************************************************/ 00858 /* 00859 * The NV_CTRL_GVO_* integer attributes are used to configure GVO 00860 * (Graphics to Video Out). This functionality is available, for 00861 * example, on the Quadro FX 4000 SDI graphics board. 00862 * 00863 * The following is a typical usage pattern for the GVO attributes: 00864 * 00865 * - query NV_CTRL_GVO_SUPPORTED to determine if the X screen supports GV0. 00866 * 00867 * - specify NV_CTRL_GVO_SYNC_MODE (one of FREE_RUNNING, GENLOCK, or 00868 * FRAMELOCK); if you specify GENLOCK or FRAMELOCK, you should also 00869 * specify NV_CTRL_GVO_SYNC_SOURCE. 00870 * 00871 * - Use NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED and 00872 * NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED to detect what input syncs are 00873 * present. 00874 * 00875 * (If no analog sync is detected but it is known that a valid 00876 * bi-level or tri-level sync is connected set 00877 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE appropriately and 00878 * retest with NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED). 00879 * 00880 * - if syncing to input sync, query the 00881 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT attribute; note that Input video 00882 * format can only be queried after SYNC_SOURCE is specified. 00883 * 00884 * - specify the NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 00885 * 00886 * - specify the NV_CTRL_GVO_DATA_FORMAT 00887 * 00888 * - specify any custom Color Space Conversion (CSC) matrix, offset, 00889 * and scale with XNVCTRLSetGvoColorConversion(). 00890 * 00891 * - if using the GLX_NV_video_out extension to display one or more 00892 * pbuffers, call glXGetVideoDeviceNV() to lock the GVO output for use 00893 * by the GLX client; then bind the pbuffer(s) to the GVO output with 00894 * glXBindVideoImageNV() and send pbuffers to the GVO output with 00895 * glXSendPbufferToVideoNV(); see the GLX_NV_video_out spec for more 00896 * details. 00897 * 00898 * - if, rather than using the GLX_NV_video_out extension to display 00899 * GLX pbuffers on the GVO output, you wish display the X screen on 00900 * the GVO output, set NV_CTRL_GVO_DISPLAY_X_SCREEN to 00901 * NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE. 00902 * 00903 * Note that setting most GVO attributes only causes the value to be 00904 * cached in the X server. The values will be flushed to the hardware 00905 * either when NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, or when a GLX 00906 * pbuffer is bound to the GVO output (with glXBindVideoImageNV()). 00907 * 00908 * Note that GLX_NV_video_out and NV_CTRL_GVO_DISPLAY_X_SCREEN are 00909 * mutually exclusive. If NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, 00910 * then glXGetVideoDeviceNV will fail. Similarly, if a GLX client has 00911 * locked the GVO output (via glXGetVideoDeviceNV), then 00912 * NV_CTRL_GVO_DISPLAY_X_SCREEN will fail. The NV_CTRL_GVO_GLX_LOCKED 00913 * event will be sent when a GLX client locks the GVO output. 00914 * 00915 */ 00916 00917 00918 /* 00919 * NV_CTRL_GVO_SUPPORTED - returns whether this X screen supports GVO; 00920 * if this screen does not support GVO output, then all other GVO 00921 * attributes are unavailable. 00922 */ 00923 00924 #define NV_CTRL_GVO_SUPPORTED 67 /* R-- */ 00925 #define NV_CTRL_GVO_SUPPORTED_FALSE 0 00926 #define NV_CTRL_GVO_SUPPORTED_TRUE 1 00927 00928 00929 /* 00930 * NV_CTRL_GVO_SYNC_MODE - selects the GVO sync mode; possible values 00931 * are: 00932 * 00933 * FREE_RUNNING - GVO does not sync to any external signal 00934 * 00935 * GENLOCK - the GVO output is genlocked to an incoming sync signal; 00936 * genlocking locks at hsync. This requires that the output video 00937 * format exactly match the incoming sync video format. 00938 * 00939 * FRAMELOCK - the GVO output is frame locked to an incoming sync 00940 * signal; frame locking locks at vsync. This requires that the output 00941 * video format have the same refresh rate as the incoming sync video 00942 * format. 00943 */ 00944 00945 #define NV_CTRL_GVO_SYNC_MODE 68 /* RW- */ 00946 #define NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING 0 00947 #define NV_CTRL_GVO_SYNC_MODE_GENLOCK 1 00948 #define NV_CTRL_GVO_SYNC_MODE_FRAMELOCK 2 00949 00950 00951 /* 00952 * NV_CTRL_GVO_SYNC_SOURCE - if NV_CTRL_GVO_SYNC_MODE is set to either 00953 * GENLOCK or FRAMELOCK, this controls which sync source is used as 00954 * the incoming sync signal (either Composite or SDI). If 00955 * NV_CTRL_GVO_SYNC_MODE is FREE_RUNNING, this attribute has no 00956 * effect. 00957 */ 00958 00959 #define NV_CTRL_GVO_SYNC_SOURCE 69 /* RW- */ 00960 #define NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE 0 00961 #define NV_CTRL_GVO_SYNC_SOURCE_SDI 1 00962 00963 00964 /* 00965 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT - specifies the output video 00966 * format. Note that the valid video formats will vary depending on 00967 * the NV_CTRL_GVO_SYNC_MODE and the incoming sync video format. See 00968 * the definition of NV_CTRL_GVO_SYNC_MODE. 00969 * 00970 * Note that when querying the ValidValues for this data type, the 00971 * values are reported as bits within a bitmask 00972 * (ATTRIBUTE_TYPE_INT_BITS); unfortunately, there are more valid 00973 * value bits than will fit in a single 32-bit value. To solve this, 00974 * query the ValidValues for NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT to check 00975 * which of the first 31 VIDEO_FORMATS are valid, then query the 00976 * ValidValues for NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 to check which of 00977 * the VIDEO_FORMATS with value 32 and higher are valid. 00978 */ 00979 00980 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 70 /* RW- */ 00981 00982 #define NV_CTRL_GVO_VIDEO_FORMAT_NONE 0 00983 #define NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC 1 //deprecated 00984 #define NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1 00985 #define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2 00986 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296 3 00987 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296 4 00988 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5 00989 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6 00990 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7 00991 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8 00992 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9 00993 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10 00994 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11 00995 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12 00996 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13 00997 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14 00998 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15 00999 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_50_00_SMPTE296 16 01000 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_24_00_SMPTE274 17 //deprecated 01001 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17 01002 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_23_98_SMPTE274 18 //deprecated 01003 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18 01004 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_30_00_SMPTE296 19 01005 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_29_97_SMPTE296 20 01006 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_25_00_SMPTE296 21 01007 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296 22 01008 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296 23 01009 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24 01010 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25 01011 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26 01012 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27 01013 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28 01014 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_30_00_SMPTE372 29 01015 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_29_97_SMPTE372 30 01016 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_60_00_SMPTE372 31 01017 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_59_94_SMPTE372 32 01018 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_25_00_SMPTE372 33 01019 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_50_00_SMPTE372 34 01020 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_24_00_SMPTE372 35 01021 #define NV_CTRL_GVO_VIDEO_FORMAT_2048P_23_98_SMPTE372 36 01022 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_48_00_SMPTE372 37 01023 #define NV_CTRL_GVO_VIDEO_FORMAT_2048I_47_96_SMPTE372 38 01024 01025 /* 01026 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT - indicates the input video format 01027 * detected; the possible values are the NV_CTRL_GVO_VIDEO_FORMAT 01028 * constants. 01029 */ 01030 01031 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT 71 /* R-- */ 01032 01033 01034 /* 01035 * NV_CTRL_GVO_DATA_FORMAT - This controls how the data in the source 01036 * (either the X screen or the GLX pbuffer) is interpretted and 01037 * displayed. 01038 * 01039 * Note: some of the below DATA_FORMATS have been renamed. For 01040 * example, R8G8B8_TO_RGB444 has been renamed to X8X8X8_444_PASSTHRU. 01041 * This is to more accurately reflect DATA_FORMATS where the 01042 * per-channel data could be either RGB or YCrCb -- the point is that 01043 * the driver and GVO hardware do not perform any implicit color space 01044 * conversion on the data; it is passed through to the SDI out. 01045 */ 01046 01047 #define NV_CTRL_GVO_DATA_FORMAT 72 /* RW- */ 01048 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444 0 01049 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4444 1 01050 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4444 2 01051 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422 3 01052 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4224 4 01053 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4224 5 01054 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_RGB444 6 // renamed 01055 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU 6 01056 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_RGBA4444 7 // renamed 01057 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4444_PASSTHRU 7 01058 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_RGBZ4444 8 // renamed 01059 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4444_PASSTHRU 8 01060 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR10CB10_TO_YCRCB444 9 // renamed 01061 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_444_PASSTHRU 9 01062 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8_TO_YCRCB444 10 // renamed 01063 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_444_PASSTHRU 10 01064 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8A10_TO_YCRCBA4444 11 // renamed 01065 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4444_PASSTHRU 11 01066 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8Z10_TO_YCRCBZ4444 12 // renamed 01067 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4444_PASSTHRU 12 01068 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_R8G8B8_TO_DUAL_YCRCB422 13 01069 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_Y8CR8CB8_TO_DUAL_YCRCB422 14 // renamed 01070 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_X8X8X8_TO_DUAL_422_PASSTHRU 14 01071 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB422 15 01072 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB444 16 01073 #define NV_CTRL_GVO_DATA_FORMAT_Y12CR12CB12_TO_YCRCB444 17 // renamed 01074 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_444_PASSTHRU 17 01075 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB444 18 01076 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_422_PASSTHRU 19 01077 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4224_PASSTHRU 20 01078 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4224_PASSTHRU 21 01079 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_422_PASSTHRU 22 01080 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_422_PASSTHRU 23 01081 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4224_PASSTHRU 24 01082 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4224_PASSTHRU 25 01083 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_422_PASSTHRU 26 01084 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB422 27 01085 01086 /* 01087 * NV_CTRL_GVO_DISPLAY_X_SCREEN - enable/disable GVO output of the X 01088 * screen (in Clone mode). At this point, all the GVO attributes that 01089 * have been cached in the X server are flushed to the hardware and GVO is 01090 * enabled. Note that this attribute can fail to be set if a GLX 01091 * client has locked the GVO output (via glXGetVideoDeviceNV). Note 01092 * that due to the inherit race conditions in this locking strategy, 01093 * NV_CTRL_GVO_DISPLAY_X_SCREEN can fail unexpectantly. In the 01094 * failing situation, X will not return an X error. Instead, you 01095 * should query the value of NV_CTRL_GVO_DISPLAY_X_SCREEN after 01096 * setting it to confirm that the setting was applied. 01097 * 01098 * NOTE: This attribute is related to the NV_CTRL_GVO_LOCK_OWNER 01099 * attribute. When NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, 01100 * the GVO device will be locked by NV_CTRL_GVO_LOCK_OWNER_CLONE. 01101 * see NV_CTRL_GVO_LOCK_OWNER for detais. 01102 */ 01103 01104 #define NV_CTRL_GVO_DISPLAY_X_SCREEN 73 /* RW- */ 01105 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE 1 01106 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE 0 01107 01108 01109 /* 01110 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED - indicates whether 01111 * Composite Sync input is detected. 01112 */ 01113 01114 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED 74 /* R-- */ 01115 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE 0 01116 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_TRUE 1 01117 01118 01119 /* 01120 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE - get/set the 01121 * Composite Sync input detect mode. 01122 */ 01123 01124 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE 75 /* RW- */ 01125 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO 0 01126 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL 1 01127 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL 2 01128 01129 01130 /* 01131 * NV_CTRL_GVO_SYNC_INPUT_DETECTED - indicates whether SDI Sync input 01132 * is detected, and what type. 01133 */ 01134 01135 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED 76 /* R-- */ 01136 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE 0 01137 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD 1 01138 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD 2 01139 01140 01141 /* 01142 * NV_CTRL_GVO_VIDEO_OUTPUTS - indicates which GVO video output 01143 * connectors are currently outputing data. 01144 */ 01145 01146 #define NV_CTRL_GVO_VIDEO_OUTPUTS 77 /* R-- */ 01147 #define NV_CTRL_GVO_VIDEO_OUTPUTS_NONE 0 01148 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO1 1 01149 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO2 2 01150 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO_BOTH 3 01151 01152 01153 /* 01154 * NV_CTRL_GVO_FPGA_VERSION - indicates the version of the Firmware on 01155 * the GVO device. Deprecated; use 01156 * NV_CTRL_STRING_GVO_FIRMWARE_VERSION instead. 01157 */ 01158 01159 #define NV_CTRL_GVO_FIRMWARE_VERSION 78 /* R-- */ 01160 01161 01162 /* 01163 * NV_CTRL_GVO_SYNC_DELAY_PIXELS - controls the delay between the 01164 * input sync and the output sync in numbers of pixels from hsync; 01165 * this is a 12 bit value. 01166 * 01167 * If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set, 01168 * then setting this value will set an advance instead of a delay. 01169 */ 01170 01171 #define NV_CTRL_GVO_SYNC_DELAY_PIXELS 79 /* RW- */ 01172 01173 01174 /* 01175 * NV_CTRL_GVO_SYNC_DELAY_LINES - controls the delay between the input 01176 * sync and the output sync in numbers of lines from vsync; this is a 01177 * 12 bit value. 01178 * 01179 * If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set, 01180 * then setting this value will set an advance instead of a delay. 01181 */ 01182 01183 #define NV_CTRL_GVO_SYNC_DELAY_LINES 80 /* RW- */ 01184 01185 01186 /* 01187 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE - must be set for a period 01188 * of about 2 seconds for the new InputVideoFormat to be properly 01189 * locked to. In nvidia-settings, we do a reacquire whenever genlock 01190 * or frame lock mode is entered into, when the user clicks the 01191 * "detect" button. This value can be written, but always reads back 01192 * _FALSE. 01193 */ 01194 01195 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE 81 /* -W- */ 01196 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE 0 01197 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE 1 01198 01199 01200 /* 01201 * NV_CTRL_GVO_GLX_LOCKED - indicates that GVO configurability is locked by 01202 * GLX; this occurs when the GLX_NV_video_out function calls 01203 * glXGetVideoDeviceNV(). All GVO output resources are locked until 01204 * either glXReleaseVideoDeviceNV() is called or the X Display used 01205 * when calling glXGetVideoDeviceNV() is closed. 01206 * 01207 * When GVO is locked, setting of the following GVO NV-CONTROL attributes will 01208 * not happen immediately and will instead be cached. The GVO resource will 01209 * need to be disabled/released and re-enabled/claimed for the values to be 01210 * flushed. These attributes are: 01211 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 01212 * NV_CTRL_GVO_DATA_FORMAT 01213 * NV_CTRL_GVO_FLIP_QUEUE_SIZE 01214 * 01215 * XXX This is deprecated, please see NV_CTRL_GVO_LOCK_OWNER 01216 */ 01217 01218 #define NV_CTRL_GVO_GLX_LOCKED 82 /* R-- */ 01219 #define NV_CTRL_GVO_GLX_LOCKED_FALSE 0 01220 #define NV_CTRL_GVO_GLX_LOCKED_TRUE 1 01221 01222 01223 /* 01224 * NV_CTRL_GVO_VIDEO_FORMAT_{WIDTH,HEIGHT,REFRESH_RATE} - query the 01225 * width, height, and refresh rate for the specified 01226 * NV_CTRL_GVO_VIDEO_FORMAT_*. So that this can be queried with 01227 * existing interfaces, XNVCTRLQueryAttribute() should be used, and 01228 * the video format specified in the display_mask field; eg: 01229 * 01230 * XNVCTRLQueryAttribute (dpy, 01231 * screen, 01232 * NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC, 01233 * NV_CTRL_GVO_VIDEO_FORMAT_WIDTH, 01234 * &value); 01235 * 01236 * Note that Refresh Rate is in 1/1000 Hertz values 01237 */ 01238 01239 #define NV_CTRL_GVO_VIDEO_FORMAT_WIDTH 83 /* R-- */ 01240 #define NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT 84 /* R-- */ 01241 #define NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE 85 /* R-- */ 01242 01243 01244 /* 01245 * NV_CTRL_GVO_X_SCREEN_PAN_[XY] - when GVO output of the X screen is 01246 * enabled, the pan x/y attributes control which portion of the X 01247 * screen is displayed by GVO. These attributes can be updated while 01248 * GVO output is enabled, or before enabling GVO output. The pan 01249 * values will be clamped so that GVO output is not panned beyond the 01250 * end of the X screen. 01251 */ 01252 01253 #define NV_CTRL_GVO_X_SCREEN_PAN_X 86 /* RW- */ 01254 #define NV_CTRL_GVO_X_SCREEN_PAN_Y 87 /* RW- */ 01255 01256 01257 /* 01258 * NV_CTRL_GPU_OVERCLOCKING_STATE - query the current or set a new 01259 * overclocking state; the value of this attribute controls the 01260 * availability of additional overclocking attributes (see below). 01261 * 01262 * Note: this attribute is unavailable unless overclocking support 01263 * has been enabled in the X server (by the user). 01264 */ 01265 01266 #define NV_CTRL_GPU_OVERCLOCKING_STATE 88 /* RW-G */ 01267 #define NV_CTRL_GPU_OVERCLOCKING_STATE_NONE 0 01268 #define NV_CTRL_GPU_OVERCLOCKING_STATE_MANUAL 1 01269 01270 01271 /* 01272 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS - query or set the GPU and memory 01273 * clocks of the device driving the X screen. New clock frequencies 01274 * are tested before being applied, and may be rejected. 01275 * 01276 * Note: if the target clocks are too aggressive, their testing may 01277 * render the system unresponsive. 01278 * 01279 * Note: while this attribute can always be queried, it can't be set 01280 * unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL. Since 01281 * the target clocks may be rejected, the requester should read this 01282 * attribute after the set to determine success or failure. 01283 * 01284 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS are "packed" integer attributes; the 01285 * GPU clock is stored in the upper 16 bits of the integer, and the 01286 * memory clock is stored in the lower 16 bits of the integer. All 01287 * clock values are in MHz. 01288 */ 01289 01290 #define NV_CTRL_GPU_2D_CLOCK_FREQS 89 /* RW-G */ 01291 #define NV_CTRL_GPU_3D_CLOCK_FREQS 90 /* RW-G */ 01292 01293 01294 /* 01295 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS - query the default memory 01296 * and GPU core clocks of the device driving the X screen. 01297 * 01298 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS are "packed" integer 01299 * attributes; the GPU clock is stored in the upper 16 bits of the 01300 * integer, and the memory clock is stored in the lower 16 bits of the 01301 * integer. All clock values are in MHz. 01302 */ 01303 01304 #define NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS 91 /* R--G */ 01305 #define NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS 92 /* R--G */ 01306 01307 01308 /* 01309 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS - query the current GPU and memory 01310 * clocks of the graphics device driving the X screen. 01311 * 01312 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS is a "packed" integer attribute; 01313 * the GPU clock is stored in the upper 16 bits of the integer, and 01314 * the memory clock is stored in the lower 16 bits of the integer. 01315 * All clock values are in MHz. All clock values are in MHz. 01316 */ 01317 01318 #define NV_CTRL_GPU_CURRENT_CLOCK_FREQS 93 /* R--G */ 01319 01320 01321 /* 01322 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS - Holds the last calculated 01323 * optimal 3D clock frequencies found by the 01324 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION process. Querying this 01325 * attribute before having probed for the optimal clocks will return 01326 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 01327 * 01328 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the 01329 * optimal clock detection process is unavailable. 01330 */ 01331 01332 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS 94 /* R--G */ 01333 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 0 01334 01335 01336 /* 01337 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION - set to _START to 01338 * initiate testing for the optimal 3D clock frequencies. Once 01339 * found, the optimal clock frequencies will be returned by the 01340 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS attribute asynchronously 01341 * (using an X event, see XNVCtrlSelectNotify). 01342 * 01343 * To cancel an ongoing test for the optimal clocks, set the 01344 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION attribute to _CANCEL 01345 * 01346 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the 01347 * optimal clock detection process is unavailable. 01348 */ 01349 01350 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION 95 /* -W-G */ 01351 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_START 0 01352 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_CANCEL 1 01353 01354 01355 /* 01356 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE - query this 01357 * variable to know if a test is currently being run to 01358 * determine the optimal 3D clock frequencies. _BUSY means a 01359 * test is currently running, _IDLE means the test is not running. 01360 * 01361 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the 01362 * optimal clock detection process is unavailable. 01363 */ 01364 01365 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE 96 /* R--G */ 01366 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_IDLE 0 01367 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_BUSY 1 01368 01369 01370 /* 01371 * NV_CTRL_FLATPANEL_CHIP_LOCATION - for the specified display device, 01372 * report whether the flat panel is driven by the on-chip controller, 01373 * or a separate controller chip elsewhere on the graphics board. 01374 * This attribute is only available for flat panels. 01375 */ 01376 01377 #define NV_CTRL_FLATPANEL_CHIP_LOCATION 215/* R-DG */ 01378 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_INTERNAL 0 01379 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_EXTERNAL 1 01380 01381 /* 01382 * NV_CTRL_FLATPANEL_LINK - report the number of links for a DVI connection, or 01383 * the main link's active lane count for DisplayPort. 01384 * This attribute is only available for flat panels. 01385 */ 01386 01387 #define NV_CTRL_FLATPANEL_LINK 216/* R-DG */ 01388 #define NV_CTRL_FLATPANEL_LINK_SINGLE 0 01389 #define NV_CTRL_FLATPANEL_LINK_DUAL 1 01390 #define NV_CTRL_FLATPANEL_LINK_QUAD 3 01391 01392 /* 01393 * NV_CTRL_FLATPANEL_SIGNAL - for the specified display device, report 01394 * whether the flat panel is driven by an LVDS, TMDS, or DisplayPort signal. 01395 * This attribute is only available for flat panels. 01396 */ 01397 01398 #define NV_CTRL_FLATPANEL_SIGNAL 217/* R-DG */ 01399 #define NV_CTRL_FLATPANEL_SIGNAL_LVDS 0 01400 #define NV_CTRL_FLATPANEL_SIGNAL_TMDS 1 01401 #define NV_CTRL_FLATPANEL_SIGNAL_DISPLAYPORT 2 01402 01403 01404 /* 01405 * NV_CTRL_USE_HOUSE_SYNC - when TRUE, the server (master) frame lock 01406 * device will propagate the incoming house sync signal as the outgoing 01407 * frame lock sync signal. If the frame lock device cannot detect a 01408 * frame lock sync signal, it will default to using the internal timings 01409 * from the GPU connected to the primary connector. 01410 * 01411 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 01412 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 01413 * target. 01414 */ 01415 01416 #define NV_CTRL_USE_HOUSE_SYNC 218/* RW-F */ 01417 #define NV_CTRL_USE_HOUSE_SYNC_FALSE 0 01418 #define NV_CTRL_USE_HOUSE_SYNC_TRUE 1 01419 01420 /* 01421 * NV_CTRL_EDID_AVAILABLE - report if an EDID is available for the 01422 * specified display device. 01423 * 01424 * This attribute may also be queried through XNVCTRLQueryTargetAttribute() 01425 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN 01426 * target. 01427 */ 01428 01429 #define NV_CTRL_EDID_AVAILABLE 219 /* R-DG */ 01430 #define NV_CTRL_EDID_AVAILABLE_FALSE 0 01431 #define NV_CTRL_EDID_AVAILABLE_TRUE 1 01432 01433 /* 01434 * NV_CTRL_FORCE_STEREO - when TRUE, OpenGL will force stereo flipping 01435 * even when no stereo drawables are visible (if the device is configured 01436 * to support it, see the "Stereo" X config option). 01437 * When false, fall back to the default behavior of only flipping when a 01438 * stereo drawable is visible. 01439 */ 01440 01441 #define NV_CTRL_FORCE_STEREO 220 /* RW- */ 01442 #define NV_CTRL_FORCE_STEREO_FALSE 0 01443 #define NV_CTRL_FORCE_STEREO_TRUE 1 01444 01445 01446 /* 01447 * NV_CTRL_IMAGE_SETTINGS - the image quality setting for OpenGL clients. 01448 * 01449 * This setting is only applied to OpenGL clients that are started 01450 * after this setting is applied. 01451 */ 01452 01453 #define NV_CTRL_IMAGE_SETTINGS 221 /* RW-X */ 01454 #define NV_CTRL_IMAGE_SETTINGS_HIGH_QUALITY 0 01455 #define NV_CTRL_IMAGE_SETTINGS_QUALITY 1 01456 #define NV_CTRL_IMAGE_SETTINGS_PERFORMANCE 2 01457 #define NV_CTRL_IMAGE_SETTINGS_HIGH_PERFORMANCE 3 01458 01459 01460 /* 01461 * NV_CTRL_XINERAMA - return whether xinerama is enabled 01462 */ 01463 01464 #define NV_CTRL_XINERAMA 222 /* R--G */ 01465 #define NV_CTRL_XINERAMA_OFF 0 01466 #define NV_CTRL_XINERAMA_ON 1 01467 01468 /* 01469 * NV_CTRL_XINERAMA_STEREO - when TRUE, OpenGL will allow stereo flipping 01470 * on multiple X screens configured with Xinerama. 01471 * When FALSE, flipping is allowed only on one X screen at a time. 01472 */ 01473 01474 #define NV_CTRL_XINERAMA_STEREO 223 /* RW- */ 01475 #define NV_CTRL_XINERAMA_STEREO_FALSE 0 01476 #define NV_CTRL_XINERAMA_STEREO_TRUE 1 01477 01478 /* 01479 * NV_CTRL_BUS_RATE - if the bus type of the GPU driving the specified 01480 * screen is AGP, then NV_CTRL_BUS_RATE returns the configured AGP 01481 * transfer rate. If the bus type is PCI Express, then this attribute 01482 * returns the width of the physical link. 01483 */ 01484 01485 #define NV_CTRL_BUS_RATE 224 /* R--G */ 01486 01487 /* 01488 * NV_CTRL_SHOW_SLI_HUD - when TRUE, OpenGL will draw information about the 01489 * current SLI mode. 01490 */ 01491 01492 #define NV_CTRL_SHOW_SLI_HUD 225 /* RW-X */ 01493 #define NV_CTRL_SHOW_SLI_HUD_FALSE 0 01494 #define NV_CTRL_SHOW_SLI_HUD_TRUE 1 01495 01496 /* 01497 * NV_CTRL_XV_SYNC_TO_DISPLAY - this control is valid when TwinView and 01498 * XVideo Sync To VBlank are enabled. 01499 * It controls which display device will be synched to. 01500 */ 01501 01502 #define NV_CTRL_XV_SYNC_TO_DISPLAY 226 /* RW- */ 01503 01504 /* 01505 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 - this attribute is only intended 01506 * to be used to query the ValidValues for 01507 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT above the first 31 VIDEO_FORMATS. 01508 * See NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT for details. 01509 */ 01510 01511 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 227 /* --- */ 01512 01513 /* 01514 * NV_CTRL_GVO_OVERRIDE_HW_CSC - Override the SDI hardware's Color Space 01515 * Conversion with the values controlled through 01516 * XNVCTRLSetGvoColorConversion() and XNVCTRLGetGvoColorConversion(). If 01517 * this attribute is FALSE, then the values specified through 01518 * XNVCTRLSetGvoColorConversion() are ignored. 01519 */ 01520 01521 #define NV_CTRL_GVO_OVERRIDE_HW_CSC 228 /* RW- */ 01522 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_FALSE 0 01523 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_TRUE 1 01524 01525 01526 /* 01527 * NV_CTRL_GVO_CAPABILITIES - this read-only attribute describes GVO 01528 * capabilities that differ between NVIDIA SDI products. This value 01529 * is a bitmask where each bit indicates whether that capability is 01530 * available. 01531 * 01532 * APPLY_CSC_IMMEDIATELY - whether the CSC matrix, offset, and scale 01533 * specified through XNVCTRLSetGvoColorConversion() will take affect 01534 * immediately, or only after SDI output is disabled and enabled 01535 * again. 01536 * 01537 * APPLY_CSC_TO_X_SCREEN - whether the CSC matrix, offset, and scale 01538 * specified through XNVCTRLSetGvoColorConversion() will also apply 01539 * to GVO output of an X screen, or only to OpenGL GVO output, as 01540 * enabled through the GLX_NV_video_out extension. 01541 * 01542 * COMPOSITE_TERMINATION - whether the 75 ohm termination of the 01543 * SDI composite input signal can be programmed through the 01544 * NV_CTRL_GVO_COMPOSITE_TERMINATION attribute. 01545 * 01546 * SHARED_SYNC_BNC - whether the SDI device has a single BNC 01547 * connector used for both (SDI & Composite) incoming signals. 01548 * 01549 * MULTIRATE_SYNC - whether the SDI device supports synchronization 01550 * of input and output video modes that match in being odd or even 01551 * modes (ie, AA.00 Hz modes can be synched to other BB.00 Hz modes and 01552 * AA.XX Hz can match to BB.YY Hz where .XX and .YY are not .00) 01553 */ 01554 01555 #define NV_CTRL_GVO_CAPABILITIES 229 /* R-- */ 01556 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x00000001 01557 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x00000002 01558 #define NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION 0x00000004 01559 #define NV_CTRL_GVO_CAPABILITIES_SHARED_SYNC_BNC 0x00000008 01560 #define NV_CTRL_GVO_CAPABILITIES_MULTIRATE_SYNC 0x00000010 01561 #define NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW 0x00000020 01562 01563 01564 /* 01565 * NV_CTRL_GVO_COMPOSITE_TERMINATION - enable or disable 75 ohm 01566 * termination of the SDI composite input signal. 01567 */ 01568 01569 #define NV_CTRL_GVO_COMPOSITE_TERMINATION 230 /* RW- */ 01570 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE 1 01571 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE 0 01572 01573 01574 /* 01575 * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES - display device mask indicating 01576 * which display devices are "associated" with the specified X screen 01577 * (ie: are available to the X screen for displaying the X screen). 01578 */ 01579 01580 #define NV_CTRL_ASSOCIATED_DISPLAY_DEVICES 231 /* RW- */ 01581 01582 /* 01583 * NV_CTRL_FRAMELOCK_SLAVES - get/set whether the display device(s) 01584 * given should listen or ignore the master's sync signal. 01585 * 01586 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 01587 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 01588 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 01589 */ 01590 01591 #define NV_CTRL_FRAMELOCK_SLAVES 232 /* RW-G */ 01592 01593 /* 01594 * NV_CTRL_FRAMELOCK_MASTERABLE - Can this Display Device be set 01595 * as the master of the frame lock group. Returns MASTERABLE_TRUE if 01596 * the GPU driving the display device is connected to the "primary" 01597 * connector on the frame lock board. 01598 * 01599 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 01600 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 01601 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 01602 */ 01603 01604 #define NV_CTRL_FRAMELOCK_MASTERABLE 233 /* R-DG */ 01605 #define NV_CTRL_FRAMELOCK_MASTERABLE_FALSE 0 01606 #define NV_CTRL_FRAMELOCK_MASTERABLE_TRUE 1 01607 01608 01609 /* 01610 * NV_CTRL_PROBE_DISPLAYS - re-probes the hardware to detect what 01611 * display devices are connected to the GPU or GPU driving the 01612 * specified X screen. Returns a display mask. 01613 * 01614 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 01615 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 01616 */ 01617 01618 #define NV_CTRL_PROBE_DISPLAYS 234 /* R--G */ 01619 01620 01621 /* 01622 * NV_CTRL_REFRESH_RATE - Returns the refresh rate of the specified 01623 * display device in 100 * Hz (ie. to get the refresh rate in Hz, divide 01624 * the returned value by 100.) 01625 * 01626 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 01627 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 01628 */ 01629 01630 #define NV_CTRL_REFRESH_RATE 235 /* R-DG */ 01631 01632 01633 /* 01634 * NV_CTRL_GVO_FLIP_QUEUE_SIZE - The Graphics to Video Out interface 01635 * exposed through NV-CONTROL and the GLX_NV_video_out extension uses 01636 * an internal flip queue when pbuffers are sent to the video device 01637 * (via glXSendPbufferToVideoNV()). The NV_CTRL_GVO_FLIP_QUEUE_SIZE 01638 * can be used to query and assign the flip queue size. This 01639 * attribute is applied to GLX when glXGetVideoDeviceNV() is called by 01640 * the application. 01641 */ 01642 01643 #define NV_CTRL_GVO_FLIP_QUEUE_SIZE 236 /* RW- */ 01644 01645 01646 /* 01647 * NV_CTRL_CURRENT_SCANLINE - query the current scanline for the 01648 * specified display device. 01649 */ 01650 01651 #define NV_CTRL_CURRENT_SCANLINE 237 /* R-DG */ 01652 01653 01654 /* 01655 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT - Controls where X pixmaps are initially 01656 * created. 01657 * 01658 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM causes to pixmaps to stay in 01659 * system memory. 01660 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM creates pixmaps in system memory 01661 * initially, but allows them to migrate to video memory. 01662 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM creates pixmaps in video memory 01663 * when enough resources are available. 01664 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED is currently reserved for future 01665 * use. Behavior is undefined. 01666 * NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM creates pixmaps in GPU accessible 01667 * system memory when enough resources are available. 01668 */ 01669 01670 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT 238 /* RW- */ 01671 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM 0 01672 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM 1 01673 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM 2 01674 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED 3 01675 #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM 4 01676 01677 01678 /* 01679 * NV_CTRL_PCI_BUS - Returns the PCI bus number the GPU is using. 01680 */ 01681 01682 #define NV_CTRL_PCI_BUS 239 /* R--G */ 01683 01684 01685 /* 01686 * NV_CTRL_PCI_DEVICE - Returns the PCI device number the GPU is using. 01687 */ 01688 01689 #define NV_CTRL_PCI_DEVICE 240 /* R--G */ 01690 01691 01692 /* 01693 * NV_CTRL_PCI_FUNCTION - Returns the PCI function number the GPU is using. 01694 */ 01695 01696 #define NV_CTRL_PCI_FUNCTION 241 /* R--G */ 01697 01698 01699 /* 01700 * NV_CTRL_FRAMELOCK_FPGA_REVISION - Querys the FPGA revision of the 01701 * Frame Lock device. 01702 * 01703 * This attribute must be queried through XNVCTRLQueryTargetAttribute() 01704 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target. 01705 */ 01706 01707 #define NV_CTRL_FRAMELOCK_FPGA_REVISION 242 /* R--F */ 01708 01709 /* 01710 * NV_CTRL_MAX_SCREEN_{WIDTH,HEIGHT} - the maximum allowable size, in 01711 * pixels, of either the specified X screen (if the target_type of the 01712 * query is an X screen), or any X screen on the specified GPU (if the 01713 * target_type of the query is a GPU). 01714 */ 01715 01716 #define NV_CTRL_MAX_SCREEN_WIDTH 243 /* R--G */ 01717 #define NV_CTRL_MAX_SCREEN_HEIGHT 244 /* R--G */ 01718 01719 01720 /* 01721 * NV_CTRL_MAX_DISPLAYS - the maximum number of display devices that 01722 * can be driven simultaneously on a GPU (e.g., that can be used in a 01723 * MetaMode at once). Note that this does not indicate the maximum 01724 * number of bits that can be set in NV_CTRL_CONNECTED_DISPLAYS, 01725 * because more display devices can be connected than are actively in 01726 * use. 01727 */ 01728 01729 #define NV_CTRL_MAX_DISPLAYS 245 /* R--G */ 01730 01731 01732 /* 01733 * NV_CTRL_DYNAMIC_TWINVIEW - Returns whether or not the screen 01734 * supports dynamic twinview. 01735 */ 01736 01737 #define NV_CTRL_DYNAMIC_TWINVIEW 246 /* R-- */ 01738 01739 01740 /* 01741 * NV_CTRL_MULTIGPU_DISPLAY_OWNER - Returns the GPU ID of the GPU 01742 * that has the display device(s) used for showing the X Screen. 01743 */ 01744 01745 #define NV_CTRL_MULTIGPU_DISPLAY_OWNER 247 /* R-- */ 01746 01747 01748 /* 01749 * NV_CTRL_GPU_SCALING - Controls what the GPU scales to and how. 01750 * This attribute is a packed integer; the scaling target (native/best fit) 01751 * is packed in the upper 16-bits and the scaling method is packed in the 01752 * lower 16-bits. 01753 * 01754 * 'Best fit' scaling will make the GPU scale the frontend (current) mode to 01755 * the closest larger resolution in the flat panel's EDID and allow the 01756 * flat panel to do its own scaling to the native resolution. 01757 * 01758 * 'Native' scaling will make the GPU scale the frontend (current) mode to 01759 * the flat panel's native resolution, thus disabling any internal scaling 01760 * the flat panel might have. 01761 */ 01762 01763 #define NV_CTRL_GPU_SCALING 248 /* RWDG */ 01764 01765 #define NV_CTRL_GPU_SCALING_TARGET_INVALID 0 01766 #define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_BEST_FIT 1 01767 #define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_NATIVE 2 01768 01769 #define NV_CTRL_GPU_SCALING_METHOD_INVALID 0 01770 #define NV_CTRL_GPU_SCALING_METHOD_STRETCHED 1 01771 #define NV_CTRL_GPU_SCALING_METHOD_CENTERED 2 01772 #define NV_CTRL_GPU_SCALING_METHOD_ASPECT_SCALED 3 01773 01774 01775 /* 01776 * NV_CTRL_FRONTEND_RESOLUTION - Returns the dimensions of the frontend 01777 * (current) resolution as determined by the NVIDIA X Driver. 01778 * 01779 * This attribute is a packed integer; the width is packed in the upper 01780 * 16-bits and the height is packed in the lower 16-bits. 01781 */ 01782 01783 #define NV_CTRL_FRONTEND_RESOLUTION 249 /* R-DG */ 01784 01785 01786 /* 01787 * NV_CTRL_BACKEND_RESOLUTION - Returns the dimensions of the 01788 * backend resolution as determined by the NVIDIA X Driver. 01789 * 01790 * The backend resolution is the resolution (supported by the display 01791 * device) the GPU is set to scale to. If this resolution matches the 01792 * frontend resolution, GPU scaling will not be needed/used. 01793 * 01794 * This attribute is a packed integer; the width is packed in the upper 01795 * 16-bits and the height is packed in the lower 16-bits. 01796 */ 01797 01798 #define NV_CTRL_BACKEND_RESOLUTION 250 /* R-DG */ 01799 01800 01801 /* 01802 * NV_CTRL_FLATPANEL_NATIVE_RESOLUTION - Returns the dimensions of the 01803 * native resolution of the flat panel as determined by the 01804 * NVIDIA X Driver. 01805 * 01806 * The native resolution is the resolution at which a flat panel 01807 * must display any image. All other resolutions must be scaled to this 01808 * resolution through GPU scaling or the DFP's native scaling capabilities 01809 * in order to be displayed. 01810 * 01811 * This attribute is only valid for flat panel (DFP) display devices. 01812 * 01813 * This attribute is a packed integer; the width is packed in the upper 01814 * 16-bits and the height is packed in the lower 16-bits. 01815 */ 01816 01817 #define NV_CTRL_FLATPANEL_NATIVE_RESOLUTION 251 /* R-DG */ 01818 01819 01820 /* 01821 * NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION - Returns the dimensions of the 01822 * resolution, selected by the X driver, from the DFP's EDID that most 01823 * closely matches the frontend resolution of the current mode. The best 01824 * fit resolution is selected on a per-mode basis. 01825 * NV_CTRL_GPU_SCALING_TARGET is used to select between 01826 * NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION and NV_CTRL_NATIVE_RESOLUTION. 01827 * 01828 * This attribute is only valid for flat panel (DFP) display devices. 01829 * 01830 * This attribute is a packed integer; the width is packed in the upper 01831 * 16-bits and the height is packed in the lower 16-bits. 01832 */ 01833 01834 #define NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION 252 /* R-DG */ 01835 01836 01837 /* 01838 * NV_CTRL_GPU_SCALING_ACTIVE - Returns the current state of 01839 * GPU scaling. GPU scaling is mode-specific (meaning it may vary 01840 * depending on which mode is currently set). GPU scaling is active if 01841 * the frontend timing (current resolution) is different than the target 01842 * resolution. The target resolution is either the native resolution of 01843 * the flat panel or the best fit resolution supported by the flat panel. 01844 * What (and how) the GPU should scale to is controlled through the 01845 * NV_CTRL_GPU_SCALING attribute. 01846 */ 01847 01848 #define NV_CTRL_GPU_SCALING_ACTIVE 253 /* R-DG */ 01849 01850 01851 /* 01852 * NV_CTRL_DFP_SCALING_ACTIVE - Returns the current state of 01853 * DFP scaling. DFP scaling is mode-specific (meaning it may vary 01854 * depending on which mode is currently set). DFP scaling is active if 01855 * the GPU is set to scale to the best fit resolution (NV_CTRL_GPU_SCALING 01856 * is set to NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_BEST_FIT) and the best fit 01857 * and native resolutions are different. 01858 */ 01859 01860 #define NV_CTRL_DFP_SCALING_ACTIVE 254 /* R-DG */ 01861 01862 01863 /* 01864 * NV_CTRL_FSAA_APPLICATION_ENHANCED - Controls how the NV_CTRL_FSAA_MODE 01865 * is applied when NV_CTRL_FSAA_APPLICATION_CONTROLLED is set to 01866 * NV_CTRL_APPLICATION_CONTROLLED_DISABLED. When 01867 * NV_CTRL_FSAA_APPLICATION_ENHANCED is _DISABLED, OpenGL applications will 01868 * be forced to use the FSAA mode specified by NV_CTRL_FSAA_MODE. when set 01869 * to _ENABLED, only those applications that have selected a multisample 01870 * FBConfig will be made to use the NV_CTRL_FSAA_MODE specified. 01871 * 01872 * This attribute is ignored when NV_CTRL_FSAA_APPLICATION_CONTROLLED is 01873 * set to NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED. 01874 */ 01875 01876 #define NV_CTRL_FSAA_APPLICATION_ENHANCED 255 /* RW-X */ 01877 #define NV_CTRL_FSAA_APPLICATION_ENHANCED_ENABLED 1 01878 #define NV_CTRL_FSAA_APPLICATION_ENHANCED_DISABLED 0 01879 01880 01881 /* 01882 * NV_CTRL_FRAMELOCK_SYNC_RATE_4 - This is the refresh rate that the 01883 * frame lock board is sending to the GPU with 4 digits of precision. 01884 * 01885 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 01886 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK. 01887 */ 01888 01889 #define NV_CTRL_FRAMELOCK_SYNC_RATE_4 256 /* R--F */ 01890 01891 01892 /* 01893 * NV_CTRL_GVO_LOCK_OWNER - indicates that the GVO device is available 01894 * or in use (by GLX, Clone Mode, TwinView etc). 01895 * 01896 * The GVO device is locked by GLX when the GLX_NV_video_out function 01897 * calls glXGetVideoDeviceNV(). The GVO device is then unlocked when 01898 * glXReleaseVideoDeviceNV() is called, or the X Display used when calling 01899 * glXGetVideoDeviceNV() is closed. 01900 * 01901 * The GVO device is locked/unlocked for Clone mode use when the 01902 * attribute NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled/disabled. 01903 * 01904 * The GVO device is locked/unlocked by TwinView mode, when the GVO device is 01905 * associated/unassociated to/from an X screen through the 01906 * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES attribute directly. 01907 * 01908 * When the GVO device is locked, setting of the following GVO NV-CONTROL 01909 * attributes will not happen immediately and will instead be cached. The 01910 * GVO resource will need to be disabled/released and re-enabled/claimed for 01911 * the values to be flushed. These attributes are: 01912 * 01913 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 01914 * NV_CTRL_GVO_DATA_FORMAT 01915 * NV_CTRL_GVO_FLIP_QUEUE_SIZE 01916 */ 01917 01918 #define NV_CTRL_GVO_LOCK_OWNER 257 /* R-- */ 01919 #define NV_CTRL_GVO_LOCK_OWNER_NONE 0 01920 #define NV_CTRL_GVO_LOCK_OWNER_GLX 1 01921 #define NV_CTRL_GVO_LOCK_OWNER_CLONE 2 01922 #define NV_CTRL_GVO_LOCK_OWNER_X_SCREEN 3 01923 01924 01925 /* 01926 * NV_CTRL_HWOVERLAY - when a workstation overlay is in use, reports 01927 * whether the hardware overlay is used, or if the overlay is emulated. 01928 */ 01929 01930 #define NV_CTRL_HWOVERLAY 258 /* R-- */ 01931 #define NV_CTRL_HWOVERLAY_FALSE 0 01932 #define NV_CTRL_HWOVERLAY_TRUE 1 01933 01934 /* 01935 * NV_CTRL_NUM_GPU_ERRORS_RECOVERED - Returns the number of GPU errors 01936 * occured. This attribute may be queried through XNVCTRLQueryTargetAttribute() 01937 * using a NV_CTRL_TARGET_TYPE_X_SCREEN target. 01938 */ 01939 01940 #define NV_CTRL_NUM_GPU_ERRORS_RECOVERED 259 /* R--- */ 01941 01942 01943 /* 01944 * NV_CTRL_REFRESH_RATE_3 - Returns the refresh rate of the specified 01945 * display device in 1000 * Hz (ie. to get the refresh rate in Hz, divide 01946 * the returned value by 1000.) 01947 * 01948 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 01949 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 01950 */ 01951 01952 #define NV_CTRL_REFRESH_RATE_3 260 /* R-DG */ 01953 01954 01955 /* 01956 * NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS - if the OnDemandVBlankInterrupts 01957 * X driver option is set to true, this attribute can be used to 01958 * determine if on-demand VBlank interrupt control is enabled on the 01959 * specified GPU, as well as to enable or disable this feature. 01960 */ 01961 01962 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS 261 /* RW-G */ 01963 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_OFF 0 01964 #define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_ON 1 01965 01966 01967 /* 01968 * NV_CTRL_GPU_POWER_SOURCE reports the type of power source 01969 * of the GPU driving the X screen. 01970 */ 01971 01972 #define NV_CTRL_GPU_POWER_SOURCE 262 /* R--G */ 01973 #define NV_CTRL_GPU_POWER_SOURCE_AC 0 01974 #define NV_CTRL_GPU_POWER_SOURCE_BATTERY 1 01975 01976 01977 /* 01978 * NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE reports the current 01979 * Performance mode of the GPU driving the X screen. Running 01980 * a 3D app for example, will change this performance mode, 01981 * if Adaptive Clocking is enabled. 01982 */ 01983 01984 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE 263 /* R--G */ 01985 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_DESKTOP 0 01986 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_MAXPERF 1 01987 01988 01989 /* NV_CTRL_GLYPH_CACHE - Enables RENDER Glyph Caching to VRAM */ 01990 01991 #define NV_CTRL_GLYPH_CACHE 264 /* RW- */ 01992 #define NV_CTRL_GLYPH_CACHE_DISABLED 0 01993 #define NV_CTRL_GLYPH_CACHE_ENABLED 1 01994 01995 01996 /* 01997 * NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL reports the current 01998 * Performance level of the GPU driving the X screen. Each 01999 * Performance level has associated NVClock and Mem Clock values. 02000 */ 02001 02002 #define NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL 265 /* R--G */ 02003 02004 02005 /* 02006 * NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE reports if Adaptive Clocking 02007 * is Enabled on the GPU driving the X screen. 02008 */ 02009 02010 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE 266 /* R--G */ 02011 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_DISABLED 0 02012 #define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_ENABLED 1 02013 02014 02015 /* 02016 * NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED - Returns whether or not the GVO output 02017 * video is locked to the GPU. 02018 */ 02019 02020 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED 267 /* R--- */ 02021 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_FALSE 0 02022 #define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_TRUE 1 02023 02024 02025 /* 02026 * NV_CTRL_GVO_SYNC_LOCK_STATUS - Returns whether or not the GVO device 02027 * is locked to the input ref signal. If the sync mode is set to 02028 * NV_CTRL_GVO_SYNC_MODE_GENLOCK, then this returns the genlock 02029 * sync status, and if the sync mode is set to NV_CTRL_GVO_SYNC_MODE_FRAMELOCK, 02030 * then this reports the frame lock status. 02031 */ 02032 02033 #define NV_CTRL_GVO_SYNC_LOCK_STATUS 268 /* R--- */ 02034 #define NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED 0 02035 #define NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED 1 02036 02037 02038 /* 02039 * NV_CTRL_GVO_ANC_TIME_CODE_GENERATION - Allows SDI device to generate 02040 * time codes in the ANC region of the SDI video output stream. 02041 */ 02042 02043 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION 269 /* RW-- */ 02044 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_DISABLE 0 02045 #define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_ENABLE 1 02046 02047 02048 /* 02049 * NV_CTRL_GVO_COMPOSITE - Enables/Disables SDI compositing. This attribute 02050 * is only available when an SDI input source is detected and is in genlock 02051 * mode. 02052 */ 02053 02054 #define NV_CTRL_GVO_COMPOSITE 270 /* RW-- */ 02055 #define NV_CTRL_GVO_COMPOSITE_DISABLE 0 02056 #define NV_CTRL_GVO_COMPOSITE_ENABLE 1 02057 02058 02059 /* 02060 * NV_CTRL_GVO_COMPOSITE_ALPHA_KEY - When compositing is enabled, this 02061 * enables/disables alpha blending. 02062 */ 02063 02064 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY 271 /* RW-- */ 02065 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_DISABLE 0 02066 #define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_ENABLE 1 02067 02068 02069 /* 02070 * NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE - Set the values of a luma 02071 * channel range. This is a packed int that has the following format 02072 * (in order of high-bits to low bits): 02073 * 02074 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits) 02075 * 02076 * To query the current values, pass the range # throught he display_mask 02077 * variable. 02078 */ 02079 02080 #define NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE 272 /* RW-- */ 02081 02082 #define NV_CTRL_GVO_COMPOSITE_MAKE_RANGE(range, enable, min, max) \ 02083 ((((min) & 0x3FF) << 0) | \ 02084 (((max) & 0x3FF) << 10) | \ 02085 (((enable) & 0x1) << 20) | \ 02086 (((range) & 0x7FF) << 21)) 02087 02088 #define NV_CTRL_GVO_COMPOSITE_GET_RANGE(val, range, enable, min, max) \ 02089 (min) = ((val) >> 0) & 0x3FF; \ 02090 (max) = ((val) >> 10) & 0x3FF; \ 02091 (enable) = ((val) >> 20) & 0x1; \ 02092 (range) = ((val) >> 21) & 0x7FF; 02093 02094 02095 /* 02096 * NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE - Set the values of a CR 02097 * channel range. This is a packed int that has the following format 02098 * (in order of high-bits to low bits): 02099 * 02100 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits) 02101 * 02102 * To query the current values, pass the range # throught he display_mask 02103 * variable. 02104 */ 02105 02106 #define NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE 273 /* RW-- */ 02107 02108 02109 /* 02110 * NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE - Set the values of a CB 02111 * channel range. This is a packed int that has the following format 02112 * (in order of high-bits to low bits): 02113 * 02114 * Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits) 02115 * 02116 * To query the current values, pass the range # throught he display_mask 02117 * variable. 02118 */ 02119 02120 #define NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE 274 /* RW-- */ 02121 02122 02123 /* 02124 * NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES - Returns the number of ranges 02125 * available for each channel (Y/Luma, Cr, and Cb.) 02126 */ 02127 02128 #define NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES 275 /* R--- */ 02129 02130 02131 /* 02132 * NV_CTRL_SWITCH_TO_DISPLAYS - Can be used to select which displays 02133 * to switch to (as a hotkey event). 02134 */ 02135 02136 #define NV_CTRL_SWITCH_TO_DISPLAYS 276 /* -W- */ 02137 02138 02139 /* 02140 * NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT - Event that notifies 02141 * when a notebook lid change occurs (i.e. when the lid is opened or 02142 * closed.) This attribute can be queried to retrieve the current 02143 * notebook lid status (opened/closed.) 02144 */ 02145 02146 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT 277 /* RW- */ 02147 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_CLOSE 0 02148 #define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_OPEN 1 02149 02150 /* 02151 * NV_CTRL_NOTEBOOK_INTERNAL_LCD - Returns the display device mask of 02152 * the intenal LCD of a notebook. 02153 */ 02154 02155 #define NV_CTRL_NOTEBOOK_INTERNAL_LCD 278 /* R-- */ 02156 02157 /* 02158 * NV_CTRL_DEPTH_30_ALLOWED - returns whether the NVIDIA X driver supports 02159 * depth 30 on the specified X screen or GPU. 02160 */ 02161 02162 #define NV_CTRL_DEPTH_30_ALLOWED 279 /* R--G */ 02163 02164 02165 /* 02166 * NV_CTRL_MODE_SET_EVENT This attribute is sent as an event 02167 * when hotkey, ctrl-alt-+/- or randr event occurs. Note that 02168 * This attribute cannot be set or queried and is meant to 02169 * be received by clients that wish to be notified of when 02170 * mode set events occur. 02171 */ 02172 02173 #define NV_CTRL_MODE_SET_EVENT 280 /* --- */ 02174 02175 02176 /* 02177 * NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE - the gamma value used by 02178 * OpenGL when NV_CTRL_OPENGL_AA_LINE_GAMMA is enabled 02179 */ 02180 02181 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE 281 /* RW-X */ 02182 02183 02184 /* 02185 * NV_CTRL_VCSC_HIGH_PERF_MODE - Is used to both query High Performance Mode 02186 * status on the Visual Computing System, and also to enable or disable High 02187 * Performance Mode. 02188 */ 02189 02190 #define NV_CTRL_VCSC_HIGH_PERF_MODE 282 /* RW-V */ 02191 #define NV_CTRL_VCSC_HIGH_PERF_MODE_DISABLE 0 02192 #define NV_CTRL_VCSC_HIGH_PERF_MODE_ENABLE 1 02193 02194 02195 /* 02196 * NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE - the gamma value used by 02197 * OpenGL when NV_CTRL_OPENGL_AA_LINE_GAMMA is enabled 02198 */ 02199 02200 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE 281 /* RW-X */ 02201 02202 /* 02203 * NV_CTRL_DISPLAYPORT_LINK_RATE - returns the negotiated lane bandwidth of the 02204 * DisplayPort main link. 02205 * This attribute is only available for DisplayPort flat panels. 02206 */ 02207 02208 #define NV_CTRL_DISPLAYPORT_LINK_RATE 291 /* R-DG */ 02209 #define NV_CTRL_DISPLAYPORT_LINK_RATE_DISABLED 0x0 02210 #define NV_CTRL_DISPLAYPORT_LINK_RATE_1_62GBPS 0x6 02211 #define NV_CTRL_DISPLAYPORT_LINK_RATE_2_70GBPS 0xA 02212 02213 /* 02214 * NV_CTRL_STEREO_EYES_EXCHANGE - Controls whether or not the left and right 02215 * eyes of a stereo image are flipped. 02216 */ 02217 02218 #define NV_CTRL_STEREO_EYES_EXCHANGE 292 /* RW-X */ 02219 #define NV_CTRL_STEREO_EYES_EXCHANGE_OFF 0 02220 #define NV_CTRL_STEREO_EYES_EXCHANGE_ON 1 02221 02222 /* 02223 * NV_CTRL_NO_SCANOUT - returns whether the special "NoScanout" mode is 02224 * enabled on the specified X screen or GPU; for details on this mode, 02225 * see the description of the "none" value for the "UseDisplayDevice" 02226 * X configuration option in the NVIDIA driver README. 02227 */ 02228 02229 #define NV_CTRL_NO_SCANOUT 293 /* R--G */ 02230 #define NV_CTRL_NO_SCANOUT_DISABLED 0 02231 #define NV_CTRL_NO_SCANOUT_ENABLED 1 02232 02233 /* 02234 * NV_CTRL_GVO_CSC_CHANGED_EVENT This attribute is sent as an event 02235 * when the color space conversion matrix has been altered by another 02236 * client. 02237 */ 02238 02239 #define NV_CTRL_GVO_CSC_CHANGED_EVENT 294 /* --- */ 02240 02241 /* 02242 * NV_CTRL_FRAMELOCK_SLAVEABLE - Returns a bitmask of the display devices 02243 * that are (currently) allowed to be selected as slave devices for the 02244 * given GPU 02245 */ 02246 02247 #define NV_CTRL_FRAMELOCK_SLAVEABLE 295 /* R-DG */ 02248 02249 /* 02250 * NV_CTRL_GVO_SYNC_TO_DISPLAY This attribute controls whether or not 02251 * the non-SDI display device will be sync'ed to the SDI display device 02252 * (when configured in TwinView, Clone Mode or when using the SDI device 02253 * with OpenGL). 02254 */ 02255 02256 #define NV_CTRL_GVO_SYNC_TO_DISPLAY 296 /* --- */ 02257 #define NV_CTRL_GVO_SYNC_TO_DISPLAY_DISABLE 0 02258 #define NV_CTRL_GVO_SYNC_TO_DISPLAY_ENABLE 1 02259 02260 /* 02261 * NV_CTRL_X_SERVER_UNIQUE_ID - returns a pseudo-unique identifier for this 02262 * X server. Intended for use in cases where an NV-CONTROL client communicates 02263 * with multiple X servers, and wants some level of confidence that two 02264 * X Display connections correspond to the same or different X servers. 02265 */ 02266 02267 #define NV_CTRL_X_SERVER_UNIQUE_ID 297 /* R--- */ 02268 02269 /* 02270 * NV_CTRL_PIXMAP_CACHE - This attribute controls whether the driver attempts to 02271 * store video memory pixmaps in a cache. The cache speeds up allocation and 02272 * deallocation of pixmaps, but could use more memory than when the cache is 02273 * disabled. 02274 */ 02275 02276 #define NV_CTRL_PIXMAP_CACHE 298 /* RW-X */ 02277 #define NV_CTRL_PIXMAP_CACHE_DISABLE 0 02278 #define NV_CTRL_PIXMAP_CACHE_ENABLE 1 02279 02280 /* 02281 * NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB - When the pixmap cache is enabled and 02282 * there is not enough free space in the cache to fit a new pixmap, the driver 02283 * will round up to the next multiple of this number of kilobytes when 02284 * allocating more memory for the cache. 02285 */ 02286 02287 #define NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB 299 /* RW-X */ 02288 02289 /* 02290 * NV_CTRL_IS_GVO_DISPLAY - returns whether or not a given display is an 02291 * SDI device. 02292 */ 02293 02294 #define NV_CTRL_IS_GVO_DISPLAY 300 /* R-D */ 02295 #define NV_CTRL_IS_GVO_DISPLAY_FALSE 0 02296 #define NV_CTRL_IS_GVO_DISPLAY_TRUE 1 02297 02298 /* 02299 * NV_CTRL_PCI_ID - Returns the PCI vendor and device ID of the GPU. 02300 * 02301 * NV_CTRL_PCI_ID is a "packed" integer attribute; the PCI vendor ID is stored 02302 * in the upper 16 bits of the integer, and the PCI device ID is stored in the 02303 * lower 16 bits of the integer. 02304 */ 02305 02306 #define NV_CTRL_PCI_ID 301 /* R--G */ 02307 02308 /* 02309 * NV_CTRL_GVO_FULL_RANGE_COLOR - Allow full range color data [4-1019] 02310 * without clamping to [64-940]. 02311 */ 02312 02313 #define NV_CTRL_GVO_FULL_RANGE_COLOR 302 /* RW- */ 02314 #define NV_CTRL_GVO_FULL_RANGE_COLOR_DISABLED 0 02315 #define NV_CTRL_GVO_FULL_RANGE_COLOR_ENABLED 1 02316 02317 /* 02318 * NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE - returns whether or not 02319 * SLI Mosaic Mode supported. 02320 */ 02321 02322 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE 303 /* R-- */ 02323 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_FALSE 0 02324 #define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_TRUE 1 02325 02326 /* 02327 * NV_CTRL_GVO_ENABLE_RGB_DATA - Allows clients to specify when 02328 * the GVO board should process colors as RGB when the output data 02329 * format is one of the NV_CTRL_GVO_DATA_FORMAT_???_PASSTRHU modes. 02330 */ 02331 02332 #define NV_CTRL_GVO_ENABLE_RGB_DATA 304 /* RW- */ 02333 #define NV_CTRL_GVO_ENABLE_RGB_DATA_DISABLE 0 02334 #define NV_CTRL_GVO_ENABLE_RGB_DATA_ENABLE 1 02335 02336 /* 02337 * NV_CTRL_IMAGE_SHARPENING_DEFAULT - Returns default value of 02338 * Image Sharpening. 02339 */ 02340 02341 #define NV_CTRL_IMAGE_SHARPENING_DEFAULT 305 /* R-- */ 02342 02343 /* 02344 * NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION - Returns the number of nanoseconds 02345 * that one unit of NV_CTRL_FRAMELOCK_SYNC_DELAY corresponds to. 02346 */ 02347 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION 318 /* R-- */ 02348 02349 #define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION 02350 02351 02352 /**************************************************************************/ 02353 02354 /* 02355 * String Attributes: 02356 * 02357 * String attributes can be queryied through the XNVCTRLQueryStringAttribute() 02358 * and XNVCTRLQueryTargetStringAttribute() function calls. 02359 * 02360 * String attributes can be set through the XNVCTRLSetStringAttribute() 02361 * function call. (There are currently no string attributes that can be 02362 * set on non-X Screen targets.) 02363 * 02364 * Unless otherwise noted, all string attributes can be queried/set using an 02365 * NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take an 02366 * NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried/set through 02367 * XNVCTRLQueryStringAttribute()/XNVCTRLSetStringAttribute() (Since 02368 * these assume an X Screen target). 02369 */ 02370 02371 02372 /* 02373 * NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the 02374 * specified X screen is running. 02375 * 02376 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02377 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02378 */ 02379 02380 #define NV_CTRL_STRING_PRODUCT_NAME 0 /* R--G */ 02381 02382 02383 /* 02384 * NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on 02385 * which the specified X screen is running. 02386 */ 02387 02388 #define NV_CTRL_STRING_VBIOS_VERSION 1 /* R--G */ 02389 02390 02391 /* 02392 * NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the 02393 * NVIDIA driver version number for the NVIDIA X driver in use. 02394 */ 02395 02396 #define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION 3 /* R--G */ 02397 02398 02399 /* 02400 * NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device 02401 * specified in the display_mask argument. 02402 * 02403 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02404 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02405 */ 02406 02407 #define NV_CTRL_STRING_DISPLAY_DEVICE_NAME 4 /* R-DG */ 02408 02409 02410 /* 02411 * NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the 02412 * specified display device; only valid if the display device is a TV. 02413 */ 02414 02415 #define NV_CTRL_STRING_TV_ENCODER_NAME 5 /* R-DG */ 02416 02417 02418 /* 02419 * NV_CTRL_STRING_GVO_FIRMWARE_VERSION - indicates the version of the 02420 * Firmware on the GVO device. 02421 */ 02422 02423 #define NV_CTRL_STRING_GVO_FIRMWARE_VERSION 8 /* R-- */ 02424 02425 02426 /* 02427 * NV_CTRL_STRING_CURRENT_MODELINE - Return the ModeLine currently 02428 * being used by the specified display device. 02429 * 02430 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02431 * using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02432 * 02433 * The ModeLine string may be prepended with a comma-separated list of 02434 * "token=value" pairs, separated from the ModeLine string by "::". 02435 * This "token=value" syntax is the same as that used in 02436 * NV_CTRL_BINARY_DATA_MODELINES 02437 */ 02438 02439 #define NV_CTRL_STRING_CURRENT_MODELINE 9 /* R-DG */ 02440 02441 02442 /* 02443 * NV_CTRL_STRING_ADD_MODELINE - Adds a ModeLine to the specified 02444 * display device. The ModeLine is not added if validation fails. 02445 * 02446 * The ModeLine string should have the same syntax as a ModeLine in 02447 * the X configuration file; e.g., 02448 * 02449 * "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync 02450 */ 02451 02452 #define NV_CTRL_STRING_ADD_MODELINE 10 /* -WDG */ 02453 02454 02455 /* 02456 * NV_CTRL_STRING_DELETE_MODELINE - Deletes an existing ModeLine 02457 * from the specified display device. The currently selected 02458 * ModeLine cannot be deleted. (This also means you cannot delete 02459 * the last ModeLine.) 02460 * 02461 * The ModeLine string should have the same syntax as a ModeLine in 02462 * the X configuration file; e.g., 02463 * 02464 * "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync 02465 */ 02466 02467 #define NV_CTRL_STRING_DELETE_MODELINE 11 /* -WDG */ 02468 02469 02470 /* 02471 * NV_CTRL_STRING_CURRENT_METAMODE - Returns the metamode currently 02472 * being used by the specified X screen. The MetaMode string has the 02473 * same syntax as the MetaMode X configuration option, as documented 02474 * in the NVIDIA driver README. 02475 * 02476 * The returned string may be prepended with a comma-separated list of 02477 * "token=value" pairs, separated from the MetaMode string by "::". 02478 * This "token=value" syntax is the same as that used in 02479 * NV_CTRL_BINARY_DATA_METAMODES. 02480 */ 02481 02482 #define NV_CTRL_STRING_CURRENT_METAMODE 12 /* R--- */ 02483 02484 02485 /* 02486 * NV_CTRL_STRING_ADD_METAMODE - Adds a MetaMode to the specified 02487 * X Screen. 02488 * 02489 * It is recommended to not use this attribute, but instead use 02490 * NV_CTRL_STRING_OPERATION_ADD_METAMODE. 02491 */ 02492 02493 #define NV_CTRL_STRING_ADD_METAMODE 13 /* -W-- */ 02494 02495 02496 /* 02497 * NV_CTRL_STRING_DELETE_METAMODE - Deletes an existing MetaMode from 02498 * the specified X Screen. The currently selected MetaMode cannot be 02499 * deleted. (This also means you cannot delete the last MetaMode). 02500 * The MetaMode string should have the same syntax as the MetaMode X 02501 * configuration option, as documented in the NVIDIA driver README. 02502 */ 02503 02504 #define NV_CTRL_STRING_DELETE_METAMODE 14 /* -WD-- */ 02505 02506 02507 /* 02508 * NV_CTRL_STRING_VCSC_PRODUCT_NAME - Querys the product name of the 02509 * VCSC device. 02510 * 02511 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02512 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02513 */ 02514 02515 #define NV_CTRL_STRING_VCSC_PRODUCT_NAME 15 /* R---V */ 02516 02517 02518 /* 02519 * NV_CTRL_STRING_VCSC_PRODUCT_ID - Querys the product ID of the VCSC device. 02520 * 02521 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02522 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02523 */ 02524 02525 #define NV_CTRL_STRING_VCSC_PRODUCT_ID 16 /* R---V */ 02526 02527 02528 /* 02529 * NV_CTRL_STRING_VCSC_SERIAL_NUMBER - Querys the unique serial number 02530 * of the VCS device. 02531 * 02532 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02533 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02534 */ 02535 02536 #define NV_CTRL_STRING_VCSC_SERIAL_NUMBER 17 /* R---V */ 02537 02538 02539 /* 02540 * NV_CTRL_STRING_VCSC_BUILD_DATE - Querys the date of the VCS device. 02541 * the returned string is in the following format: "Week.Year" 02542 * 02543 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02544 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02545 */ 02546 02547 #define NV_CTRL_STRING_VCSC_BUILD_DATE 18 /* R---V */ 02548 02549 02550 /* 02551 * NV_CTRL_STRING_VCSC_FIRMWARE_VERSION - Querys the firmware version 02552 * of the VCS device. 02553 * 02554 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02555 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02556 */ 02557 02558 #define NV_CTRL_STRING_VCSC_FIRMWARE_VERSION 19 /* R---V */ 02559 02560 02561 /* 02562 * NV_CTRL_STRING_VCSC_FIRMWARE_REVISION - Querys the firmware revision 02563 * of the VCS device. 02564 * 02565 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02566 * using a NV_CTRL_TARGET_TYPE_VCS target. 02567 */ 02568 02569 #define NV_CTRL_STRING_VCSC_FIRMWARE_REVISION 20 /* R---V */ 02570 02571 02572 /* 02573 * NV_CTRL_STRING_VCSC_HARDWARE_VERSION - Querys the hardware version 02574 * of the VCS device. 02575 * 02576 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02577 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02578 */ 02579 02580 #define NV_CTRL_STRING_VCSC_HARDWARE_VERSION 21 /* R---V */ 02581 02582 02583 /* 02584 * NV_CTRL_STRING_VCSC_HARDWARE_REVISION - Querys the hardware revision 02585 * of the VCS device. 02586 * 02587 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02588 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02589 */ 02590 02591 #define NV_CTRL_STRING_VCSC_HARDWARE_REVISION 22 /* R---V */ 02592 02593 02594 /* 02595 * NV_CTRL_STRING_MOVE_METAMODE - Moves a MetaMode to the specified 02596 * index location. The MetaMode must already exist in the X Screen's 02597 * list of MetaModes (as returned by the NV_CTRL_BINARY_DATA_METAMODES 02598 * attribute). If the index is larger than the number of MetaModes in 02599 * the list, the MetaMode is moved to the end of the list. The 02600 * MetaMode string should have the same syntax as the MetaMode X 02601 * configuration option, as documented in the NVIDIA driver README. 02602 02603 * The MetaMode string must be prepended with a comma-separated list 02604 * of "token=value" pairs, separated from the MetaMode string by "::". 02605 * Currently, the only valid token is "index", which indicates where 02606 * in the MetaMode list the MetaMode should be moved to. 02607 * 02608 * Other tokens may be added in the future. 02609 * 02610 * E.g., 02611 * "index=5 :: CRT-0: 1024x768 @1024x768 +0+0" 02612 */ 02613 02614 #define NV_CTRL_STRING_MOVE_METAMODE 23 /* -W-- */ 02615 02616 02617 /* 02618 * NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES - returns the valid 02619 * horizontal sync ranges used to perform mode validation for the 02620 * specified display device. The ranges are in the same format as the 02621 * "HorizSync" X config option: 02622 * 02623 * "horizsync-range may be a comma separated list of either discrete 02624 * values or ranges of values. A range of values is two values 02625 * separated by a dash." 02626 * 02627 * The values are in kHz. 02628 * 02629 * Additionally, the string may be prepended with a comma-separated 02630 * list of "token=value" pairs, separated from the HorizSync string by 02631 * "::". Valid tokens: 02632 * 02633 * Token Value 02634 * "source" "edid" - HorizSync is from the display device's EDID 02635 * "xconfig" - HorizSync is from the "HorizSync" entry in 02636 * the Monitor section of the X config file 02637 * "option" - HorizSync is from the "HorizSync" NVIDIA X 02638 * config option 02639 * "twinview" - HorizSync is from the "SecondMonitorHorizSync" 02640 * NVIDIA X config option 02641 * "builtin" - HorizSync is from NVIDIA X driver builtin 02642 * default values 02643 * 02644 * Additional tokens and/or values may be added in the future. 02645 * 02646 * Example: "source=edid :: 30.000-62.000" 02647 */ 02648 02649 #define NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES 24 /* R-DG */ 02650 02651 02652 /* 02653 * NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES - returns the valid 02654 * vertical refresh ranges used to perform mode validation for the 02655 * specified display device. The ranges are in the same format as the 02656 * "VertRefresh" X config option: 02657 * 02658 * "vertrefresh-range may be a comma separated list of either discrete 02659 * values or ranges of values. A range of values is two values 02660 * separated by a dash." 02661 * 02662 * The values are in Hz. 02663 * 02664 * Additionally, the string may be prepended with a comma-separated 02665 * list of "token=value" pairs, separated from the VertRefresh string by 02666 * "::". Valid tokens: 02667 * 02668 * Token Value 02669 * "source" "edid" - VertRefresh is from the display device's EDID 02670 * "xconfig" - VertRefresh is from the "VertRefresh" entry in 02671 * the Monitor section of the X config file 02672 * "option" - VertRefresh is from the "VertRefresh" NVIDIA X 02673 * config option 02674 * "twinview" - VertRefresh is from the "SecondMonitorVertRefresh" 02675 * NVIDIA X config option 02676 * "builtin" - VertRefresh is from NVIDIA X driver builtin 02677 * default values 02678 * 02679 * Additional tokens and/or values may be added in the future. 02680 * 02681 * Example: "source=edid :: 50.000-75.000" 02682 */ 02683 02684 #define NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES 25 /* R-DG */ 02685 02686 02687 /* 02688 * NV_CTRL_STRING_XINERAMA_SCREEN_INFO - returns the physical X Screen's 02689 * initial position and size (in absolute coordinates) within the Xinerama 02690 * desktop as the "token=value" string: "x=#, y=#, width=#, height=#" 02691 * 02692 * Querying this attribute returns FALSE if NV_CTRL_XINERAMA is not 02693 * NV_CTRL_XINERAMA_ON. 02694 */ 02695 02696 #define NV_CTRL_STRING_XINERAMA_SCREEN_INFO 26 /* R--- */ 02697 02698 02699 /* 02700 * NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER - used to specify the 02701 * order that display devices will be returned via Xinerama when 02702 * TwinViewXineramaInfo is enabled. Follows the same syntax as the 02703 * TwinViewXineramaInfoOrder X config option. 02704 */ 02705 02706 #define NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER 27 /* RW-- */ 02707 02708 02709 /* 02710 * NV_CTRL_STRING_SLI_MODE - returns a string describing the current 02711 * SLI mode, if any, or FALSE if SLI is not currently enabled. 02712 * 02713 * This string should be used for informational purposes only, and 02714 * should not be used to distinguish between SLI modes, other than to 02715 * recognize when SLI is disabled (FALSE is returned) or 02716 * enabled (the returned string is non-NULL and describes the current 02717 * SLI configuration). 02718 */ 02719 02720 #define NV_CTRL_STRING_SLI_MODE 28 /* R---*/ 02721 02722 02723 /* 02724 * NV_CTRL_STRING_PERFORMANCE_MODES - returns a string with all the 02725 * performance modes defined for this GPU along with their associated 02726 * NV Clock and Memory Clock values. 02727 * 02728 * Each performance modes are returned as a comma-separated list of 02729 * "token=value" pairs. Each set of performance mode tokens are separated 02730 * by a ";". Valid tokens: 02731 * 02732 * Token Value 02733 * "perf" integer - the Performance level 02734 * "nvClock" integer - the GPU clocks (in MHz) for the perf level 02735 * "memClock" integer - the memory clocks (in MHz) for the perf level 02736 * 02737 * 02738 * Example: 02739 * 02740 * perf=0, nvclock=500, memclock=505 ; perf=1, nvclock=650, memclock=505 02741 * 02742 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02743 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02744 */ 02745 02746 #define NV_CTRL_STRING_PERFORMANCE_MODES 29 /* R--G */ 02747 02748 02749 /* 02750 * NV_CTRL_STRING_VCSC_FAN_STATUS - returns a string with status of all the 02751 * fans in the Visual Computing System, if such a query is supported. Fan 02752 * information is reported along with its tachometer reading (in RPM) and a 02753 * flag indicating whether the fan has failed or not. 02754 * 02755 * Valid tokens: 02756 * 02757 * Token Value 02758 * "fan" integer - the Fan index 02759 * "speed" integer - the tachometer reading of the fan in rpm 02760 * "fail" integer - flag to indicate whether the fan has failed 02761 * 02762 * Example: 02763 * 02764 * fan=0, speed=694, fail=0 ; fan=1, speed=693, fail=0 02765 * 02766 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02767 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02768 * 02769 */ 02770 02771 #define NV_CTRL_STRING_VCSC_FAN_STATUS 30 /* R---V */ 02772 02773 02774 /* 02775 * NV_CTRL_STRING_VCSC_TEMPERATURES - returns a string with all Temperature 02776 * readings in the Visual Computing System, if such a query is supported. 02777 * Intake, Exhaust and Board Temperature values are reported in Celcius. 02778 * 02779 * Valid tokens: 02780 * 02781 * Token Value 02782 * "intake" integer - the intake temperature for the VCS 02783 * "exhaust" integer - the exhaust temperature for the VCS 02784 * "board" integer - the board temperature of the VCS 02785 * 02786 * Example: 02787 * 02788 * intake=29, exhaust=46, board=41 02789 * 02790 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02791 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02792 * 02793 */ 02794 02795 #define NV_CTRL_STRING_VCSC_TEMPERATURES 31 /* R---V */ 02796 02797 02798 /* 02799 * NV_CTRL_STRING_VCSC_PSU_INFO - returns a string with all Power Supply Unit 02800 * related readings in the Visual Computing System, if such a query is 02801 * supported. Current in amperes, Power in watts, Voltage in volts and PSU 02802 * state may be reported. Not all PSU types support all of these values, and 02803 * therefore some readings may be unknown. 02804 * 02805 * Valid tokens: 02806 * 02807 * Token Value 02808 * "current" integer - the current drawn in amperes by the VCS 02809 * "power" integer - the power drawn in watts by the VCS 02810 * "voltage" integer - the voltage reading of the VCS 02811 * "state" integer - flag to indicate whether PSU is operating normally 02812 * 02813 * Example: 02814 * 02815 * current=10, power=15, voltage=unknown, state=normal 02816 * 02817 * This attribute must be queried through XNVCTRLQueryTargetStringAttribute() 02818 * using a NV_CTRL_TARGET_TYPE_VCSC target. 02819 * 02820 */ 02821 02822 02823 #define NV_CTRL_STRING_VCSC_PSU_INFO 32 /* R---V */ 02824 02825 02826 /* 02827 * NV_CTRL_STRING_GVO_VIDEO_FORMAT_NAME - query the name for the specified 02828 * NV_CTRL_GVO_VIDEO_FORMAT_*. So that this can be queried with existing 02829 * interfaces, XNVCTRLQueryStringAttribute() should be used, and the video 02830 * format specified in the display_mask field; eg: 02831 * 02832 * XNVCTRLQueryStringAttribute(dpy, 02833 * screen, 02834 * NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296, 02835 * NV_CTRL_GVO_VIDEO_FORMAT_NAME, 02836 * &name); 02837 */ 02838 02839 #define NV_CTRL_STRING_GVO_VIDEO_FORMAT_NAME 33 /* R--- */ 02840 02841 #define NV_CTRL_STRING_LAST_ATTRIBUTE \ 02842 NV_CTRL_STRING_GVO_VIDEO_FORMAT_NAME 02843 02844 02845 /**************************************************************************/ 02846 02847 /* 02848 * Binary Data Attributes: 02849 * 02850 * Binary data attributes can be queryied through the XNVCTRLQueryBinaryData() 02851 * and XNVCTRLQueryTargetBinaryData() function calls. 02852 * 02853 * There are currently no binary data attributes that can be set. 02854 * 02855 * Unless otherwise noted, all Binary data attributes can be queried 02856 * using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take 02857 * an NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried through 02858 * XNVCTRLQueryBinaryData() (Since an X Screen target is assumed). 02859 */ 02860 02861 02862 /* 02863 * NV_CTRL_BINARY_DATA_EDID - Returns a display device's EDID information 02864 * data. 02865 * 02866 * This attribute may be queried through XNVCTRLQueryTargetBinaryData() 02867 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02868 */ 02869 02870 #define NV_CTRL_BINARY_DATA_EDID 0 /* R-DG */ 02871 02872 02873 /* 02874 * NV_CTRL_BINARY_DATA_MODELINES - Returns a display device's supported 02875 * ModeLines. ModeLines are returned in a buffer, separated by a single 02876 * '\0' and terminated by two consecutive '\0' s like so: 02877 * 02878 * "ModeLine 1\0ModeLine 2\0ModeLine 3\0Last ModeLine\0\0" 02879 * 02880 * This attribute may be queried through XNVCTRLQueryTargetBinaryData() 02881 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02882 * 02883 * Each ModeLine string may be prepended with a comma-separated list 02884 * of "token=value" pairs, separated from the ModeLine string with a 02885 * "::". Valid tokens: 02886 * 02887 * Token Value 02888 * "source" "xserver" - the ModeLine is from the core X server 02889 * "xconfig" - the ModeLine was specified in the X config file 02890 * "builtin" - the NVIDIA driver provided this builtin ModeLine 02891 * "vesa" - this is a VESA standard ModeLine 02892 * "edid" - the ModeLine was in the display device's EDID 02893 * "nv-control" - the ModeLine was specified via NV-CONTROL 02894 * 02895 * "xconfig-name" - for ModeLines that were specified in the X config 02896 * file, this is the name the X config file 02897 * gave for the ModeLine. 02898 * 02899 * Note that a ModeLine can have several sources; the "source" token 02900 * can appear multiple times in the "token=value" pairs list. 02901 * Additional source values may be specified in the future. 02902 * 02903 * Additional tokens may be added in the future, so it is recommended 02904 * that any token parser processing the returned string from 02905 * NV_CTRL_BINARY_DATA_MODELINES be implemented to gracefully ignore 02906 * unrecognized tokens. 02907 * 02908 * E.g., 02909 * 02910 * "source=xserver, source=vesa, source=edid :: "1024x768_70" 75.0 1024 1048 1184 1328 768 771 777 806 -HSync -VSync" 02911 * "source=xconfig, xconfig-name=1600x1200_60.00 :: "1600x1200_60_0" 161.0 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync" 02912 */ 02913 02914 #define NV_CTRL_BINARY_DATA_MODELINES 1 /* R-DG */ 02915 02916 02917 /* 02918 * NV_CTRL_BINARY_DATA_METAMODES - Returns an X Screen's supported 02919 * MetaModes. MetaModes are returned in a buffer separated by a 02920 * single '\0' and terminated by two consecutive '\0' s like so: 02921 * 02922 * "MetaMode 1\0MetaMode 2\0MetaMode 3\0Last MetaMode\0\0" 02923 * 02924 * The MetaMode string should have the same syntax as the MetaMode X 02925 * configuration option, as documented in the NVIDIA driver README. 02926 02927 * Each MetaMode string may be prepended with a comma-separated list 02928 * of "token=value" pairs, separated from the MetaMode string with 02929 * "::". Currently, valid tokens are: 02930 * 02931 * Token Value 02932 * "id" <number> - the id of this MetaMode; this is stored in 02933 * the Vertical Refresh field, as viewed 02934 * by the XRandR and XF86VidMode X * 02935 * extensions. 02936 * 02937 * "switchable" "yes"/"no" - whether this MetaMode may be switched to via 02938 * ctrl-alt-+/-; Implicit MetaModes (see 02939 * the "IncludeImplicitMetaModes" X 02940 * config option), for example, are not 02941 * normally made available through 02942 * ctrl-alt-+/-. 02943 * 02944 * "source" "xconfig" - the MetaMode was specified in the X 02945 * config file. 02946 * "implicit" - the MetaMode was implicitly added; see the 02947 * "IncludeImplicitMetaModes" X config option 02948 * for details. 02949 * "nv-control" - the MetaMode was added via the NV-CONTROL X 02950 * extension to the currently running X server. 02951 * 02952 * Additional tokens may be added in the future, so it is recommended 02953 * that any token parser processing the returned string from 02954 * NV_CTRL_BINARY_DATA_METAMODES be implemented to gracefully ignore 02955 * unrecognized tokens. 02956 * 02957 * E.g., 02958 * 02959 * "id=50, switchable=yes, source=xconfig :: CRT-0: 1024x768 @1024x768 +0+0" 02960 */ 02961 02962 #define NV_CTRL_BINARY_DATA_METAMODES 2 /* R-D- */ 02963 02964 02965 /* 02966 * NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU - Returns the list of X 02967 * screens currently driven by the given GPU. 02968 * 02969 * The format of the returned data is: 02970 * 02971 * 4 CARD32 number of screens 02972 * 4 * n CARD32 screen indices 02973 * 02974 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 02975 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 02976 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 02977 */ 02978 02979 #define NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU 3 /* R-DG */ 02980 02981 02982 /* 02983 * NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN - Returns the list of GPUs 02984 * currently in use by the given X screen. 02985 * 02986 * The format of the returned data is: 02987 * 02988 * 4 CARD32 number of GPUs 02989 * 4 * n CARD32 GPU indices 02990 */ 02991 02992 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN 4 /* R--- */ 02993 02994 02995 /* 02996 * NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK - Returns the list of 02997 * GPUs currently connected to the given frame lock board. 02998 * 02999 * The format of the returned data is: 03000 * 03001 * 4 CARD32 number of GPUs 03002 * 4 * n CARD32 GPU indices 03003 * 03004 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 03005 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target. This attribute cannot be 03006 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 03007 */ 03008 03009 #define NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK 5 /* R-DF */ 03010 03011 03012 /* 03013 * NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT - Returns the Display Device's 03014 * viewport box into the given X Screen (in X Screen coordinates.) 03015 * 03016 * The format of the returned data is: 03017 * 03018 * 4 CARD32 Offset X 03019 * 4 CARD32 Offset Y 03020 * 4 CARD32 Width 03021 * 4 CARD32 Height 03022 */ 03023 03024 #define NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT 6 /* R-DG */ 03025 03026 03027 /* 03028 * NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU - Returns the list of 03029 * Framelock devices currently connected to the given GPU. 03030 * 03031 * The format of the returned data is: 03032 * 03033 * 4 CARD32 number of Framelocks 03034 * 4 * n CARD32 Framelock indices 03035 * 03036 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 03037 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 03038 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 03039 */ 03040 03041 #define NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU 7 /* R-DG */ 03042 03043 03044 /* 03045 * NV_CTRL_BINARY_DATA_GPUS_USING_VCSC - Returns the list of 03046 * GPU devices connected to the given VCS. 03047 * 03048 * The format of the returned data is: 03049 * 03050 * 4 CARD32 number of GPUs 03051 * 4 * n CARD32 GPU indices 03052 * 03053 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 03054 * using a NV_CTRL_TARGET_TYPE_VCSC target. This attribute cannot be 03055 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN and cannot be queried using 03056 * a NV_CTRL_TARGET_TYPE_X_GPU 03057 */ 03058 03059 #define NV_CTRL_BINARY_DATA_GPUS_USING_VCSC 8 /* R-DV */ 03060 03061 03062 /* 03063 * NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU - Returns the VCSC device 03064 * that is controlling the given GPU. 03065 * 03066 * The format of the returned data is: 03067 * 03068 * 4 CARD32 number of VCS (always 1) 03069 * 4 * n CARD32 VCS indices 03070 * 03071 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 03072 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 03073 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN 03074 */ 03075 03076 #define NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU 9 /* R-DG */ 03077 03078 #define NV_CTRL_BINARY_DATA_LAST_ATTRIBUTE \ 03079 NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU 03080 03081 03082 /**************************************************************************/ 03083 03084 /* 03085 * String Operation Attributes: 03086 * 03087 * These attributes are used with the XNVCTRLStringOperation() 03088 * function; a string is specified as input, and a string is returned 03089 * as output. 03090 * 03091 * Unless otherwise noted, all attributes can be operated upon using 03092 * an NV_CTRL_TARGET_TYPE_X_SCREEN target. 03093 */ 03094 03095 03096 /* 03097 * NV_CTRL_STRING_OPERATION_ADD_METAMODE - provide a MetaMode string 03098 * as input, and returns a string containing comma-separated list of 03099 * "token=value" pairs as output. Currently, the only output token is 03100 * "id", which indicates the id that was assigned to the MetaMode. 03101 * 03102 * All ModeLines referenced in the MetaMode must already exist for 03103 * each display device (as returned by the 03104 * NV_CTRL_BINARY_DATA_MODELINES attribute). 03105 * 03106 * The MetaMode string should have the same syntax as the MetaMode X 03107 * configuration option, as documented in the NVIDIA driver README. 03108 * 03109 * The input string can optionally be prepended with a string of 03110 * comma-separated "token=value" pairs, separated from the MetaMode 03111 * string by "::". Currently, the only valid token is "index" which 03112 * indicates the insertion index for the MetaMode. 03113 * 03114 * E.g., 03115 * 03116 * Input: "index=5 :: 1600x1200+0+0, 1600x1200+1600+0" 03117 * Output: "id=58" 03118 * 03119 * which causes the MetaMode to be inserted at position 5 in the 03120 * MetaMode list (all entries after 5 will be shifted down one slot in 03121 * the list), and the X server's containing mode stores 58 as the 03122 * VRefresh, so that the MetaMode can be uniquely identifed through 03123 * XRandR and XF86VidMode. 03124 */ 03125 03126 #define NV_CTRL_STRING_OPERATION_ADD_METAMODE 0 03127 03128 03129 /* 03130 * NV_CTRL_STRING_OPERATION_GTF_MODELINE - provide as input a string 03131 * of comma-separated "token=value" pairs, and returns a ModeLine 03132 * string, computed using the GTF formula using the parameters from 03133 * the input string. Valid tokens for the input string are "width", 03134 * "height", and "refreshrate". 03135 * 03136 * E.g., 03137 * 03138 * Input: "width=1600, height=1200, refreshrate=60" 03139 * Output: "160.96 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync" 03140 * 03141 * This operation does not have any impact on any display device's 03142 * modePool, and the ModeLine is not validated; it is simply intended 03143 * for generating ModeLines. 03144 */ 03145 03146 #define NV_CTRL_STRING_OPERATION_GTF_MODELINE 1 03147 03148 03149 /* 03150 * NV_CTRL_STRING_OPERATION_CVT_MODELINE - provide as input a string 03151 * of comma-separated "token=value" pairs, and returns a ModeLine 03152 * string, computed using the CVT formula using the parameters from 03153 * the input string. Valid tokens for the input string are "width", 03154 * "height", "refreshrate", and "reduced-blanking". The 03155 * "reduced-blanking" argument can be "0" or "1", to enable or disable 03156 * use of reduced blanking for the CVT formula. 03157 * 03158 * E.g., 03159 * 03160 * Input: "width=1600, height=1200, refreshrate=60, reduced-blanking=1" 03161 * Output: "130.25 1600 1648 1680 1760 1200 1203 1207 1235 +HSync -VSync" 03162 * 03163 * This operation does not have any impact on any display device's 03164 * modePool, and the ModeLine is not validated; it is simply intended 03165 * for generating ModeLines. 03166 */ 03167 03168 #define NV_CTRL_STRING_OPERATION_CVT_MODELINE 2 03169 03170 03171 /* 03172 * NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL - build a ModePool for the 03173 * specified display device on the specified target (either an X 03174 * screen or a GPU). This is typically used to generate a ModePool 03175 * for a display device on a GPU on which no X screens are present. 03176 * 03177 * Currently, a display device's ModePool is static for the life of 03178 * the X server, so XNVCTRLStringOperation will return FALSE if 03179 * requested to build a ModePool on a display device that already has 03180 * a ModePool. 03181 * 03182 * The string input to BUILD_MODEPOOL may be NULL. If it is not NULL, 03183 * then it is interpreted as a double-semicolon ("::") separated list 03184 * of "option=value" pairs, where the options and the syntax of their 03185 * values are the X configuration options that impact the behavior of 03186 * modePool construction; namely: 03187 * 03188 * "ModeValidation" 03189 * "HorizSync" 03190 * "VertRefresh" 03191 * "FlatPanelProperties" 03192 * "TVStandard" 03193 * "ExactModeTimingsDVI" 03194 * "UseEdidFreqs" 03195 * 03196 * An example input string might look like: 03197 * 03198 * "ModeValidation=NoVesaModes :: HorizSync=50-110 :: VertRefresh=50-150" 03199 * 03200 * This request currently does not return a string. 03201 */ 03202 03203 #define NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL 3 /* DG */ 03204 03205 03206 #define NV_CTRL_STRING_OPERATION_LAST_ATTRIBUTE \ 03207 NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL 03208 03209 03210 03211 /**************************************************************************/ 03212 03213 /* 03214 * CTRLAttributeValidValuesRec - 03215 * 03216 * structure and related defines used by 03217 * XNVCTRLQueryValidAttributeValues() to describe the valid values of 03218 * a particular attribute. The type field will be one of: 03219 * 03220 * ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there 03221 * is no fixed range of valid values. 03222 * 03223 * ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value, 03224 * interpretted as a bitmask. 03225 * 03226 * ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are 03227 * either 1 (on/true) or 0 (off/false). 03228 * 03229 * ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value 03230 * between NVCTRLAttributeValidValues.u.range.min and 03231 * NVCTRLAttributeValidValues.u.range.max (inclusive). 03232 * 03233 * ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain 03234 * integer values, indicated by which bits in 03235 * NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit 03236 * 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid 03237 * value, etc). This is useful for attributes like NV_CTRL_FSAA_MODE, 03238 * which can only have certain values, depending on GPU. 03239 * 03240 * 03241 * The permissions field of NVCTRLAttributeValidValuesRec is a bitmask 03242 * that may contain: 03243 * 03244 * ATTRIBUTE_TYPE_READ - Attribute may be read (queried.) 03245 * ATTRIBUTE_TYPE_WRITE - Attribute may be written to (set.) 03246 * ATTRIBUTE_TYPE_DISPLAY - Attribute requires a display mask. 03247 * ATTRIBUTE_TYPE_GPU - Attribute is valid for GPU target types. 03248 * ATTRIBUTE_TYPE_FRAMELOCK - Attribute is valid for Frame Lock target types. 03249 * ATTRIBUTE_TYPE_X_SCREEN - Attribute is valid for X Screen target types. 03250 * ATTRIBUTE_TYPE_XINERAMA - Attribute will be made consistent for all 03251 * X Screens when the Xinerama extension is enabled. 03252 * 03253 * 03254 * See 'Key to Integer Attribute "Permissions"' at the top of this 03255 * file for a description of what these permission bits mean. 03256 */ 03257 03258 #define ATTRIBUTE_TYPE_UNKNOWN 0 03259 #define ATTRIBUTE_TYPE_INTEGER 1 03260 #define ATTRIBUTE_TYPE_BITMASK 2 03261 #define ATTRIBUTE_TYPE_BOOL 3 03262 #define ATTRIBUTE_TYPE_RANGE 4 03263 #define ATTRIBUTE_TYPE_INT_BITS 5 03264 03265 #define ATTRIBUTE_TYPE_READ 0x01 03266 #define ATTRIBUTE_TYPE_WRITE 0x02 03267 #define ATTRIBUTE_TYPE_DISPLAY 0x04 03268 #define ATTRIBUTE_TYPE_GPU 0x08 03269 #define ATTRIBUTE_TYPE_FRAMELOCK 0x10 03270 #define ATTRIBUTE_TYPE_X_SCREEN 0x20 03271 #define ATTRIBUTE_TYPE_XINERAMA 0x40 03272 #define ATTRIBUTE_TYPE_VCSC 0x80 03273 03274 typedef struct _NVCTRLAttributeValidValues { 03275 int type; 03276 union { 03277 struct { 03278 int min; 03279 int max; 03280 } range; 03281 struct { 03282 unsigned int ints; 03283 } bits; 03284 } u; 03285 unsigned int permissions; 03286 } NVCTRLAttributeValidValuesRec; 03287 03288 03289 /**************************************************************************/ 03290 03291 /* 03292 * NV-CONTROL X event notification. 03293 * 03294 * To receive X event notifications dealing with NV-CONTROL, you should 03295 * call XNVCtrlSelectNotify() with one of the following set as the type 03296 * of event to receive (see NVCtrlLib.h for more information): 03297 */ 03298 03299 #define ATTRIBUTE_CHANGED_EVENT 0 03300 #define TARGET_ATTRIBUTE_CHANGED_EVENT 1 03301 #define TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT 2 03302 #define TARGET_STRING_ATTRIBUTE_CHANGED_EVENT 3 03303 #define TARGET_BINARY_ATTRIBUTE_CHANGED_EVENT 4 03304 03305 03306 #endif /* __NVCTRL_H */
1.6.3