00001 #ifndef __NVCTRL_H 00002 #define __NVCTRL_H 00003 00004 00005 /**************************************************************************/ 00006 00019 #define NV_CTRL_TARGET_TYPE_X_SCREEN 0 00020 #define NV_CTRL_TARGET_TYPE_GPU 1 00021 #define NV_CTRL_TARGET_TYPE_FRAMELOCK 2 00022 00023 00024 /**************************************************************************/ 00025 00066 /**************************************************************************/ 00067 00099 #define NV_CTRL_FLATPANEL_SCALING 2 00100 #define NV_CTRL_FLATPANEL_SCALING_DEFAULT 0 00101 #define NV_CTRL_FLATPANEL_SCALING_NATIVE 1 00102 #define NV_CTRL_FLATPANEL_SCALING_SCALED 2 00103 #define NV_CTRL_FLATPANEL_SCALING_CENTERED 3 00104 #define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED 4 00105 00118 #define NV_CTRL_FLATPANEL_DITHERING 3 00119 #define NV_CTRL_FLATPANEL_DITHERING_DEFAULT 0 00120 #define NV_CTRL_FLATPANEL_DITHERING_ENABLED 1 00121 #define NV_CTRL_FLATPANEL_DITHERING_DISABLED 2 00122 00123 00125 /* 00126 * NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the 00127 * specified display device. 00128 */ 00129 00130 #define NV_CTRL_DIGITAL_VIBRANCE 4 /* RWD */ 00131 00132 00142 #define NV_CTRL_BUS_TYPE 5 00143 00144 #define NV_CTRL_BUS_TYPE_AGP 0 00145 #define NV_CTRL_BUS_TYPE_PCI 1 00146 #define NV_CTRL_BUS_TYPE_PCI_EXPRESS 2 00147 #define NV_CTRL_BUS_TYPE_INTEGRATED 3 00148 00156 #define NV_CTRL_VIDEO_RAM 6 /* R-- */ 00157 00158 00165 #define NV_CTRL_IRQ 7 /* R-- */ 00166 00167 00168 /* 00169 * NV_CTRL_OPERATING_SYSTEM - returns the operating system on which 00170 * the X server is running. 00171 */ 00172 00173 #define NV_CTRL_OPERATING_SYSTEM 8 /* R-- */ 00174 #define NV_CTRL_OPERATING_SYSTEM_LINUX 0 00175 #define NV_CTRL_OPERATING_SYSTEM_FREEBSD 1 00176 #define NV_CTRL_OPERATING_SYSTEM_SUNOS 2 00177 00178 00179 /* 00180 * NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients. 00181 * This setting is only applied to OpenGL clients that are started 00182 * after this setting is applied. 00183 */ 00184 00185 #define NV_CTRL_SYNC_TO_VBLANK 9 /* RW- */ 00186 #define NV_CTRL_SYNC_TO_VBLANK_OFF 0 00187 #define NV_CTRL_SYNC_TO_VBLANK_ON 1 00188 00189 00190 /* 00191 * NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL 00192 * clients; on some NVIDIA hardware, this can only be enabled or 00193 * disabled; on other hardware different levels of anisotropic 00194 * filtering can be specified. This setting is only applied to OpenGL 00195 * clients that are started after this setting is applied. 00196 */ 00197 00198 #define NV_CTRL_LOG_ANISO 10 /* RW- */ 00199 00200 00222 #define NV_CTRL_FSAA_MODE 11 /* RW- */ 00223 #define NV_CTRL_FSAA_MODE_NONE 0 00224 #define NV_CTRL_FSAA_MODE_2x 1 00225 #define NV_CTRL_FSAA_MODE_2x_5t 2 00226 #define NV_CTRL_FSAA_MODE_15x15 3 00227 #define NV_CTRL_FSAA_MODE_2x2 4 00228 #define NV_CTRL_FSAA_MODE_4x 5 00229 #define NV_CTRL_FSAA_MODE_4x_9t 6 00230 #define NV_CTRL_FSAA_MODE_8x 7 00231 #define NV_CTRL_FSAA_MODE_16x 8 00232 #define NV_CTRL_FSAA_MODE_8xS 9 00233 #define NV_CTRL_FSAA_MODE_MAX NV_CTRL_FSAA_MODE_8xS 00234 00235 00237 /* 00238 * NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL 00239 * clients. This setting is only applied to OpenGL clients that are 00240 * started after this setting is applied. 00241 */ 00242 00243 #define NV_CTRL_TEXTURE_SHARPEN 12 /* RW- */ 00244 #define NV_CTRL_TEXTURE_SHARPEN_OFF 0 00245 #define NV_CTRL_TEXTURE_SHARPEN_ON 1 00246 00247 00248 /* 00249 * NV_CTRL_UBB - returns whether UBB is enabled for the specified X 00250 * screen. 00251 */ 00252 00253 #define NV_CTRL_UBB 13 /* R-- */ 00254 #define NV_CTRL_UBB_OFF 0 00255 #define NV_CTRL_UBB_ON 1 00256 00257 00258 /* 00259 * NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for 00260 * the specified X screen. 00261 */ 00262 00263 #define NV_CTRL_OVERLAY 14 /* R-- */ 00264 #define NV_CTRL_OVERLAY_OFF 0 00265 #define NV_CTRL_OVERLAY_ON 1 00266 00267 00268 /* 00269 * NV_CTRL_STEREO - returns whether stereo (and what type) is enabled 00270 * for the specified X screen. 00271 */ 00272 00273 #define NV_CTRL_STEREO 16 /* R-- */ 00274 #define NV_CTRL_STEREO_OFF 0 00275 #define NV_CTRL_STEREO_DDC 1 00276 #define NV_CTRL_STEREO_BLUELINE 2 00277 #define NV_CTRL_STEREO_DIN 3 00278 #define NV_CTRL_STEREO_TWINVIEW 4 00279 00280 00281 /* 00282 * NV_CTRL_EMULATE - controls OpenGL software emulation of future 00283 * NVIDIA GPUs. 00284 */ 00285 00286 #define NV_CTRL_EMULATE 17 /* RW- */ 00287 #define NV_CTRL_EMULATE_NONE 0 00288 00289 00290 /* 00291 * NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the 00292 * specified X screen. 00293 */ 00294 00295 #define NV_CTRL_TWINVIEW 18 /* R-- */ 00296 #define NV_CTRL_TWINVIEW_NOT_ENABLED 0 00297 #define NV_CTRL_TWINVIEW_ENABLED 1 00298 00299 00300 /* 00301 * NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating the last 00302 * cached state of the display devices connected to the GPU or GPU driving 00303 * the specified X screen. 00304 * 00305 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00306 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00307 */ 00308 00309 #define NV_CTRL_CONNECTED_DISPLAYS 19 /* R--G */ 00310 00311 00312 /* 00313 * NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what 00314 * display devices are enabled for use on the specified X screen or 00315 * GPU. 00316 * 00317 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00318 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00319 */ 00320 00321 #define NV_CTRL_ENABLED_DISPLAYS 20 /* R--G */ 00322 00323 /**************************************************************************/ 00324 /* 00325 * Integer attributes specific to configuring Frame Lock on boards that 00326 * support it. 00327 */ 00328 00329 00330 /* 00331 * NV_CTRL_FRAMELOCK - returns whether the underlying GPU supports 00332 * Frame Lock. All of the other frame lock attributes are only 00333 * applicable if NV_CTRL_FRAMELOCK is _SUPPORTED. 00334 * 00335 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00336 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00337 */ 00338 00339 #define NV_CTRL_FRAMELOCK 21 /* R--G */ 00340 #define NV_CTRL_FRAMELOCK_NOT_SUPPORTED 0 00341 #define NV_CTRL_FRAMELOCK_SUPPORTED 1 00342 00343 00344 /* 00345 * NV_CTRL_FRAMELOCK_MASTER - get/set which display device to use 00346 * as the frame lock master for the entire sync group. Note that only 00347 * one node in the sync group should be configured as the master. 00348 * 00349 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 00350 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 00351 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 00352 */ 00353 00354 #define NV_CTRL_FRAMELOCK_MASTER 22 /* RW-G */ 00355 00356 /* These are deprecated. NV_CTRL_FRAMELOCK_MASTER now takes and 00357 returns a display mask as value. */ 00358 #define NV_CTRL_FRAMELOCK_MASTER_FALSE 0 00359 #define NV_CTRL_FRAMELOCK_MASTER_TRUE 1 00360 00361 00362 /* 00363 * NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the 00364 * frame lock pulse, the falling edge of the frame lock pulse or both. 00365 * 00366 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00367 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00368 * target. 00369 */ 00370 00371 #define NV_CTRL_FRAMELOCK_POLARITY 23 /* RW-F */ 00372 #define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE 0x1 00373 #define NV_CTRL_FRAMELOCK_POLARITY_FALLING_EDGE 0x2 00374 #define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES 0x3 00375 00376 00377 /* 00378 * NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the frame lock pulse 00379 * and the GPU sync. This is an 11 bit value which is multipled by 00380 * 7.81 to determine the sync delay in microseconds. 00381 * 00382 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00383 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00384 * target. 00385 */ 00386 00387 #define NV_CTRL_FRAMELOCK_SYNC_DELAY 24 /* RW-F */ 00388 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX 2047 00389 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR 7.81 00390 00391 00392 /* 00393 * NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses 00394 * between the frame lock sync generation (0 == sync every house sync); 00395 * this only applies to the master when receiving house sync. 00396 * 00397 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00398 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00399 * target. 00400 */ 00401 00402 #define NV_CTRL_FRAMELOCK_SYNC_INTERVAL 25 /* RW-F */ 00403 00404 00405 /* 00406 * NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0. 00407 * 00408 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00409 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00410 * target. 00411 */ 00412 00413 #define NV_CTRL_FRAMELOCK_PORT0_STATUS 26 /* R--F */ 00414 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT 0 00415 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT 1 00416 00417 00418 /* 00419 * NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1. 00420 * 00421 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00422 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00423 * target. 00424 */ 00425 00426 #define NV_CTRL_FRAMELOCK_PORT1_STATUS 27 /* R--F */ 00427 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT 0 00428 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT 1 00429 00430 00431 /* 00432 * NV_CTRL_FRAMELOCK_HOUSE_STATUS - returns whether or not the house 00433 * sync signal was detected on the BNC connector of the frame lock 00434 * board. 00435 * 00436 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00437 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00438 * target. 00439 */ 00440 00441 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS 28 /* R--F */ 00442 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED 0 00443 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED 1 00444 00445 00446 /* 00447 * NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of display 00448 * devices to the frame lock pulse as specified by previous calls to 00449 * NV_CTRL_FRAMELOCK_MASTER and NV_CTRL_FRAMELOCK_SLAVES. 00450 * 00451 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 00452 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 00453 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 00454 */ 00455 00456 #define NV_CTRL_FRAMELOCK_SYNC 29 /* RW-G */ 00457 #define NV_CTRL_FRAMELOCK_SYNC_DISABLE 0 00458 #define NV_CTRL_FRAMELOCK_SYNC_ENABLE 1 00459 00460 00461 /* 00462 * NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a slave frame lock 00463 * board is receiving sync (regardless of whether or not any display 00464 * devices are using the sync). 00465 * 00466 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00467 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00468 * target. 00469 */ 00470 00471 #define NV_CTRL_FRAMELOCK_SYNC_READY 30 /* R--F */ 00472 #define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE 0 00473 #define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE 1 00474 00475 00476 /* 00477 * NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo 00478 * signal is in sync with the frame lock stereo signal. 00479 * 00480 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00481 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN 00482 * target. 00483 */ 00484 00485 #define NV_CTRL_FRAMELOCK_STEREO_SYNC 31 /* R--G */ 00486 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE 0 00487 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE 1 00488 00489 00490 /* 00491 * NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync 00492 * group, tell the master to enable a test signal, then query port[01] 00493 * status and sync_ready on all slaves. When done, tell the master to 00494 * disable the test signal. Test signal should only be manipulated 00495 * while NV_CTRL_FRAMELOCK_SYNC is enabled. 00496 * 00497 * The TEST_SIGNAL is also used to reset the Universal Frame Count (as 00498 * returned by the glXQueryFrameCountNV() function in the 00499 * GLX_NV_swap_group extension). Note: for best accuracy of the 00500 * Universal Frame Count, it is recommended to toggle the TEST_SIGNAL 00501 * on and off after enabling frame lock. 00502 * 00503 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00504 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00505 */ 00506 00507 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL 32 /* RW-G */ 00508 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE 0 00509 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE 1 00510 00511 00512 /* 00513 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The frame lock boards are 00514 * cabled together using regular cat5 cable, connecting to rj45 ports 00515 * on the backplane of the card. There is some concern that users may 00516 * think these are ethernet ports and connect them to a 00517 * router/hub/etc. The hardware can detect this and will shut off to 00518 * prevent damage (either to itself or to the router). 00519 * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if 00520 * ethernet is connected to one of the rj45 ports. An appropriate 00521 * error message should then be displayed. The _PORT0 and _PORT1 00522 * values may be or'ed together. 00523 * 00524 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00525 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00526 * target. 00527 */ 00528 00529 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED 33 /* R--F */ 00530 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE 0 00531 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0 0x1 00532 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1 0x2 00533 00534 00535 /* 00536 * NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set what video mode is used 00537 * to interperate the house sync signal. This should only be set 00538 * on the master. 00539 * 00540 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00541 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00542 * target. 00543 */ 00544 00545 #define NV_CTRL_FRAMELOCK_VIDEO_MODE 34 /* RW-F */ 00546 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE 0 00547 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1 00548 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM 2 00549 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV 3 00550 00551 /* 00552 * During FRAMELOCK bring-up, the above values were redefined to 00553 * these: 00554 */ 00555 00556 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO 0 00557 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1 00558 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL 2 00559 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL 3 00560 00561 00562 /* 00563 * NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the 00564 * frame lock board is sending to the GPU, in milliHz. 00565 * 00566 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00567 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 00568 * target. 00569 */ 00570 00571 #define NV_CTRL_FRAMELOCK_SYNC_RATE 35 /* R--F */ 00572 00573 00574 00575 /**************************************************************************/ 00576 00577 /* 00578 * NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific 00579 * features such as MMX, SSE, or 3DNOW! for OpenGL clients; this 00580 * option may result in performance loss, but may be useful in 00581 * conjunction with software such as the Valgrind memory debugger. 00582 * This setting is only applied to OpenGL clients that are started 00583 * after this setting is applied. 00584 */ 00585 00586 #define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW- */ 00587 #define NV_CTRL_FORCE_GENERIC_CPU_DISABLE 0 00588 #define NV_CTRL_FORCE_GENERIC_CPU_ENABLE 1 00589 00590 00591 /* 00592 * NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow 00593 * Gamma-corrected antialiased lines to consider variances in the 00594 * color display capabilities of output devices when rendering smooth 00595 * lines. Only available on recent Quadro GPUs. This setting is only 00596 * applied to OpenGL clients that are started after this setting is 00597 * applied. 00598 */ 00599 00600 #define NV_CTRL_OPENGL_AA_LINE_GAMMA 38 /* RW- */ 00601 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE 0 00602 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE 1 00603 00604 00605 /* 00606 * NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the gpu is both receiving 00607 * and locked to an input timing signal. Timing information may come from 00608 * the following places: Another frame lock device that is set to master, 00609 * the house sync signal, or the GPU's internal timing from a display 00610 * device. 00611 * 00612 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 00613 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 00614 */ 00615 00616 #define NV_CTRL_FRAMELOCK_TIMING 39 /* R--G */ 00617 #define NV_CTRL_FRAMELOCK_TIMING_FALSE 0 00618 #define NV_CTRL_FRAMELOCK_TIMING_TRUE 1 00619 00620 /* 00621 * NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping 00622 * when possible; when FALSE, OpenGL will alway swap by blitting. XXX 00623 * can this be enabled dynamically? 00624 */ 00625 00626 #define NV_CTRL_FLIPPING_ALLOWED 40 /* RW- */ 00627 #define NV_CTRL_FLIPPING_ALLOWED_FALSE 0 00628 #define NV_CTRL_FLIPPING_ALLOWED_TRUE 1 00629 00630 /* 00631 * NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is 00632 * running. 00633 */ 00634 00635 #define NV_CTRL_ARCHITECTURE 41 /* R-- */ 00636 #define NV_CTRL_ARCHITECTURE_X86 0 00637 #define NV_CTRL_ARCHITECTURE_X86_64 1 00638 #define NV_CTRL_ARCHITECTURE_IA64 2 00639 00640 00641 /* 00642 * NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL. By 00643 * default, NVIDIA's OpenGL implementation uses CLAMP_TO_EDGE, which 00644 * is not strictly conformant, but some applications rely on the 00645 * non-conformant behavior, and not all GPUs support conformant 00646 * texture clamping in hardware. _SPEC forces OpenGL texture clamping 00647 * to be conformant, but may introduce slower performance on older 00648 * GPUS, or incorrect texture clamping in certain applications. 00649 */ 00650 00651 #define NV_CTRL_TEXTURE_CLAMPING 42 /* RW- */ 00652 #define NV_CTRL_TEXTURE_CLAMPING_EDGE 0 00653 #define NV_CTRL_TEXTURE_CLAMPING_SPEC 1 00654 00655 00656 00657 #define NV_CTRL_CURSOR_SHADOW 43 /* RW- */ 00658 #define NV_CTRL_CURSOR_SHADOW_DISABLE 0 00659 #define NV_CTRL_CURSOR_SHADOW_ENABLE 1 00660 00661 #define NV_CTRL_CURSOR_SHADOW_ALPHA 44 /* RW- */ 00662 #define NV_CTRL_CURSOR_SHADOW_RED 45 /* RW- */ 00663 #define NV_CTRL_CURSOR_SHADOW_GREEN 46 /* RW- */ 00664 #define NV_CTRL_CURSOR_SHADOW_BLUE 47 /* RW- */ 00665 00666 #define NV_CTRL_CURSOR_SHADOW_X_OFFSET 48 /* RW- */ 00667 #define NV_CTRL_CURSOR_SHADOW_Y_OFFSET 49 /* RW- */ 00668 00669 00670 00671 /* 00672 * When Application Control for FSAA is enabled, then what the 00673 * application requests is used, and NV_CTRL_FSAA_MODE is ignored. If 00674 * this is disabled, then any application setting is overridden with 00675 * NV_CTRL_FSAA_MODE 00676 */ 00677 00678 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED 50 /* RW- */ 00679 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED 1 00680 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED 0 00681 00682 00683 /* 00684 * When Application Control for LogAniso is enabled, then what the 00685 * application requests is used, and NV_CTRL_LOG_ANISO is ignored. If 00686 * this is disabled, then any application setting is overridden with 00687 * NV_CTRL_LOG_ANISO 00688 */ 00689 00690 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED 51 /* RW- */ 00691 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED 1 00692 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED 0 00693 00694 00695 /* 00696 * IMAGE_SHARPENING adjusts the sharpness of the display's image 00697 * quality by amplifying high frequency content. Valid values will 00698 * normally be in the range [0,32). Only available on GeForceFX or 00699 * newer. 00700 */ 00701 00702 #define NV_CTRL_IMAGE_SHARPENING 52 /* RWD */ 00703 00704 00705 /* 00706 * NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified 00707 * display device. 00708 */ 00709 00710 #define NV_CTRL_TV_OVERSCAN 53 /* RWD */ 00711 00712 00713 /* 00714 * NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on 00715 * the specified display device. 00716 */ 00717 00718 #define NV_CTRL_TV_FLICKER_FILTER 54 /* RWD */ 00719 00720 00721 /* 00722 * NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the 00723 * specified display device. 00724 */ 00725 00726 #define NV_CTRL_TV_BRIGHTNESS 55 /* RWD */ 00727 00728 00729 /* 00730 * NV_CTRL_TV_HUE adjusts the amount of hue on the specified display 00731 * device. 00732 */ 00733 00734 #define NV_CTRL_TV_HUE 56 /* RWD */ 00735 00736 00737 /* 00738 * NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified 00739 * display device. 00740 */ 00741 00742 #define NV_CTRL_TV_CONTRAST 57 /* RWD */ 00743 00744 00745 /* 00746 * NV_CTRL_TV_SATURATION adjusts the amount of saturation on the 00747 * specified display device. 00748 */ 00749 00750 #define NV_CTRL_TV_SATURATION 58 /* RWD */ 00751 00752 00753 /* 00754 * NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used 00755 * to request that all TV Settings be reset to their default values; 00756 * typical usage would be that this attribute be sent, and then all 00757 * the TV attributes be queried to retrieve their new values. 00758 */ 00759 00760 #define NV_CTRL_TV_RESET_SETTINGS 59 /* -WD */ 00761 00762 00763 /* 00764 * NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature 00765 * of the GPU driving the X screen. 00766 */ 00767 00768 #define NV_CTRL_GPU_CORE_TEMPERATURE 60 /* R-- */ 00769 00770 00771 /* 00772 * NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown 00773 * threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and 00774 * NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core 00775 * slowdown threshold temperatures. 00776 * 00777 * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the 00778 * GPU is throttled to prevent overheating. 00779 */ 00780 00781 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R-- */ 00782 #define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD 62 /* R-- */ 00783 #define NV_CTRL_GPU_MAX_CORE_THRESHOLD 63 /* R-- */ 00784 00785 00786 /* 00787 * NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the 00788 * immediate neighbourhood of the GPU driving the X screen. 00789 */ 00790 00791 #define NV_CTRL_AMBIENT_TEMPERATURE 64 /* R-- */ 00792 00793 00794 /* 00795 * NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen 00796 * supports scanout of FP pbuffers; 00797 * 00798 * if this screen does not support PBUFFER_SCANOUT, then all other 00799 * PBUFFER_SCANOUT attributes are unavailable. 00800 * 00801 * PBUFFER_SCANOUT is supported if and only if: 00802 * - Twinview is configured with clone mode. The secondary screen is used to 00803 * scanout the pbuffer. 00804 * - The desktop is running in with 16 bits per pixel. 00805 */ 00806 #define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED 65 /* R-- */ 00807 #define NV_CTRL_PBUFFER_SCANOUT_FALSE 0 00808 #define NV_CTRL_PBUFFER_SCANOUT_TRUE 1 00809 00810 /* 00811 * NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for 00812 * scanout. 00813 */ 00814 #define NV_CTRL_PBUFFER_SCANOUT_XID 66 /* RW- */ 00815 00816 /**************************************************************************/ 00817 /* 00818 * The NV_CTRL_GVO_* integer attributes are used to configure GVO 00819 * (Graphics to Video Out). This functionality is available, for 00820 * example, on the Quadro FX 4000 SDI graphics board. 00821 * 00822 * The following is a typical usage pattern for the GVO attributes: 00823 * 00824 * - query NV_CTRL_GVO_SUPPORTED to determine if the X screen supports GV0. 00825 * 00826 * - specify NV_CTRL_GVO_SYNC_MODE (one of FREE_RUNNING, GENLOCK, or 00827 * FRAMELOCK); if you specify GENLOCK or FRAMELOCK, you should also 00828 * specify NV_CTRL_GVO_SYNC_SOURCE. 00829 * 00830 * - Use NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED and 00831 * NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED to detect what input syncs are 00832 * present. 00833 * 00834 * (If no analog sync is detected but it is known that a valid 00835 * bi-level or tri-level sync is connected set 00836 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE appropriately and 00837 * retest with NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED). 00838 * 00839 * - if syncing to input sync, query the 00840 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT attribute; note that Input video 00841 * format can only be queried after SYNC_SOURCE is specified. 00842 * 00843 * - specify the NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 00844 * 00845 * - specify the NV_CTRL_GVO_DATA_FORMAT 00846 * 00847 * - specify any custom Color Space Conversion (CSC) matrix, offset, 00848 * and scale with XNVCTRLSetGvoColorConversion(). 00849 * 00850 * - if using the GLX_NV_video_out extension to display one or more 00851 * pbuffers, call glXGetVideoDeviceNV() to lock the GVO output for use 00852 * by the GLX client; then bind the pbuffer(s) to the GVO output with 00853 * glXBindVideoImageNV() and send pbuffers to the GVO output with 00854 * glXSendPbufferToVideoNV(); see the GLX_NV_video_out spec for more 00855 * details. 00856 * 00857 * - if, rather than using the GLX_NV_video_out extension to display 00858 * GLX pbuffers on the GVO output, you wish display the X screen on 00859 * the GVO output, set NV_CTRL_GVO_DISPLAY_X_SCREEN to 00860 * NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE. 00861 * 00862 * Note that setting most GVO attributes only causes the value to be 00863 * cached in the X server. The values will be flushed to the hardware 00864 * either when NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, or when a GLX 00865 * pbuffer is bound to the GVO output (with glXBindVideoImageNV()). 00866 * 00867 * Note that GLX_NV_video_out and NV_CTRL_GVO_DISPLAY_X_SCREEN are 00868 * mutually exclusive. If NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, 00869 * then glXGetVideoDeviceNV will fail. Similarly, if a GLX client has 00870 * locked the GVO output (via glXGetVideoDeviceNV), then 00871 * NV_CTRL_GVO_DISPLAY_X_SCREEN will fail. The NV_CTRL_GVO_LOCKED 00872 * event will be sent when a GLX client locks the GVO output. 00873 * 00874 */ 00875 00876 00877 /* 00878 * NV_CTRL_GVO_SUPPORTED - returns whether this X screen supports GVO; 00879 * if this screen does not support GVO output, then all other GVO 00880 * attributes are unavailable. 00881 */ 00882 00883 #define NV_CTRL_GVO_SUPPORTED 67 /* R-- */ 00884 #define NV_CTRL_GVO_SUPPORTED_FALSE 0 00885 #define NV_CTRL_GVO_SUPPORTED_TRUE 1 00886 00887 00888 /* 00889 * NV_CTRL_GVO_SYNC_MODE - selects the GVO sync mode; possible values 00890 * are: 00891 * 00892 * FREE_RUNNING - GVO does not sync to any external signal 00893 * 00894 * GENLOCK - the GVO output is genlocked to an incoming sync signal; 00895 * genlocking locks at hsync. This requires that the output video 00896 * format exactly match the incoming sync video format. 00897 * 00898 * FRAMELOCK - the GVO output is frame locked to an incoming sync 00899 * signal; frame locking locks at vsync. This requires that the output 00900 * video format have the same refresh rate as the incoming sync video 00901 * format. 00902 */ 00903 00904 #define NV_CTRL_GVO_SYNC_MODE 68 /* RW- */ 00905 #define NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING 0 00906 #define NV_CTRL_GVO_SYNC_MODE_GENLOCK 1 00907 #define NV_CTRL_GVO_SYNC_MODE_FRAMELOCK 2 00908 00909 00910 /* 00911 * NV_CTRL_GVO_SYNC_SOURCE - if NV_CTRL_GVO_SYNC_MODE is set to either 00912 * GENLOCK or FRAMELOCK, this controls which sync source is used as 00913 * the incoming sync signal (either Composite or SDI). If 00914 * NV_CTRL_GVO_SYNC_MODE is FREE_RUNNING, this attribute has no 00915 * effect. 00916 */ 00917 00918 #define NV_CTRL_GVO_SYNC_SOURCE 69 /* RW- */ 00919 #define NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE 0 00920 #define NV_CTRL_GVO_SYNC_SOURCE_SDI 1 00921 00922 00923 /* 00924 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT - specifies the output video 00925 * format. Note that the valid video formats will vary depending on 00926 * the NV_CTRL_GVO_SYNC_MODE and the incoming sync video format. See 00927 * the definition of NV_CTRL_GVO_SYNC_MODE. 00928 * 00929 * Note that when querying the ValidValues for this data type, the 00930 * values are reported as bits within a bitmask 00931 * (ATTRIBUTE_TYPE_INT_BITS); unfortunately, there are more valid 00932 * value bits than will fit in a single 32-bit value. To solve this, 00933 * query the ValidValues for NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT to check 00934 * which of the first 31 VIDEO_FORMATS are valid, then query the 00935 * ValidValues for NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 to check which of 00936 * the VIDEO_FORMATS with value 32 and higher are valid. 00937 */ 00938 00939 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 70 /* RW- */ 00940 00941 #define NV_CTRL_GVO_VIDEO_FORMAT_NONE 0 00942 #define NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC 1 00943 #define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2 00944 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296 3 00945 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296 4 00946 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5 00947 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6 00948 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7 00949 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8 00950 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9 00951 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10 00952 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11 00953 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12 00954 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13 00955 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14 00956 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15 00957 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_50_00_SMPTE296 16 00958 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_24_00_SMPTE274 17 //deprecated 00959 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17 00960 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_23_98_SMPTE274 18 //deprecated 00961 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18 00962 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_30_00_SMPTE296 19 00963 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_29_97_SMPTE296 20 00964 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_25_00_SMPTE296 21 00965 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296 22 00966 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296 23 00967 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24 00968 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25 00969 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26 00970 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27 00971 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28 00972 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE372 29 00973 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE372 30 00974 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_30_00_SMPTE372 31 00975 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_29_97_SMPTE372 32 00976 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE372 33 00977 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_25_00_SMPTE372 34 00978 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE372 35 00979 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_98_SMPTE372 36 00980 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_24_00_SMPTE372 37 00981 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_23_98_SMPTE372 38 00982 00983 /* 00984 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT - indicates the input video format 00985 * detected; the possible values are the NV_CTRL_GVO_VIDEO_FORMAT 00986 * constants. 00987 */ 00988 00989 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT 71 /* R-- */ 00990 00991 00992 /* 00993 * NV_CTRL_GVO_DATA_FORMAT - This controls how the data in the source 00994 * (either the X screen or the GLX pbuffer) is interpretted and 00995 * displayed. 00996 * 00997 * Note: some of the below DATA_FORMATS have been renamed. For 00998 * example, R8G8B8_TO_RGB444 has been renamed to X8X8X8_444_PASSTHRU. 00999 * This is to more accurately reflect DATA_FORMATS where the 01000 * per-channel data could be either RGB or YCrCb -- the point is that 01001 * the driver and GVO hardware do not perform any implicit color space 01002 * conversion on the data; it is passed through to the SDI out. 01003 */ 01004 01005 #define NV_CTRL_GVO_DATA_FORMAT 72 /* RW- */ 01006 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444 0 01007 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4444 1 01008 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4444 2 01009 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422 3 01010 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4224 4 01011 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4224 5 01012 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_RGB444 6 // renamed 01013 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU 6 01014 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_RGBA4444 7 // renamed 01015 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4444_PASSTHRU 7 01016 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_RGBZ4444 8 // renamed 01017 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4444_PASSTHRU 8 01018 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR10CB10_TO_YCRCB444 9 // renamed 01019 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_444_PASSTHRU 9 01020 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8_TO_YCRCB444 10 // renamed 01021 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_444_PASSTHRU 10 01022 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8A10_TO_YCRCBA4444 11 // renamed 01023 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4444_PASSTHRU 11 01024 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8Z10_TO_YCRCBZ4444 12 // renamed 01025 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4444_PASSTHRU 12 01026 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_R8G8B8_TO_DUAL_YCRCB422 13 01027 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_Y8CR8CB8_TO_DUAL_YCRCB422 14 // renamed 01028 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_X8X8X8_TO_DUAL_422_PASSTHRU 14 01029 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB422 15 01030 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB444 16 01031 #define NV_CTRL_GVO_DATA_FORMAT_Y12CR12CB12_TO_YCRCB444 17 // renamed 01032 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_444_PASSTHRU 17 01033 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB444 18 01034 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_422_PASSTHRU 19 01035 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4224_PASSTHRU 20 01036 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4224_PASSTHRU 21 01037 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_422_PASSTHRU 22 01038 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_422_PASSTHRU 23 01039 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4224_PASSTHRU 24 01040 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4224_PASSTHRU 25 01041 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_422_PASSTHRU 26 01042 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB422 27 01043 01044 /* 01045 * NV_CTRL_GVO_DISPLAY_X_SCREEN - enable/disable GVO output of the X 01046 * screen. At this point, all the GVO attributes that have been 01047 * cached in the X server are flushed to the hardware and GVO is 01048 * enabled. Note that this attribute can fail to be set if a GLX 01049 * client has locked the GVO output (via glXGetVideoDeviceNV). Note 01050 * that due to the inherit race conditions in this locking strategy, 01051 * NV_CTRL_GVO_DISPLAY_X_SCREEN can fail unexpectantly. In the 01052 * failing situation, X will not return an X error. Instead, you 01053 * should query the value of NV_CTRL_GVO_DISPLAY_X_SCREEN after 01054 * setting it to confirm that the setting was applied. 01055 */ 01056 01057 #define NV_CTRL_GVO_DISPLAY_X_SCREEN 73 /* RW- */ 01058 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE 1 01059 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE 0 01060 01061 01062 /* 01063 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED - indicates whether 01064 * Composite Sync input is detected. 01065 */ 01066 01067 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED 74 /* R-- */ 01068 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE 0 01069 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_TRUE 1 01070 01071 01072 /* 01073 * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE - get/set the 01074 * Composite Sync input detect mode. 01075 */ 01076 01077 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE 75 /* RW- */ 01078 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO 0 01079 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL 1 01080 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL 2 01081 01082 01083 /* 01084 * NV_CTRL_GVO_SYNC_INPUT_DETECTED - indicates whether SDI Sync input 01085 * is detected, and what type. 01086 */ 01087 01088 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED 76 /* R-- */ 01089 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE 0 01090 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD 1 01091 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD 2 01092 01093 01094 /* 01095 * NV_CTRL_GVO_VIDEO_OUTPUTS - indicates which GVO video output 01096 * connectors are currently outputing data. 01097 */ 01098 01099 #define NV_CTRL_GVO_VIDEO_OUTPUTS 77 /* R-- */ 01100 #define NV_CTRL_GVO_VIDEO_OUTPUTS_NONE 0 01101 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO1 1 01102 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO2 2 01103 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO_BOTH 3 01104 01105 01106 /* 01107 * NV_CTRL_GVO_FPGA_VERSION - indicates the version of the Firmware on 01108 * the GVO device. Deprecated; use 01109 * NV_CTRL_STRING_GVO_FIRMWARE_VERSION instead. 01110 */ 01111 01112 #define NV_CTRL_GVO_FIRMWARE_VERSION 78 /* R-- */ 01113 01114 01115 /* 01116 * NV_CTRL_GVO_SYNC_DELAY_PIXELS - controls the delay between the 01117 * input sync and the output sync in numbers of pixels from hsync; 01118 * this is a 12 bit value. 01119 */ 01120 01121 #define NV_CTRL_GVO_SYNC_DELAY_PIXELS 79 /* RW- */ 01122 01123 01124 /* 01125 * NV_CTRL_GVO_SYNC_DELAY_LINES - controls the delay between the input 01126 * sync and the output sync in numbers of lines from vsync; this is a 01127 * 12 bit value. 01128 */ 01129 01130 #define NV_CTRL_GVO_SYNC_DELAY_LINES 80 /* RW- */ 01131 01132 01133 /* 01134 * NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE - must be set for a period 01135 * of about 2 seconds for the new InputVideoFormat to be properly 01136 * locked to. In nvidia-settings, we do a reacquire whenever genlock 01137 * or frame lock mode is entered into, when the user clicks the 01138 * "detect" button. This value can be written, but always reads back 01139 * _FALSE. 01140 */ 01141 01142 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE 81 /* -W- */ 01143 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE 0 01144 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE 1 01145 01146 01147 /* 01148 * NV_CTRL_GVO_LOCKED - indicates that GVO configurability is locked; 01149 * this occurs when the GLX_NV_video_out function calls 01150 * glXGetVideoDeviceNV(). All GVO output resources are locked until 01151 * either glXReleaseVideoDeviceNV() is called or the X Display used 01152 * when calling glXGetVideoDeviceNV() is closed. 01153 * 01154 * When GVO is locked; all GVO NV-CONTROL attributes are read only. 01155 */ 01156 01157 #define NV_CTRL_GVO_GLX_LOCKED 82 /* R-- */ 01158 #define NV_CTRL_GVO_GLX_LOCKED_FALSE 0 01159 #define NV_CTRL_GVO_GLX_LOCKED_TRUE 1 01160 01161 01162 01163 /* 01164 * NV_CTRL_GVO_VIDEO_FORMAT_{WIDTH,HEIGHT,REFRESH_RATE} - query the 01165 * width, height, and refresh rate for the specified 01166 * NV_CTRL_GVO_VIDEO_FORMAT_*. So that this can be queried with 01167 * existing interfaces, XNVCTRLQueryAttribute() should be used, and 01168 * the video format specified in the display_mask field; eg: 01169 * 01170 * XNVCTRLQueryAttribute (dpy, 01171 * screen, 01172 * NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC, 01173 * NV_CTRL_GVO_VIDEO_FORMAT_WIDTH, 01174 * &value); 01175 * 01176 * Note that Refresh Rate is in 1/1000 Hertz values 01177 */ 01178 01179 #define NV_CTRL_GVO_VIDEO_FORMAT_WIDTH 83 /* R-- */ 01180 #define NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT 84 /* R-- */ 01181 #define NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE 85 /* R-- */ 01182 01183 01184 /* 01185 * NV_CTRL_GVO_X_SCREEN_PAN_[XY] - when GVO output of the X screen is 01186 * enabled, the pan x/y attributes control which portion of the X 01187 * screen is displayed by GVO. These attributes can be updated while 01188 * GVO output is enabled, or before enabling GVO output. The pan 01189 * values will be clamped so that GVO output is not panned beyond the 01190 * end of the X screen. 01191 */ 01192 01193 #define NV_CTRL_GVO_X_SCREEN_PAN_X 86 /* RW- */ 01194 #define NV_CTRL_GVO_X_SCREEN_PAN_Y 87 /* RW- */ 01195 01196 01197 /* 01198 * NV_CTRL_GPU_OVERCLOCKING_STATE - query the current or set a new 01199 * overclocking state; the value of this attribute controls the 01200 * availability of additional overclocking attributes (see below). 01201 * 01202 * Note: this attribute is unavailable unless overclocking support 01203 * has been enabled in the X server (by the user). 01204 */ 01205 01206 #define NV_CTRL_GPU_OVERCLOCKING_STATE 88 /* RW- */ 01207 #define NV_CTRL_GPU_OVERCLOCKING_STATE_NONE 0 01208 #define NV_CTRL_GPU_OVERCLOCKING_STATE_MANUAL 1 01209 01210 01211 /* 01212 * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS - query or set the GPU and memory 01213 * clocks of the device driving the X screen. New clock frequencies 01214 * are tested before being applied, and may be rejected. 01215 * 01216 * Note: if the target clocks are too aggressive, their testing may 01217 * render the system unresponsive. 01218 * 01219 * Note: while this attribute can always be queried, it can't be set 01220 * unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL. Since 01221 * the target clocks may be rejected, the requester should read this 01222 * attribute after the set to determine success or failure. 01223 */ 01224 01225 #define NV_CTRL_GPU_2D_CLOCK_FREQS 89 /* RW- */ 01226 #define NV_CTRL_GPU_3D_CLOCK_FREQS 90 /* RW- */ 01227 01228 01229 /* 01230 * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS - query the default memory 01231 * and GPU core clocks of the device driving the X screen. 01232 */ 01233 01234 #define NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS 91 /* R-- */ 01235 #define NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS 92 /* R-- */ 01236 01237 01238 /* 01239 * NV_CTRL_GPU_CURRENT_CLOCK_FREQS - query the current GPU and memory 01240 * clocks of the graphics device driving the X screen. 01241 */ 01242 01243 #define NV_CTRL_GPU_CURRENT_CLOCK_FREQS 93 /* R-- */ 01244 01245 01246 /* 01247 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS - Holds the last calculated 01248 * optimal 3D clock frequencies found by the 01249 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION process. Querying this 01250 * attribute before having probed for the optimal clocks will return 01251 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 01252 * 01253 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the 01254 * optimal clock detection process is unavailable. 01255 */ 01256 01257 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS 94 /* R-- */ 01258 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 0 01259 01260 01261 /* 01262 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION - set to _START to 01263 * initiate testing for the optimal 3D clock frequencies. Once 01264 * found, the optimal clock frequencies will be returned by the 01265 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS attribute asynchronously 01266 * (using an X event, see XNVCtrlSelectNotify). 01267 * 01268 * To cancel an ongoing test for the optimal clocks, set the 01269 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION attribute to _CANCEL 01270 * 01271 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the 01272 * optimal clock detection process is unavailable. 01273 */ 01274 01275 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION 95 /* -W- */ 01276 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_START 0 01277 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_CANCEL 1 01278 01279 01280 /* 01281 * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE - query this 01282 * variable to know if a test is currently being run to 01283 * determine the optimal 3D clock frequencies. _BUSY means a 01284 * test is currently running, _IDLE means the test is not running. 01285 * 01286 * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the 01287 * optimal clock detection process is unavailable. 01288 */ 01289 01290 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE 96 /* R-- */ 01291 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_IDLE 0 01292 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_BUSY 1 01293 01294 01295 01296 /************************************************************************* 01297 * DDC/CI VCP codes * 01298 * From the VESA Monitor Control Command Set (MCCS) Standard - Version 2 * 01299 *************************************************************************/ 01300 01301 #define NV_CTRL_DDCCI_ON 1 01302 #define NV_CTRL_DDCCI_OFF 0 01303 01304 /************************************* 01305 * DDC/CI VCP CODES: GEOMETRY ADJUST * 01306 *************************************/ 01307 01308 /* Increasing (decreasing) this value moves the image toward the right 01309 * (left) side of the screen. 01310 * Type: Range 01311 */ 01312 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_POSITION 97 /* RWD */ 01313 01314 /* Increasing (decreasing) this value will increase (decrease) the width 01315 * of the image. 01316 * Type: Range 01317 */ 01318 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_SIZE 98 /* RWD */ 01319 01320 /* Increasing (decreasing) this value will cause the right and left sides 01321 * of the image to become more (less) convex. 01322 * Type: Range 01323 */ 01324 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_PINCUSHION 99 /* RWD */ 01325 01326 /* Increasing (decreasing) this value will move the center section of the 01327 * image towards the right(left) side of the display. 01328 * Type: Range 01329 */ 01330 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_PINCUSHION_BALANCE 100/* RWD */ 01331 01332 /* Increasing (decreasing) this value will shift the red pixels to the right 01333 * (left) across the image and the blue pixels left (right) across the image 01334 * with respect to the green pixels. 01335 * Type: Range 01336 */ 01337 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_CONVERGENCE 101/* RWD */ 01338 01339 /* Increasing (decreasing) this value will increase (decrease) the 01340 * density of pixels in the image center. 01341 * Type: Range 01342 */ 01343 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_LINEARITY 102/* RWD */ 01344 01345 /* Increasing (decreasing) this value shifts the density of pixels from 01346 * the left (right) side to the right (left) side of the image. 01347 * Type: Range 01348 */ 01349 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_LINEARITY_BALANCE 103/* RWD */ 01350 01351 /* Increasing (decreasing) this value moves the image toward the 01352 * top (bottom) edge of the display. 01353 * Type: Range 01354 */ 01355 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_POSITION 104/* RWD */ 01356 01357 /* Increasing (decreasing) this value will increase (decrease) the 01358 * height of the image 01359 * Type: Range 01360 */ 01361 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_SIZE 105/* RWD */ 01362 01363 /* Increasing (decreasing) this value will cause the top and bottom 01364 * edges of the image to become more (less) convex. 01365 * Type: Range 01366 */ 01367 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_PINCUSHION 106/* RWD */ 01368 01369 /* Increasing (decreasing) this value will move the center section of 01370 * the image toward the top (bottom) edge of the display. 01371 * Type: Range 01372 */ 01373 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_PINCUSHION_BALANCE 107/* RWD */ 01374 01375 /* Increasing (decreasing) this value shifts the red pixels up (down) 01376 * across the image and the blue pixels down (up) across the image 01377 * with respect to the green pixels. 01378 * Type: Range 01379 */ 01380 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_CONVERGENCE 108/* RWD */ 01381 01382 /* Increasing (decreasing) this value will increase (decrease) the 01383 * density of scan lines in the image center. 01384 * Type: Range 01385 */ 01386 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_LINEARITY 109/* RWD */ 01387 01388 /* Increasing (decreasing) this value shifts the density of scan lines 01389 * from the top (bottom) end to the bottom (top) end of the image. 01390 * Type: Range 01391 */ 01392 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_LINEARITY_BALANCE 110/* RWD */ 01393 01394 /* Increasing (decreasing) this value will increase (decrease) the 01395 * degree of keystone distortion in the image. 01396 * Type: Range 01397 */ 01398 #define NV_CTRL_DDCCI_GEOMETRY_KEYSTONE 111/* RWD */ 01399 01400 /* Increasing (decreasing) this value shifts the top section of the 01401 * image to the right (left) with respect to the bottom section of the 01402 * image. 01403 * Type: Range 01404 */ 01405 #define NV_CTRL_DDCCI_GEOMETRY_KEY_BALANCE 112/* RWD */ 01406 01407 /* Increasing (decreasing) this value will increase (decrease) the 01408 * degree of trapezoid distortion in the image. 01409 * Type: Range 01410 */ 01411 #define NV_CTRL_DDCCI_GEOMETRY_TRAPEZOID 113/* RWD */ 01412 01413 /* Increasing (decreasing) this value will increase (decrease) the 01414 * ratio between the horizontal size at the top of the image and the 01415 * horizontal size at the bottom of the image. 01416 * Type: Range 01417 */ 01418 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_TRAPEZOID 114/* RWD */ 01419 01420 /* Increasing (decreasing) this value will increase (decrease) the 01421 * ratio between the vertical size at the left of the image and the 01422 * vertical size at the right of the image. 01423 * Type: Range 01424 */ 01425 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_TRAPEZOID 115/* RWD */ 01426 01427 /* Increasing (decreasing) this value rotates the image (counter) 01428 clockwise about the center point of the image. 01429 * Type: Range 01430 */ 01431 #define NV_CTRL_DDCCI_GEOMETRY_TILT 116/* RWD */ 01432 01433 /* Increasing (decreasing) this value will increase (decrease) the 01434 * distance between the left and right sides at the top of the image. 01435 * Type: Range 01436 */ 01437 #define NV_CTRL_DDCCI_GEOMETRY_TOP_CORNER 117/* RWD */ 01438 01439 /* Increasing (decreasing) this value moves the top end of the 01440 * image to the right (left). 01441 * Type: Range 01442 */ 01443 #define NV_CTRL_DDCCI_GEOMETRY_TOP_CORNER_BALANCE 118/* RWD */ 01444 01445 /* Increasing (decreasing) this value will increase (decrease) the 01446 * distance between the left and right sides at the bottom of the 01447 * image. 01448 * Type: Range 01449 */ 01450 #define NV_CTRL_DDCCI_GEOMETRY_BOTTOM_CORNER 119/* RWD */ 01451 01452 /* Increasing (decreasing) this value moves the bottom end of the 01453 * image to the right (left). 01454 * Type: Range 01455 */ 01456 #define NV_CTRL_DDCCI_GEOMETRY_BOTTOM_CORNER_BALANCE 120/* RWD */ 01457 01458 01459 /************************************** 01460 * DDC/CI VCP CODES: PRESET SELECTION * 01461 **************************************/ 01462 01463 /* Restore all factory presets including brightness / contrast, 01464 * geometry, color and TV defaults. 01465 * NV__CTRL_DDCCI_ON causes defaults to be restored 01466 * A value of NV_CTRL_DDCCI_OFF shall be ignored 01467 * Type: Boolean 01468 */ 01469 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS 121/* -WD */ 01470 01471 /* Restores factory defaults for brightness and contrast adjustments. 01472 * NV_CTRL_DDCCI_ON causes defaults to be restored 01473 * A value of NV_CTRL_DDCCI_OFF shall be ignored 01474 * Type: Boolean 01475 */ 01476 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_BRIGHTNESS_CONTRAST 122/* -WD */ 01477 01478 /* Restore factory defaults for geometry adjustments. 01479 * NV_CTRL_DDCCI_ON causes defaults to be restored 01480 * A value of NV_CTRL_DDCCI_OFF shall be ignored 01481 * Type: Boolean 01482 */ 01483 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_GEOMETRY 123/* -WD */ 01484 01485 /* Restore factory defaults for color settings. 01486 * NV_CTRL_DDCCI_ON causes defaults to be restored 01487 * A value of NV_CTRL_DDCCI_OFF shall be ignored 01488 * Type: Boolean 01489 */ 01490 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_COLOR 124/* -WD */ 01491 01492 /* Restore factory defaults for TV functions. 01493 * NV_CTRL_DDCCI_ON causes defaults to be restored 01494 * A value of NV_CTRL_DDCCI_OFF shall be ignored 01495 * Type: Boolean 01496 */ 01497 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_TV 125/* -WD */ 01498 01499 /* Store / Restore the user saved values for current mode. 01500 * - NV_CTRL_DDCCI_PRESET_SETTINGS_STORE_CURRENT: 01501 * Store current settings in the monitor. 01502 * - NV_CTRL_DDCCI_PRESET_SETTINGS_RESTORE_FACTORY_DEFAULTS: 01503 * Restore factory defaults for current mode. If no factory 01504 * defaults then restore user values for current mode. 01505 * - All other values are reserved and shall be ignored. 01506 * Type: Integer 01507 */ 01508 #define NV_CTRL_DDCCI_PRESET_SETTINGS 126/* -WD */ 01509 #define NV_CTRL_DDCCI_PRESET_SETTINGS_STORE_CURRENT 1 01510 #define NV_CTRL_DDCCI_PRESET_SETTINGS_RESTORE_FACTORY_DEFAULTS 2 01511 01512 01513 /*************************************** 01514 * DDC/CI VCP CODES: IMAGE ADJUSTMENTS * 01515 ***************************************/ 01516 01517 /* 01518 * Increasing (decreasing) this value will increase (decrease) the 01519 * Brightness of the image. 01520 * Type: Range 01521 */ 01522 #define NV_CTRL_DDCCI_IMAGE_BRIGHTNESS 127/* RWD */ 01523 01524 /* 01525 * Increasing (decreasing) this value will increase (decrease) the 01526 * Contrast of the image. 01527 * Type: Range 01528 */ 01529 #define NV_CTRL_DDCCI_IMAGE_CONTRAST 128/* RWD */ 01530 01531 /* 01532 * Turn on / off an auto setup function (periodic or event driven) 01533 * 0 and 3 : Shall be ignored 01534 * NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_OFF : Turn auto setup off 01535 * NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_ON : Turn auto setup on 01536 * Type: Integer 01537 */ 01538 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE 129/* -WD */ 01539 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_OFF 1 01540 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_ON 2 01541 01542 /* 01543 * Perform autosetup function (H/V position, clock, clock phase, A/D 01544 * converter, etc) 01545 * NV_CTRL_OFF : Indicates that auto-setup is not active 01546 * NV_CTRL_ON : Perform autosetup 01547 * >=2 : Shall be ignored 01548 * Type: Integer 01549 */ 01550 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP 130/* RWD */ 01551 01552 /* Increasing (decreasing) this value will increase (decrease) the 01553 * sampling clock frequency 01554 * Type: Range 01555 */ 01556 #define NV_CTRL_DDCCI_IMAGE_CLOCK 131/* RWD */ 01557 01558 /* Increasing (decreasing) this value will increase (decrease) the 01559 * phase shift of the sampling clock 01560 * Type: Range 01561 */ 01562 #define NV_CTRL_DDCCI_IMAGE_CLOCK_PHASE 132/* RWD */ 01563 01564 /* Allows the display to specify the minimum increment in which it 01565 * can adjust the color temperature. 01566 * This will be used in conjunction with 01567 * NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_REQUEST, Color temperature request. 01568 * Values of 0 and > 5000 are invalid and shall be ignored. 01569 * Type: Integer 01570 */ 01571 #define NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT 133/* R-D */ 01572 01573 /* Allows a specified color temperature (in °K) to be requested. If 01574 * display is unable to achieve requested color temperature, then it 01575 * should move to the closest possible temperature. 01576 * A value of 0 shall be treated as a request for a color temperature 01577 * of 3000°K. Values greater than 0 shall be used as a multiplier of 01578 * the color temperature increment (read using 01579 * NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT) and the 01580 * result added to the base value of 3000°K 01581 * Example: 01582 * If NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT returns a value of 01583 * 50°K and NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT sends a 01584 * value of 50 (decimal) then the display shall interpret this as a 01585 * request to adjust the color temperature to 5500°K 01586 * (3000 + (50 * 50))°K = 5500°K 01587 * Notes: 01588 * 1) Applications using this function are recommended to read the 01589 * actual color temperature after using this command and taking 01590 * appropriate action. 01591 * 2) This control is only recommended if the display can produce a 01592 * continuously (at defined increment, see VCP code 0Bh) variable 01593 * color temperature. 01594 * Type: Range 01595 */ 01596 #define NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_REQUEST 134/* RWD */ 01597 01598 /* Select a specified color temperature. 01599 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_SRGB : sRGB 01600 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_NATIVE : Display native 01601 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_4000K : 4000 K 01602 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_5000K : 5000 K 01603 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_6500K : 6500 K 01604 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_7500K : 7500 K 01605 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_8200K : 8200 K 01606 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_9300K : 9300 K 01607 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_10000K : 10000 K 01608 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER1 : 11500 K 01609 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER1 : User 1 01610 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER2 : User 2 01611 * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER3 : User 3 01612 * 00 and >=0E shall be ignored 01613 * Type: Integer 01614 */ 01615 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET 135/* RWD */ 01616 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_SRGB 0x01 01617 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_NATIVE 0x02 01618 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_4000K 0x03 01619 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_5000K 0x04 01620 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_6500K 0x05 01621 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_7500K 0x06 01622 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_8200K 0x07 01623 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_9300K 0x08 01624 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_10000K 0x09 01625 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_11500K 0x0A 01626 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER1 0x0B 01627 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER2 0x0C 01628 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER3 0x0D 01629 01630 /* 01631 * Increasing (decreasing) this value will increase (decrease) the 01632 * luminance of red pixels. 01633 * The value returned shall be an indication of the actual red gain at 01634 * the current color temperature and not be normalized. 01635 * Type: Range 01636 */ 01637 #define NV_CTRL_DDCCI_IMAGE_RED_VIDEO_GAIN 136/* RWD */ 01638 01639 /* 01640 * Increasing (decreasing) this value will increase (decrease) the 01641 * luminance of green pixels. 01642 * The value returned shall be an indication of the actual green gain at 01643 * the current color temperature and not be normalized. 01644 * Type: Range 01645 */ 01646 #define NV_CTRL_DDCCI_IMAGE_GREEN_VIDEO_GAIN 137/* RWD */ 01647 01648 /* 01649 * Increasing (decreasing) this value will increase (decrease) the 01650 * luminance of blue pixels. 01651 * The value returned shall be an indication of the actual blue gain at 01652 * the current color temperature and not be normalized. 01653 * Type: Range 01654 */ 01655 #define NV_CTRL_DDCCI_IMAGE_BLUE_VIDEO_GAIN 138/* RWD */ 01656 01657 /* Increasing (decreasing) this value will increase (decrease) the 01658 * black level of red pixels. 01659 * Type: Range 01660 */ 01661 #define NV_CTRL_DDCCI_IMAGE_RED_VIDEO_BLACK_LEVEL 139/* RWD */ 01662 01663 /* Increasing (decreasing) this value will increase (decrease) the 01664 * black level of green pixels. 01665 * Type: Range 01666 */ 01667 #define NV_CTRL_DDCCI_IMAGE_GREEN_VIDEO_BLACK_LEVEL 140/* RWD */ 01668 01669 /* Increasing (decreasing) this value will increase (decrease) the 01670 * black level of blue pixels. 01671 * Type: Range 01672 */ 01673 #define NV_CTRL_DDCCI_IMAGE_BLUE_VIDEO_BLACK_LEVEL 141/* RWD */ 01674 01675 /* Increasing (decreasing) this value will adjust the focus of the image. 01676 * Type: Range 01677 */ 01678 #define NV_CTRL_DDCCI_IMAGE_FOCUS 142/* RWD */ 01679 01680 /* Increasing (decreasing) this value controls the horizontal picture 01681 * moiré cancellation. 01682 * Type: Range 01683 */ 01684 #define NV_CTRL_DDCCI_IMAGE_HORIZONTAL_MOIRE 143/* RWD */ 01685 01686 /* Increasing (decreasing) this value controls the vertical picture 01687 * moiré cancellation. 01688 * Type: Range 01689 */ 01690 #define NV_CTRL_DDCCI_IMAGE_VERTICAL_MOIRE 144/* RWD */ 01691 01692 /* Increasing (decreasing) this value will increase (decrease) the 01693 * distance to the focal plane of the image. 01694 * Type: Range 01695 */ 01696 #define NV_CTRL_DDCCI_IMAGE_ADJUST_FOCAL_PLANE 145/* RWD */ 01697 01698 /* Increasing (decreasing) this value will increase (decrease) the 01699 * zoom function of the optics 01700 * Type: Range 01701 */ 01702 #define NV_CTRL_DDCCI_IMAGE_ADJUST_ZOOM 146/* RWD */ 01703 01704 /* This value will cause the picture to flip horizontally. 01705 * NV_CTRL_DDCCI_ON : flip horizontally 01706 * NV_CTRL_DDCCI_OFF : Shall be ignored 01707 * Type: Boolean 01708 */ 01709 #define NV_CTRL_DDCCI_IMAGE_HOR_FLIP 147/* -WD */ 01710 01711 /* This value will cause the picture to flip vertically. 01712 * NV_CTRL_DDCCI_ON : flip vertically 01713 * NV_CTRL_DDCCI_OFF : Shall be ignored 01714 * Type: Boolean 01715 */ 01716 #define NV_CTRL_DDCCI_IMAGE_VER_FLIP 148/* -WD */ 01717 01718 /* Changing this value will affect the scaling (input versus output) 01719 * function of the display. 01720 * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_NO_SCALING : No scaling, 1:1 relationship 01721 * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_NO_DISTORT2 : Scale to maximum 01722 * without AR distortion 01723 * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_VERTICAL : Scale to maximum vertical 01724 size 01725 * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_HORIZONTAL ; Scale to maximum 01726 horizontal size 01727 * 0 and >=5 : Shall be ignored 01728 * Type: Integer 01729 */ 01730 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING 149/* RWD */ 01731 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_NO_SCALING 1 01732 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_NO_DISTORT 2 01733 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_VERTICAL 3 01734 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_HORIZONTAL 4 01735 01736 /* Allows one of several image expansion algorithms to be selecte 01737 * to suit different types of image and/or different personal 01738 * preference. 01739 * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(1) : Filter function 1 01740 * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(2) : Filter function 2 01741 * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(3) : Filter function 3 01742 * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(4) : Filter function 4 01743 * 0 and 5 shall be ignored 01744 * Type: Integer 01745 */ 01746 #define NV_CTRL_DDCCI_IMAGE_SHARPNESS 150/* RWD */ 01747 #define NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(n) n 01748 01749 /* Indicates the orientation of the screen. 01750 * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_0 01751 * The normal landscape mode. 01752 * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_90 01753 * Portrait mode achieved by clockwise rotation of the display 90 degrees. 01754 * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_180 01755 * Landscape mode achieved by rotation of the display 180 degrees. 01756 * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_270 01757 * Portrait mode achieved by clockwise rotation of the display 270 degrees. 01758 * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_NA 01759 * Indicates that the display cannot supply the current orientation 01760 * Type: Integer 01761 */ 01762 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION 151/* R-D */ 01763 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_0 0x01 01764 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_90 0x02 01765 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_180 0x03 01766 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_270 0x04 01767 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_NA 0xFF 01768 01769 /* Selects a scan format. 01770 * NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_UNDERSCAN: Underscan 01771 * NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_OVERSCAN: Overscan 01772 * NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_WIDESCREEN: Widescreen 01773 * Type: Integer 01774 */ 01775 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT 152/* RWD */ 01776 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_UNDERSCAN 1 01777 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_OVERSCAN 2 01778 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_WIDESCREEN 3 01779 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE 153/* RWD */ 01780 01781 /* Display mode: 01782 * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_PRODUCTIVITY : 01783 * Productivity (e.g. office applications) 01784 * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_MIXED : Mixed (e.g. internet) 01785 * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_ENTERTAINMENT : 01786 Entertainment (e.g. TV / movie) 01787 * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_USERDEFINED : User defined 01788 * Note: 01789 * The condition(s) associated with options 1, 2 and 3 are defined 01790 * by the display manufacturer 01791 * Type: Integer 01792 */ 01793 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_PRODUCTIVITY 1 01794 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_MIXED 2 01795 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_ENTERTAINMENT 3 01796 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_USERDEFINED 4 01797 01798 /*********************************************** 01799 * DDC/CI VCP CODES: WINDOWED IMAGE OPERATIONS * 01800 ***********************************************/ 01801 01802 /* Defines the top left X pixel of an area of the image. Specified in 01803 * co-ordinates of incoming image before any scaling etc in the display. 01804 * Type: Range 01805 */ 01806 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_TOP_LEFT_X 154/* RWD */ 01807 01808 /* Defines the top left Y pixel of an area of the image. Specified in 01809 * co-ordinates of incoming image before any scaling etc in the display. 01810 * Type: Range 01811 */ 01812 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_TOP_LEFT_Y 155/* RWD */ 01813 01814 /* Defines the bottom right X pixel of an area of the image. 01815 * Specified in co-ordinates of incoming image before any scaling 01816 * in the display. 01817 * Type: Range 01818 */ 01819 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_BOTTOM_RIGHT_X 156/* RWD */ 01820 01821 /* Defines the bottom right Y pixel of an area of the image. 01822 * Specified in co-ordinates of incoming image before any scaling 01823 * in the display. 01824 * Type: Range 01825 */ 01826 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_BOTTOM_LEFT_X 157/* RWD */ 01827 01828 /* Window control, enables the brightness and color within a 01829 * window to be different from the desktop. 01830 * NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_OFF : Off 01831 * NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_ON: On 01832 * All other values are reserved. 01833 * Notes: 01834 * 1. This control should be used in conjunction with 01835 * NV_CTRL_DDCCI_WINDOWEDIMAGE_BACKGROUND 01836 * 2. This command structure is not recommended for new designs, 01837 * see NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE for alternate. 01838 * Type: Integer 01839 */ 01840 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE 158/* RWD */ 01841 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_OFF 1 01842 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_ON 2 01843 01844 /* Changes the contrast ratio between the area of the window and 01845 * the rest of the desktop 01846 * Lower (higher) values will cause the desktop brightness to 01847 * decrease (increase) 01848 * Notes: 01849 * 1. This contropl should be used in conjunction with 01850 * NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE 01851 * 2. This command structure is not recommended for new designs, 01852 * see NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT for alternate. 01853 * Type: Range 01854 */ 01855 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_BACKGROUND 159/* RWD */ 01856 01857 /* A value of 127 shall have no effect. 01858 * A value > 127 shall cause the color to shift towards yellow 01859 * A value < 127 shall cause the color to shift towards magenta 01860 * Type: Range 01861 */ 01862 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_RED 160/* RWD */ 01863 01864 /* A value of 127 shall have no effect. 01865 * A value > 127 shall cause the color to shift towards green 01866 * A value < 127 shall cause the color to shift towards red 01867 * Type: Range 01868 */ 01869 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_YELLOW 161/* RWD */ 01870 01871 /* A value of 127 shall have no effect. 01872 * A value > 127 shall cause the color to shift towards cyan 01873 * A value < 127 shall cause the color to shift towards yellow 01874 * Type: Range 01875 */ 01876 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_GREEN 162/* RWD */ 01877 01878 /* A value of 127 shall have no effect. 01879 * A value > 127 shall cause the color to shift towards blue 01880 * A value < 127 shall cause the color to shift towards green 01881 * Type: Range 01882 */ 01883 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_CYAN 163/* RWD */ 01884 01885 /* A value of 127 shall have no effect. 01886 * A value > 127 shall cause the color to shift towards magenta 01887 * A value < 127 shall cause the color to shift towards cyan 01888 * Type: Range 01889 */ 01890 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_BLUE 164/* RWD */ 01891 01892 /* A value of 127 shall have no effect. 01893 * A value > 127 shall cause the color to shift towards red 01894 * A value < 127 shall cause the color to shift towards blue 01895 * Type: Range 01896 */ 01897 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_MAGENTA 165/* RWD */ 01898 01899 /* Turn the selected window operation on / off. 01900 * Bit: NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_DPY_IMAGE 01901 * 0 Window controls have no effect on the 01902 * displayed image 01903 * 1 Window controls effect the displayed image 01904 * (full image area) 01905 * Bit: NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_WINDOW(n) 01906 * 0 Window controls have no effect on the 01907 * displayed image (window n) 01908 * 1 Window controls effect the displayed image 01909 * (window n) 01910 * n is between 1 and 7 01911 * Note: This command structure is recommend, in conjunction with 01912 * NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT, for all new designs. 01913 * Type: Bitmask 01914 */ 01915 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE 166/* RWD */ 01916 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_DPY_IMAGE 1 01917 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_WINDOW(n) (1<<n) 01918 01919 /* Change the selected window as defined with 01920 * NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE 01921 * When a window is selected then all commands that the display 01922 * controller supports for window operations are valid, this may 01923 * include but is not limited to: brightness, contrast, R/G/B gain, 6- 01924 * axis color, sharpness, etc. 01925 * meaning of value NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_DPY_IMAGE: 01926 * Full display image area is selected except for 01927 * area(s) of active windows 01928 * meaning of value NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_WINDOW(n) 01929 * Window n is selected 01930 * If this command is not supported then the `full image area' shall 01931 * be the default. 01932 * This command structure is recommend, in conjunction with 01933 * NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE, for all new designs. 01934 * Type: Integer 01935 */ 01936 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT 167/* RWD */ 01937 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_DPY_IMAGE 0 01938 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_WINDOW(n) (1<<n) 01939 01940 01941 /*************************************/ 01942 /* DDC/CI VCP CODES: AUDIO FUNCTIONS */ 01943 /*************************************/ 01944 01945 /* Increasing (decreasing) this value will increase (decrease) the 01946 * audio volume. 01947 * Type: Range 01948 */ 01949 #define NV_CTRL_DDCCI_AUDIO_SPEAKER_VOLUME 168/* RWD */ 01950 01951 /* Increasing (decreasing) this value will increase (decrease) the 01952 * microphone gain. 01953 * Type: Range 01954 */ 01955 #define NV_CTRL_DDCCI_AUDIO_MICROPHONE_VOLUME 169/* RWD */ 01956 01957 /* Increasing (decreasing) this control will cause high frequency 01958 * audio to be emphasized (de-emphasised). 01959 * Type: Range 01960 */ 01961 #define NV_CTRL_DDCCI_AUDIO_TV_AUDIO_TREBLE 170/* RWD */ 01962 01963 /* Increasing (decreasing) this control will cause low frequency 01964 * audio to be emphasized (de-emphasised). 01965 * Type: Range 01966 */ 01967 #define NV_CTRL_DDCCI_AUDIO_TV_AUDIO_BASS 171/* RWD */ 01968 01969 /* This control affects the left right balance of audio output. 01970 * Increasing (decreasing) the value will cause the balance to move 01971 * to the right (left). 01972 * Type: Range 01973 */ 01974 #define NV_CTRL_DDCCI_AUDIO_TV_AUDIO_BALANCE 172/* RWD */ 01975 01976 /* This control allows one of several audio modes to be selected. 01977 * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_OFF: Display audio is disabled, 01978 * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_MONO: Both display audio channels, 01979 * use the left audio channel 01980 * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO: Incoming left and right 01981 * audio. Channels feed separate display output audio channels. 01982 * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO_EXPANDED: As defined 01983 * by the manufacturer. 01984 * Type: Integer 01985 */ 01986 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE 173/* RWD */ 01987 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_OFF 0 01988 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_MONO 1 01989 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO 2 01990 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO_EXPANDED 3 01991 01992 01993 /************************************/ 01994 /* DDC/CI VCP CODES: DPVL Functions */ 01995 /************************************/ 01996 01997 /* Video mode and status of a DPVL capable monitor 01998 * Bit Value Meaning 01999 * 0 0 Raster scan mode 02000 * 1 DPVL mode 02001 * 1 0 Monitor is able to receive the next packet 02002 * 1 Monitor is unable to accept another packet 02003 * 2 0 No error detected in the last header received 02004 * 1 Error detected in the last header received 02005 * Other bits are reserved and shall be set to '0'. 02006 * Type: Bitmask 02007 */ 02008 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS 174/* R-D */ 02009 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS_DPVL_MODE (1<<0) 02010 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS_UNABLE_TO_RECEIVE_NEXT_PACKET (1<<1) 02011 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS_ERROR_DETECTED_IN_LAST_HEADER (1<<2) 02012 02013 /* Counter for the DPVL packets received (valid and invalid ones). 02014 * This value counts from 0000h to FFFFh and then rolls over to 0000h. 02015 * The host can reset the value to 0000h. 02016 * Type: Range 02017 */ 02018 #define NV_CTRL_DDCCI_DPVL_PACKET_COUNT 175/* RWD */ 02019 02020 /* The X origin of the monitor in the virtual screen. The support of 02021 * this command indicates the multi-display support of the display. If 02022 * a display supports this command, the monitor must also support 02023 * Monitor Y Origin command. 02024 * Type: Range; "0000h" to "FFFFh" or 0 to 65535 02025 */ 02026 #define NV_CTRL_DDCCI_DPVL_MONITOR_X_ORIGIN 176/* RWD */ 02027 02028 /* The Y origin of the display in the virtual screen. The support of 02029 * this command indicates the multi-display support of the display. If 02030 * a display supports this command, the monitor must also support 02031 * Monitor X Origin command. 02032 * Type: Range; "0000h" to "FFFFh" or 0 to 65535 02033 */ 02034 #define NV_CTRL_DDCCI_DPVL_MONITOR_Y_ORIGIN 177/* RWD */ 02035 02036 /* Error Counter for the DPVL header. The counter value saturates 02037 * at FFFFh. Host can reset to 0000h. 02038 * Type: Range 02039 */ 02040 #define NV_CTRL_DDCCI_DPVL_HEADER_ERROR_COUNT 178/* RWD */ 02041 02042 /* CRC error Counter for the DPVL body (containing video data). 02043 * The counter value saturates at FFFFh. The Host can reset to 0000h 02044 * Type: Range 02045 */ 02046 #define NV_CTRL_DDCCI_DPVL_BODY_CRC_ERROR_COUNT 179/* RWD */ 02047 02048 /* Assigned identification number for the monitor. 02049 * Type: Valid range is 0000h to FFFEh, FFFFh is reserved for broadcast. 02050 */ 02051 #define NV_CTRL_DDCCI_DPVL_CLIENT_ID 180/* RWD */ 02052 02053 /* Indicates the status of the DVI link 02054 * NV_CTRL_DDCCI_DPVL_LINK_CONTROL_DISABLED: Link shutdown is disabled 02055 * NV_CTRL_DDCCI_DPVL_LINK_CONTROL_ENABLED: Link shutdown is enabled 02056 * Type: Boolean 02057 */ 02058 #define NV_CTRL_DDCCI_DPVL_LINK_CONTROL 181/* RWD */ 02059 #define NV_CTRL_DDCCI_DPVL_LINK_CONTROL_DISABLED 0 02060 #define NV_CTRL_DDCCI_DPVL_LINK_CONTROL_ENABLED 1 02061 02062 /**********************************************/ 02063 /* DDC/CI VCP CODES: Miscellaneous Functions */ 02064 /**********************************************/ 02065 02066 /* Causes a CRT display to perform a degauss cycle with 02067 * NV_CTRL_DDCCI_ON 02068 * Type: Boolean 02069 */ 02070 #define NV_CTRL_DDCCI_MISC_DEGAUSS 182/* -WD */ 02071 02072 /* Used to indicate that a display user control (excluding power 02073 * controls) has been used to change and save (or autosave) a new value. 02074 * NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_NEW : No new control value 02075 * NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_USER_CONTROLS : A new control value 02076 * has been saved 02077 * NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_USER_CONTROLS : No user controls are present 02078 * Note: 02079 * A value = NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NEW should only be reset to 02080 * a value = NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_NEW by a host write 02081 * operation and not by the display 02082 * Type: Integer 02083 */ 02084 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE 183/* RWD */ 02085 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_NEW 0x01 02086 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NEW 0x02 02087 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_USER_CONTROLS 0xFF 02088 02089 /* Allows display controls to be used as soft keys 02090 * NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NO_BUTTON_ACTIVE : No button active 02091 * NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_BUTTON(n): Button n active 02092 * n is between 1 and 7. 02093 * NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NONE : No controls present 02094 * Note: 02095 * A `button active' value should only be reset to a value = 0 by 02096 * host write operation and not by the display 02097 * Type: Integer 02098 */ 02099 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS 184/* RWD */ 02100 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NO_BUTTON_ACTIVE 0 02101 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_BUTTON(n) n 02102 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NONE 0xFF 02103 02104 /* When read this control returns the VCP code associated with 02105 * the new control value reported using 02H 02106 * Examples: 02107 * If brightness has been changed then return value of 10h 02108 * If red gain has been changed then return value of 16h. 02109 * Type: Range 02110 */ 02111 #define NV_CTRL_DDCCI_MISC_ACTIVE_CONTROL 185/* R-D */ 02112 02113 /* Used to select the active video source 02114 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_1: Analog video (R/G/B) 1 02115 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_2: Analog video (R/G/B) 2 02116 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_1: Digital video (TMDS) 1 02117 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_2: Digital video (TMDS) 2 02118 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_1: Composite video 1 02119 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_2: Composite video 2 02120 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_1: S-video 1 02121 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_2: S-video 2 02122 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_1: Tuner 1 02123 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_2: Tuner 2 02124 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_3: Tuner 3 02125 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_1: Component video (YPrPb/YCrCb) 1 02126 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_2: Component video (YPrPb/YCrCb) 2 02127 * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_3: Component video (YPrPb/YCrCb) 3 02128 * Type: Integer 02129 */ 02130 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE 186/* RWD */ 02131 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_1 1 02132 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_2 2 02133 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_1 3 02134 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_2 4 02135 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_1 5 02136 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_2 6 02137 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_1 7 02138 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_2 8 02139 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_1 9 02140 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_2 10 02141 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_3 11 02142 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_1 12 02143 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_2 13 02144 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_3 14 02145 02146 /* ncreasing (decreasing) this value will increase (decrease) the 02147 * velocity modulation of the horizontal scan as a function of a 02148 * change in the luminance level. 02149 * Type: Range 02150 */ 02151 #define NV_CTRL_DDCCI_MISC_VELOCITY_SCAN_MODULATION 187/* RWD */ 02152 02153 /* Increasing this control increases the amplitude of the color 02154 * difference components of the video signal. 02155 * The result is an increase in the amount of pure color relative to 02156 * white in the video. This control does not affect the RGB input, 02157 * only the TV video inputs. 02158 * Type: Range 02159 */ 02160 #define NV_CTRL_DDCCI_MISC_TV_COLOR_SATURATION 188/* RWD */ 02161 02162 /* Used to increment / decrement between TV-channels, the exact 02163 * behavior is implementation specific (e.g. increment / decrement 02164 * to next numeric channel or increment / decrement to next 02165 * channel with a signal) 02166 * NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_INCREMENT: Increment channel 02167 * NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_DECREMENT: Decrement channel 02168 * Type: Integer 02169 */ 02170 #define NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN 189/* -WD */ 02171 #define NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_INCREMENT 1 02172 #define NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_DECREMENT 2 02173 02174 /* Increasing this control increases the amplitude of the high 02175 * frequency components of the video signal. 02176 * This allows fine details to be accentuated. This control does not 02177 * affect the RGB input, only the TV video inputs. 02178 * Type: Range 02179 */ 02180 #define NV_CTRL_DDCCI_MISC_TV_SHARPNESS 190/* RWD */ 02181 02182 /* Provides for the TV-audio to be muted or unmated. 02183 * NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_ON: Mute the audio 02184 * NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_OFF: Unmute the audio 02185 * Type: Range 02186 */ 02187 #define NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE 191/* RWD */ 02188 #define NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_ON 1 02189 #define NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_OFF 2 02190 02191 /* Increasing (decreasing) this control increases (decreases) the 02192 * ratio between whites and blacks in the video. 02193 * This control does not affect the RGB input, only the TV video 02194 * inputs. 02195 * Type: Range 02196 */ 02197 #define NV_CTRL_DDCCI_MISC_TV_CONTRAST 192/* RWD */ 02198 02199 /* Also known as `tint' 02200 * Increasing (decreasing) this control increases (decreases) the 02201 * wavelength of the color component of the video signal. 02202 * The result is a shift towards red (blue) in the hue of all colors. 02203 * This control does not affect the RGB input, only the TV video 02204 * inputs. 02205 * Type: Range 02206 */ 02207 #define NV_CTRL_DDCCI_MISC_TV_HUE 193/* RWD */ 02208 02209 /* Increasing this control increases the black level of the video, 02210 * resulting in an increase of the luminance level of the video. 02211 * A value of zero represents the darkest level possible. 02212 * This control does not affect the RGB input, only the TV video 02213 * inputs. 02214 * Type: Range 02215 */ 02216 #define NV_CTRL_DDCCI_MISC_TV_BLACK_LEVEL_SHARPNESS 194/* RWD */ 02217 02218 /* Horizontal synchronization signal frequency in Hz as determined 02219 * by the display. 02220 * FFh: Indicates that the display cannot supply this information 02221 * Type: Range 02222 */ 02223 #define NV_CTRL_DDCCI_MISC_HORIZONTAL_FREQUENCY 195/* R-D */ 02224 02225 /* Vertical synchronization signal frequency in 0.01Hz as 02226 * determined by the display. 02227 * FFh: Indicates that the display cannot supply this information 02228 * Type: Range 02229 */ 02230 #define NV_CTRL_DDCCI_MISC_VERTICAL_FREQUENCY 196/* R-D */ 02231 02232 /* Select a type of LCD sub-pixel structure 02233 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_UNDEFINED: 02234 * Sub-pixel layout is not defined 02235 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_V: 02236 * Red / Green / Blue vertical stripe 02237 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_H: 02238 * Red / Green / Blue horizontal stripe 02239 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_V: 02240 * Blue / Green / Red vertical stripe 02241 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_H: 02242 * Blue/ Green / Red horizontal stripe 02243 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_1: 02244 * Quad-pixel, a 2 x 2 sub-pixel structure with red at top 02245 * left, blue at bottom right and green at top right and 02246 * bottom left 02247 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_2: 02248 * Quad-pixel, a 2 x 2 sub-pixel structure with red at 02249 * bottom left, blue at top right and green at top left and 02250 * bottom right 02251 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_DELTA: 02252 * Delta (triad) 02253 * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_MOSAIC: 02254 * Mosaic with red, green and blue fields overlayed 02255 * (field sequential color) 02256 * Type: Integer 02257 */ 02258 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT 197/* R-D */ 02259 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_UNDEFINED 0 02260 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_V 1 02261 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_H 2 02262 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_V 3 02263 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_H 4 02264 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_1 5 02265 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_2 6 02266 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_DELTA 7 02267 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_MOSAIC 8 02268 02269 /* Select the base technology type 02270 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_SHADOWMASK: CRT (shadowmask) 02271 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_APERTURE_GRILL: CRT (aperture 02272 * grill) 02273 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_TFT: TFT 02274 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_LCOS: LCoS 02275 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_PLASMA: Plasma 02276 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_OLED: OLED 02277 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_EL: EL 02278 * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_MEM: MEM 02279 * Type: integer 02280 */ 02281 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE 198/* R-D */ 02282 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_SHADOWMASK 1 02283 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_APERTURE_GRILL 2 02284 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_TFT 3 02285 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_LCOS 4 02286 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_PLASMA 5 02287 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_OLED 6 02288 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_EL 7 02289 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_MEM 8 02290 02291 /* Returns the current value (in hours) of `active power on' time 02292 * accumulated by the display a 2 byte value. 02293 * "Active power on" time is defined as the period when the 02294 * emissive elements(s) of the display cathodes for a CRT, 02295 * fluorescent lamps for a LCD, etc are active. 02296 * Type: Range 02297 */ 02298 #define NV_CTRL_DDCCI_MISC_DISPLAY_USAGE_TIME 199/* R-D */ 02299 02300 /* Returns the length (in bytes) of non-volatile storage in the display 02301 * available for writing a display descriptor the maximum 02302 * descriptor length is 256 bytes 02303 * See 02304 * Type: Range 02305 */ 02306 #define NV_CTRL_DDCCI_MISC_DISPLAY_DESCRIPTOR_LENGTH 200/* R-D */ 02307 02308 /* If enabled (NV_CTRL_DDCCI_ON), the display descriptor written to the 02309 * display using XNVCTRLSetDDCCIDisplayDescriptor() shall be displayed when 02310 * no video is being received. 02311 * The duration for which it is displayed is left to individual manufacturers. 02312 * NV_CTRL_DDCCI_ON: Display is enabled 02313 * NV_CTRL_DDCCI_OFF: The display descriptor shall not be displayed. 02314 * Type: Boolean 02315 */ 02316 #define NV_CTRL_DDCCI_MISC_ENABLE_DISPLAY_OF_DISPLAY_DESCRIPTOR 201/* RWD */ 02317 02318 /* A 2 byte value used to allow an application to only operate with 02319 * known products. The display manufacturer and application author 02320 * agree to a code such that application will only run when a valid 02321 * code is present in the display. 02322 * Type: Integer 02323 */ 02324 #define NV_CTRL_DDCCI_MISC_APPLICATION_ENABLE_KEY 202/* R-D */ 02325 02326 /* This VCP code provides allows a 2 byte value identifying the 02327 * firmware level installed in the display to be determined. 02328 * Type: Range 02329 */ 02330 #define NV_CTRL_DDCCI_MISC_DISPLAY_FIRMWARE_LEVEL 203/* R-D */ 02331 02332 /* Indicates the current state of the display OSD 02333 * NV_CTRL_DDCCI_MISC_OSD_DISABLED: OSD is disabled 02334 * NV_CTRL_DDCCI_MISC_OSD_ENABLED: OSD is enabled 02335 * NV_CTRL_DDCCI_MISC_OSD_CANNOT_SUPPLY: Indicates that the display cannot 02336 * supply this information. 02337 * Type: Integer 02338 */ 02339 #define NV_CTRL_DDCCI_MISC_OSD 204/* RWD */ 02340 #define NV_CTRL_DDCCI_MISC_OSD_DISABLED 1 02341 #define NV_CTRL_DDCCI_MISC_OSD_ENABLED 2 02342 #define NV_CTRL_DDCCI_MISC_OSD_CANNOT_SUPPLY 0xFF 02343 02344 /* Allows the displayed OSD language to be selected. 02345 * Type: Integer */ 02346 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE 205/* RWD */ 02347 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_CHINESE 1 02348 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_ENGLISH 2 02349 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_FRENCH 3 02350 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_GERMAN 4 02351 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_ITALIAN 5 02352 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_JAPANESE 6 02353 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_KOREAN 7 02354 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_PORTUGESE 8 02355 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_RUSSIAN 9 02356 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_SPANISH 10 02357 02358 /* An `auxiliary display' is a small alpha-numeric display associated 02359 * with the primary display and able to be accessed via the primary 02360 * display. 02361 * This command returns a 1 byte value that defines the number of 02362 * characters and the number of rows available. The format is: 02363 * Bits 0 to 5 : The number of characters / row 02364 * Bits 6 to 7 : The number of rows 02365 * I.e. The maximum auxiliary display size is 4 rows each with 64 characters 02366 * Type: Bitmask 02367 */ 02368 #define NV_CTRL_DDCCI_MISC_AUXILIARY_DISPLAY_SIZE 206/* R-D */ 02369 #define NV_CTRL_DDCCI_MISC_AUXILIARY_DISPLAY_SIZE_COLUMNS_MASK 0x1F 02370 #define NV_CTRL_DDCCI_MISC_AUXILIARY_DISPLAY_SIZE_ROWS_MASK 0x60 02371 02372 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT 207/* RWD */ 02373 02374 /* Used to selects the active output. 02375 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_1: Analog video (R/G/B) 1 02376 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_2: Analog video (R/G/B) 2 02377 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_1: Digital video (TMDS) 1 02378 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_2: Digital video (TMDS) 2 02379 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_1: Composite video 1 02380 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_2: Composite video 2 02381 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_1: S-video 1 02382 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_2: S-video 2 02383 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_1: Tuner 1 02384 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_2: Tuner 2 02385 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_3: Tuner 3 02386 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_1: Component video (YPrPb/YCrCb) 1 02387 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_2: Component video (YPrPb/YCrCb) 2 02388 * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_3: Component video (YPrPb/YCrCb) 3 02389 * Type: Integer 02390 */ 02391 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_1 1 02392 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_2 2 02393 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_1 3 02394 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_2 4 02395 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_1 5 02396 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_2 6 02397 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_1 7 02398 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_2 8 02399 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_1 9 02400 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_2 10 02401 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_3 11 02402 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_1 12 02403 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_2 13 02404 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_3 14 02405 02406 /* Used to select the video mode with respect to 2D or 3D video. 02407 * Here is the meaning of the bitmask: 02408 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_RIGHT_FIRST: 02409 * Enable Field-Sequential Right Eye First 02410 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_LEFT_FIRST: 02411 * Enable Field-Sequential Left Eye First 02412 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_RIGHT_FIRST: 02413 * Enable 2-Way Interleaved Right Eye First 02414 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_LEFT_FIRST: 02415 * Enable 2-Way Interleaved Left Eye First 02416 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_ODD_LINES: 02417 * Enable 4-Way Interleaved, Display Stereo Buffer 0 (even scan lines) 02418 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_ODD_LINES: 02419 * Enable 4-Way Interleaved, Display Stereo Buffer 1 (odd scan lines) 02420 * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_SIDE_BY_SIDE_INTERLEAVED: 02421 * Enable Side-by-Side Interleaved 02422 * Note: It is permissible, during a read operation, for a display to indicate 02423 * support for 2 or more stereo modes 02424 * Type: Bitmask 02425 */ 02426 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE 208/* RWD */ 02427 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_RIGHT_FIRST (1<<6) 02428 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_LEFT_FIRST (1<<5) 02429 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_RIGHT_FIRST (1<<4) 02430 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_LEFT_FIRST (1<<3) 02431 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_EVEN_LINES (1<<2) 02432 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_ODD_LINES (1<<1) 02433 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_SIDE_BY_SIDE_INTERLEAVED (1<<0) 02434 02435 /* Power Mode DPMS and DPM standards are supported. 02436 * Value DPMS DPM 02437 * NV_CTRL_DDCCI_MISC_POWER_MODE_ON On On 02438 * NV_CTRL_DDCCI_MISC_POWER_MODE_STANDBY Standby Off 02439 * NV_CTRL_DDCCI_MISC_POWER_MODE_SUSPEND Suspend Off 02440 * NV_CTRL_DDCCI_MISC_POWER_MODE_OFF Off Off 02441 * Type: Integer 02442 */ 02443 #define NV_CTRL_DDCCI_MISC_POWER_MODE 209/* RWD */ 02444 #define NV_CTRL_DDCCI_MISC_POWER_MODE_ON 1 02445 #define NV_CTRL_DDCCI_MISC_POWER_MODE_STANDBY 2 02446 #define NV_CTRL_DDCCI_MISC_POWER_MODE_SUSPEND 3 02447 #define NV_CTRL_DDCCI_MISC_POWER_MODE_OFF 4 02448 02449 /* Controls output of an auxiliary power output from a display to a host device. 02450 * NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_DISABLE: 02451 * Disable auxiliary output power 02452 * NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_ENABLE: 02453 * Enable auxiliary output power 02454 * Type: Integer 02455 */ 02456 #define NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT 210/* RWD */ 02457 #define NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_DISABLE 1 02458 #define NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_ENABLE 2 02459 02460 /* Operation mode 02461 * NV_CTRL_DDCCI_MISC_OPERATION_MODE_STANDALONE: Stand alone 02462 * NV_CTRL_DDCCI_MISC_OPERATION_MODE_SLAVE: Slave (full PC control) 02463 * Type: Integer 02464 */ 02465 #define NV_CTRL_DDCCI_MISC_OPERATION_MODE 211/* -WD */ 02466 #define NV_CTRL_DDCCI_MISC_OPERATION_MODE_STANDALONE 1 02467 #define NV_CTRL_DDCCI_MISC_OPERATION_MODE_SLAVE 2 02468 02469 /* Define the version number of VCP list recognized by the display. 02470 * This is a 2 byte value, byte 1 defines the version number and 02471 * byte 2 defines the revision number 02472 * e.g 02 00 (hex) defines Version 2, Revision 0 02473 * Type: Integer 02474 */ 02475 #define NV_CTRL_DDCCI_MISC_VCP_VERSION 212/* R-D */ 02476 02477 /* Save the current adjustment data to EEPROM or other 02478 * non-volatile storage inside the display 02479 * Returns TRUE on success 02480 * Type: Boolean 02481 */ 02482 #define NV_CTRL_DDCCI_SAVE_CURRENT_SETTINGS 213/* -WD */ 02483 02484 /* Detects if the display is DDC/CI capable 02485 * Returns TRUE on success 02486 * Type: Boolean 02487 */ 02488 #define NV_CTRL_DDCCI_CAPABLE 214/* R-D*/ 02489 02490 #define NV_CTRL_DDCCI_FIRST_VCP NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_POSITION 02491 #define NV_CTRL_DDCCI_LAST_VCP NV_CTRL_DDCCI_CAPABLE 02492 /**************************************************************************/ 02493 02494 /* 02495 * NV_CTRL_FLATPANEL_CHIP_LOCATION - for the specified display device, 02496 * report whether the flatpanel is driven by the on-chip controller, 02497 * or a separate controller chip elsewhere on the graphics board. 02498 * This attribute is only available for flatpanels. 02499 */ 02500 02501 #define NV_CTRL_FLATPANEL_CHIP_LOCATION 215/* R-DG */ 02502 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_INTERNAL 0 02503 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_EXTERNAL 1 02504 02505 /* 02506 * NV_CTRL_FLATPANEL_LINK - report whether the specified display 02507 * device is driven by a single link or dual link DVI connection. 02508 * This attribute is only available for flatpanels. 02509 */ 02510 02511 #define NV_CTRL_FLATPANEL_LINK 216/* R-DG */ 02512 #define NV_CTRL_FLATPANEL_LINK_SINGLE 0 02513 #define NV_CTRL_FLATPANEL_LINK_DUAL 1 02514 02515 /* 02516 * NV_CTRL_FLATPANEL_SIGNAL - for the specified display device, report 02517 * whether the flatpanel is driven by an LVDS or TMDS signal. This 02518 * attribute is only available for flatpanels. 02519 */ 02520 02521 #define NV_CTRL_FLATPANEL_SIGNAL 217/* R-DG */ 02522 #define NV_CTRL_FLATPANEL_SIGNAL_LVDS 0 02523 #define NV_CTRL_FLATPANEL_SIGNAL_TMDS 1 02524 02525 02526 /* 02527 * NV_CTRL_USE_HOUSE_SYNC - when TRUE, the server (master) frame lock 02528 * device will propagate the incoming house sync signal as the outgoing 02529 * frame lock sync signal. If the frame lock device cannot detect a 02530 * frame lock sync signal, it will default to using the internal timings 02531 * from the GPU connected to the primary connector. 02532 * 02533 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 02534 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN 02535 * target. 02536 */ 02537 02538 #define NV_CTRL_USE_HOUSE_SYNC 218/* RW-F */ 02539 #define NV_CTRL_USE_HOUSE_SYNC_FALSE 0 02540 #define NV_CTRL_USE_HOUSE_SYNC_TRUE 1 02541 02542 /* 02543 * NV_CTRL_EDID_AVAILABLE - report if an EDID is available for the 02544 * specified display device. 02545 * 02546 * This attribute may also be queried through XNVCTRLQueryTargetAttribute() 02547 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN 02548 * target. 02549 */ 02550 02551 #define NV_CTRL_EDID_AVAILABLE 219 /* R-DG */ 02552 #define NV_CTRL_EDID_AVAILABLE_FALSE 0 02553 #define NV_CTRL_EDID_AVAILABLE_TRUE 1 02554 02555 /* 02556 * NV_CTRL_FORCE_STEREO - when TRUE, OpenGL will force stereo flipping 02557 * even when no stereo drawables are visible (if the device is configured 02558 * to support it, see the "Stereo" X config option). 02559 * When false, fall back to the default behavior of only flipping when a 02560 * stereo drawable is visible. 02561 */ 02562 02563 02564 #define NV_CTRL_FORCE_STEREO 220 /* RW- */ 02565 #define NV_CTRL_FORCE_STEREO_FALSE 0 02566 #define NV_CTRL_FORCE_STEREO_TRUE 1 02567 02568 02569 /* 02570 * NV_CTRL_IMAGE_SETTINGS - the image quality setting for OpenGL clients. 02571 * 02572 * This setting is only applied to OpenGL clients that are started 02573 * after this setting is applied. 02574 */ 02575 02576 #define NV_CTRL_IMAGE_SETTINGS 221 /* RW- */ 02577 #define NV_CTRL_IMAGE_SETTINGS_HIGH_QUALITY 0 02578 #define NV_CTRL_IMAGE_SETTINGS_QUALITY 1 02579 #define NV_CTRL_IMAGE_SETTINGS_PERFORMANCE 2 02580 #define NV_CTRL_IMAGE_SETTINGS_HIGH_PERFORMANCE 3 02581 02582 02583 /* 02584 * NV_CTRL_XINERAMA - return whether xinerama is enabled 02585 */ 02586 02587 02588 #define NV_CTRL_XINERAMA 222 /* RW- */ 02589 #define NV_CTRL_XINERAMA_OFF 0 02590 #define NV_CTRL_XINERAMA_ON 1 02591 02592 /* 02593 * NV_CTRL_XINERAMA_STEREO - when TRUE, OpenGL will allow stereo flipping 02594 * on multiple X screens configured with Xinerama. 02595 * When FALSE, flipping is allowed only on one X screen at a time. 02596 */ 02597 02598 #define NV_CTRL_XINERAMA_STEREO 223 /* RW- */ 02599 #define NV_CTRL_XINERAMA_STEREO_FALSE 0 02600 #define NV_CTRL_XINERAMA_STEREO_TRUE 1 02601 02602 /* 02603 * NV_CTRL_BUS_RATE - if the bus type of the GPU driving the specified 02604 * screen is AGP, then NV_CTRL_BUS_RATE returns the configured AGP 02605 * transfer rate. If the bus type is PCI Express, then this attribute 02606 * returns the width of the physical link. 02607 */ 02608 02609 #define NV_CTRL_BUS_RATE 224 /* R-- */ 02610 02611 /* 02612 * NV_CTRL_SHOW_SLI_HUD - when TRUE, OpenGL will draw information about the 02613 * current SLI mode. 02614 */ 02615 02616 #define NV_CTRL_SHOW_SLI_HUD 225 /* RW- */ 02617 #define NV_CTRL_SHOW_SLI_HUD_FALSE 0 02618 #define NV_CTRL_SHOW_SLI_HUD_TRUE 1 02619 02620 /* 02621 * NV_CTRL_XV_SYNC_TO_DISPLAY - this control is valid when twinview and 02622 * XVideo Sync To VBlank are enabled. 02623 * It controls which display device will be synched to. 02624 */ 02625 02626 #define NV_CTRL_XV_SYNC_TO_DISPLAY 226 /* RW- */ 02627 02628 /* 02629 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 - this attribute is only intended 02630 * to be used to query the ValidValues for 02631 * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT above the first 31 VIDEO_FORMATS. 02632 * See NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT for details. 02633 */ 02634 02635 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 227 /* --- */ 02636 02637 /* 02638 * Override the SDI hardware's Color Space Conversion with the values 02639 * controlled through XNVCTRLSetGvoColorConversion() and 02640 * XNVCTRLGetGvoColorConversion(). If this attribute is FALSE, then 02641 * the values specified through XNVCTRLSetGvoColorConversion() are 02642 * ignored. 02643 */ 02644 02645 #define NV_CTRL_GVO_OVERRIDE_HW_CSC 228 /* RW- */ 02646 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_FALSE 0 02647 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_TRUE 1 02648 02649 02650 /* 02651 * NV_CTRL_GVO_CAPABILITIES - this read-only attribute describes GVO 02652 * capabilities that differ between NVIDIA SDI products. This value 02653 * is a bitmask where each bit indicates whether that capability is 02654 * available. 02655 * 02656 * APPLY_CSC_IMMEDIATELY - whether the CSC matrix, offset, and scale 02657 * specified through XNVCTRLSetGvoColorConversion() will take affect 02658 * immediately, or only after SDI output is disabled and enabled 02659 * again. 02660 * 02661 * APPLY_CSC_TO_X_SCREEN - whether the CSC matrix, offset, and scale 02662 * specified through XNVCTRLSetGvoColorConversion() will also apply 02663 * to GVO output of an X screen, or only to OpenGL GVO output, as 02664 * enabled through the GLX_NV_video_out extension. 02665 */ 02666 02667 #define NV_CTRL_GVO_CAPABILITIES 229 /* R-- */ 02668 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x1 02669 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x2 02670 02671 02672 /* 02673 * NV_CTRL_GVO_COMPOSITE_TERMINATION - enable or disable 75 ohm 02674 * termination of the SDI composite input signal. 02675 */ 02676 02677 #define NV_CTRL_GVO_COMPOSITE_TERMINATION 230 /* RW- */ 02678 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE 1 02679 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE 0 02680 02681 02682 /* 02683 * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES - display device mask indicating 02684 * which display devices are "associated" with the specified X screen 02685 * (ie: are available to the X screen for displaying the X screen). 02686 */ 02687 02688 #define NV_CTRL_ASSOCIATED_DISPLAY_DEVICES 231 /* RW- */ 02689 02690 /* 02691 * NV_CTRL_FRAMELOCK_SLAVES - get/set whether the display device(s) 02692 * given should listen or ignore the master's sync signal. 02693 * 02694 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 02695 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 02696 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 02697 */ 02698 02699 #define NV_CTRL_FRAMELOCK_SLAVES 232 /* RW-G */ 02700 02701 /* 02702 * NV_CTRL_FRAMELOCK_MASTERABLE - Can this Display Device be set 02703 * as the master of the frame lock group. Returns MASTERABLE_TRUE if 02704 * the GPU driving the display device is connected to the "primary" 02705 * connector on the frame lock board. 02706 * 02707 * This attribute can only be queried through XNVCTRLQueryTargetAttribute() 02708 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 02709 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 02710 */ 02711 02712 #define NV_CTRL_FRAMELOCK_MASTERABLE 233 /* R-DG */ 02713 #define NV_CTRL_FRAMELOCK_MASTERABLE_FALSE 0 02714 #define NV_CTRL_FRAMELOCK_MASTERABLE_TRUE 1 02715 02716 02717 /* 02718 * NV_CTRL_PROBE_DISPLAYS - re-probes the hardware to detect what 02719 * display devices are connected to the GPU or GPU driving the 02720 * specified X screen. Returns a display mask. 02721 * 02722 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 02723 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02724 */ 02725 02726 #define NV_CTRL_PROBE_DISPLAYS 234 /* R--G */ 02727 02728 02729 /* 02730 * NV_CTRL_REFRESH_RATE - Returns the refresh rate of the specified 02731 * display device in 100 * Hz (ie. to get the refresh rate in Hz, divide 02732 * the returned value by 100.) 02733 * 02734 * This attribute may be queried through XNVCTRLQueryTargetAttribute() 02735 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02736 */ 02737 02738 #define NV_CTRL_REFRESH_RATE 235 /* R-DG */ 02739 02740 02741 /* 02742 * NV_CTRL_GVO_FLIP_QUEUE_SIZE - The Graphics to Video Out interface 02743 * exposed through NV-CONTROL and the GLX_NV_video_out extension uses 02744 * an internal flip queue when pbuffers are sent to the video device 02745 * (via glXSendPbufferToVideoNV()). The NV_CTRL_GVO_FLIP_QUEUE_SIZE 02746 * can be used to query and assign the flip queue size. This 02747 * attribute is applied to GLX when glXGetVideoDeviceNV() is called by 02748 * the application. 02749 */ 02750 02751 #define NV_CTRL_GVO_FLIP_QUEUE_SIZE 236 /* RW- */ 02752 02753 02754 /* 02755 * NV_CTRL_CURRENT_SCANLINE - query the current scanline for the 02756 * specified display device. 02757 */ 02758 02759 #define NV_CTRL_CURRENT_SCANLINE 237 /* R-D */ 02760 02761 02762 #define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_CURRENT_SCANLINE 02763 02764 02765 /**************************************************************************/ 02766 02767 /* 02768 * String Attributes: 02769 * 02770 * String attributes can be queryied through the XNVCTRLQueryStringAttribute() 02771 * and XNVCTRLQueryTargetStringAttribute() function calls. 02772 * 02773 * String attributes can be set through the XNVCTRLSetStringAttribute() 02774 * function call. (There are currently no string attributes that can be 02775 * set on non-X Screen targets.) 02776 * 02777 * Unless otherwise noted, all string attributes can be queried/set using an 02778 * NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take an 02779 * NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried/set through 02780 * XNVCTRLQueryStringAttribute()/XNVCTRLSetStringAttribute() (Since 02781 * these assume an X Screen target). 02782 */ 02783 02784 02785 /* 02786 * NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the 02787 * specified X screen is running. 02788 * 02789 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02790 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02791 */ 02792 02793 #define NV_CTRL_STRING_PRODUCT_NAME 0 /* R--G */ 02794 02795 02796 /* 02797 * NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on 02798 * which the specified X screen is running. 02799 */ 02800 02801 #define NV_CTRL_STRING_VBIOS_VERSION 1 /* R-- */ 02802 02803 02804 /* 02805 * NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the 02806 * NVIDIA driver version number for the NVIDIA X driver in use. 02807 */ 02808 02809 #define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION 3 /* R-- */ 02810 02811 02812 /* 02813 * NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device 02814 * specified in the display_mask argument. 02815 * 02816 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02817 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02818 */ 02819 02820 #define NV_CTRL_STRING_DISPLAY_DEVICE_NAME 4 /* R-DG */ 02821 02822 02823 /* 02824 * NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the 02825 * specified display device; only valid if the display device is a TV. 02826 */ 02827 02828 #define NV_CTRL_STRING_TV_ENCODER_NAME 5 /* R-D */ 02829 02830 02831 /* NV_CTRL_STRING_DDCCI_MISC_TRANSMIT_DISPLAY_DESCRIPTOR - 02832 * Allows a display descriptor (up to maximum length defined by the 02833 * display (see NV_CTRL_DDCCI_MISC_DISPLAY_DESCRIPTOR_LENGTHC2h) to be written 02834 * (read) to (from) non-volatile storage in the display. 02835 * If an attempt is made to write beyond the maximum storage 02836 * length, the descriptor shall be truncated with the excess bytes 02837 * being discarded. 02838 */ 02839 02840 #define NV_CTRL_STRING_DDCCI_MISC_TRANSMIT_DISPLAY_DESCRIPTOR 6 /* RWD */ 02841 02842 02843 /* NV_CTRL_STRING_DDCCI_MISC_AUXILIARY_DISPLAY_DATA - 02844 * An `auxiliary display' is a small alpha-numeric display associated 02845 * with the primary display and able to be accessed via the primary 02846 * display. 02847 * This command transmits a number of bytes of alpha-numeric 02848 * data to be displayed on the auxiliary display. The data shall 02849 * conform to ISO 8859-2 (Latin 1) code set. 02850 * The auxiliary display will be written from the top left position, 02851 * moving to right along each line and then starting at left end of the 02852 * next line. 02853 */ 02854 02855 #define NV_CTRL_STRING_DDCCI_MISC_AUXILIARY_DISPLAY_DATA 7 /* -WD */ 02856 02857 #define NV_CTRL_STRING_GVO_FIRMWARE_VERSION 8 /* R-- */ 02858 02859 02860 /* 02861 * NV_CTRL_STRING_CURRENT_MODELINE - Return the modeline currently 02862 * being used by the specified display device. 02863 * 02864 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02865 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02866 */ 02867 02868 #define NV_CTRL_STRING_CURRENT_MODELINE 9 /* R-DG */ 02869 02870 02871 /* 02872 * NV_CTRL_STRING_ADD_MODELINE - Adds a modeline to the specified 02873 * display device. The modeline is not added if validation fails. 02874 * 02875 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02876 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02877 */ 02878 02879 #define NV_CTRL_STRING_ADD_MODELINE 10 /* -WDG */ 02880 02881 02882 /* 02883 * NV_CTRL_STRING_DELETE_MODLEINE - Deletes an existing modeline 02884 * from the specified display device. The currently selected 02885 * modeline cannot be deleted. (This also means you cannot delete 02886 * the last modeline.) 02887 * 02888 * This attribute may be queried through XNVCTRLQueryTargetStringAttribute() 02889 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02890 */ 02891 02892 #define NV_CTRL_STRING_DELETE_MODELINE 11 /* -WDG */ 02893 02894 02895 /* 02896 * NV_CTRL_STRING_CURRENT_METAMODE - Returns the metamode currently 02897 * being used by the specified X screen. 02898 */ 02899 02900 #define NV_CTRL_STRING_CURRENT_METAMODE 12 /* R--- */ 02901 02902 02903 /* 02904 * NV_CTRL_STRING_ADD_METAMODE - Adds a metamode to the specified 02905 * X Screen (or GPU). All modelines referenced in the metamode 02906 * must already exist for each display device (as returned by the 02907 * NV_CTRL_BINARY_DATA_MODELINES attribute) 02908 * 02909 * TwinView must be enabled on the X Screen/GPU to access this attribute. 02910 */ 02911 02912 #define NV_CTRL_STRING_ADD_METAMODE 13 /* -W-- */ 02913 02914 02915 /* 02916 * NV_CTRL_STRING_DELETE_METAMODE - Deletes an existing metamode 02917 * from the specified X Screen (or GPU). The currently selected 02918 * metamode cannot be deleted. (This also means you cannot delete 02919 * the last metamode.) 02920 * 02921 * TwinView must be enabled on the X Screen/GPU to access this attribute. 02922 */ 02923 02924 #define NV_CTRL_STRING_DELETE_METAMODE 14 /* -WD-- */ 02925 02926 #define NV_CTRL_STRING_LAST_ATTRIBUTE NV_CTRL_STRING_DELETE_METAMODE 02927 02928 02929 /**************************************************************************/ 02930 02931 /* 02932 * Binary Data Attributes: 02933 * 02934 * Binary data attributes can be queryied through the XNVCTRLQueryBinaryData() 02935 * and XNVCTRLQueryTargetBinaryData() function calls. 02936 * 02937 * There are currently no binary data attributes that can be set. 02938 * 02939 * Unless otherwise noted, all Binary data attributes can be queried 02940 * using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take 02941 * an NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried through 02942 * XNVCTRLQueryBinaryData() (Since an X Screen target is assumed). 02943 */ 02944 02945 02946 /* 02947 * NV_CTRL_BINARY_DATA_EDID - Returns a display device's EDID information 02948 * data. 02949 * 02950 * This attribute may be queried through XNVCTRLQueryTargetBinaryData() 02951 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02952 */ 02953 02954 #define NV_CTRL_BINARY_DATA_EDID 0 /* R-DG */ 02955 02956 02957 /* 02958 * NV_CTRL_BINARY_DATA_MODELINES - Returns a display device's supported 02959 * modelines. Modelines are returned in a buffer, separated by a single 02960 * \0 and terminated by two consecuitive \0's like so: 02961 * 02962 * "Modeline 1\0Modeline 2\0Modeline 3\0Last Modeline\0\0" 02963 * 02964 * This attribute may be queried through XNVCTRLQueryTargetBinaryData() 02965 * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target. 02966 */ 02967 02968 #define NV_CTRL_BINARY_DATA_MODELINES 1 /* R-DG */ 02969 02970 02971 /* 02972 * NV_CTRL_BINARY_DATA_METAMODES - Returns an X Screen's supported 02973 * metamodes. Metamodes are returned in a buffer separated by a single 02974 * \0 and terminated by two consecuitive \0's like so: 02975 * 02976 * "MetaMode 1\0MetaMode 2\0MetaMode 3\0Last MetaMode\0\0" 02977 */ 02978 02979 #define NV_CTRL_BINARY_DATA_METAMODES 2 /* R-D- */ 02980 02981 02982 /* 02983 * NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU - Returns the list of X 02984 * screens currently driven by the given GPU. 02985 * 02986 * The format of the returned data is: 02987 * 02988 * 4 CARD32 number of screens 02989 * 4 * n CARD32 screen indices 02990 * 02991 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 02992 * using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be 02993 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 02994 */ 02995 02996 #define NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU 3 /* R-DG */ 02997 02998 /* 02999 * NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN - Returns the list of GPUs 03000 * currently in use by the given X screen. 03001 * 03002 * The format of the returned data is: 03003 * 03004 * 4 CARD32 number of GPUs 03005 * 4 * n CARD32 GPU indices 03006 */ 03007 03008 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN 4 /* R--- */ 03009 03010 /* 03011 * NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK - Returns the list of 03012 * GPUs currently connected to the given frame lock board. 03013 * 03014 * The format of the returned data is: 03015 * 03016 * 4 CARD32 number of GPUs 03017 * 4 * n CARD32 GPU indices 03018 * 03019 * This attribute can only be queried through XNVCTRLQueryTargetBinaryData() 03020 * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target. This attribute cannot be 03021 * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN. 03022 */ 03023 03024 #define NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK 5 /* R-DF */ 03025 03026 #define NV_CTRL_BINARY_DATA_LAST_ATTRIBUTE \ 03027 NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK 03028 03029 03030 /**************************************************************************/ 03031 03032 /* 03033 * CTRLAttributeValidValuesRec - 03034 * 03035 * structure and related defines used by 03036 * XNVCTRLQueryValidAttributeValues() to describe the valid values of 03037 * a particular attribute. The type field will be one of: 03038 * 03039 * ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there 03040 * is no fixed range of valid values. 03041 * 03042 * ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value, 03043 * interpretted as a bitmask. 03044 * 03045 * ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are 03046 * either 1 (on/true) or 0 (off/false). 03047 * 03048 * ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value 03049 * between NVCTRLAttributeValidValues.u.range.min and 03050 * NVCTRLAttributeValidValues.u.range.max (inclusive). 03051 * 03052 * ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain 03053 * integer values, indicated by which bits in 03054 * NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit 03055 * 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid 03056 * value, etc). This is useful for attributes like NV_CTRL_FSAA_MODE, 03057 * which can only have certain values, depending on GPU. 03058 * 03059 * 03060 * The permissions field of NVCTRLAttributeValidValuesRec is a bitmask 03061 * that may contain: 03062 * 03063 * ATTRIBUTE_TYPE_READ - Attribute may be read (queried.) 03064 * ATTRIBUTE_TYPE_WRITE - Attribute may be written to (set.) 03065 * ATTRIBUTE_TYPE_DISPLAY - Attribute requires a display mask. 03066 * ATTRIBUTE_TYPE_GPU - Attribute is valid for GPU target types. 03067 * ATTRIBUTE_TYPE_FRAMELOCK - Attribute is valid for Frame Lock target types. 03068 * ATTRIBUTE_TYPE_X_SCREEN - Attribute is valid for X Screen target types. 03069 * 03070 * See 'Key to Integer Attribute "Permissions"' at the top of this 03071 * file for a description of what these permission bits mean. 03072 */ 03073 03074 #define ATTRIBUTE_TYPE_UNKNOWN 0 03075 #define ATTRIBUTE_TYPE_INTEGER 1 03076 #define ATTRIBUTE_TYPE_BITMASK 2 03077 #define ATTRIBUTE_TYPE_BOOL 3 03078 #define ATTRIBUTE_TYPE_RANGE 4 03079 #define ATTRIBUTE_TYPE_INT_BITS 5 03080 03081 #define ATTRIBUTE_TYPE_READ 0x01 03082 #define ATTRIBUTE_TYPE_WRITE 0x02 03083 #define ATTRIBUTE_TYPE_DISPLAY 0x04 03084 #define ATTRIBUTE_TYPE_GPU 0x08 03085 #define ATTRIBUTE_TYPE_FRAMELOCK 0x10 03086 #define ATTRIBUTE_TYPE_X_SCREEN 0x20 03087 03088 typedef struct _NVCTRLAttributeValidValues { 03089 int type; 03090 union { 03091 struct { 03092 int min; 03093 int max; 03094 } range; 03095 struct { 03096 unsigned int ints; 03097 } bits; 03098 } u; 03099 unsigned int permissions; 03100 } NVCTRLAttributeValidValuesRec; 03101 03102 03103 /**************************************************************************/ 03104 03105 /* 03106 * NV-CONTROL X event notification. 03107 * 03108 * To receive X event notifications dealing with NV-CONTROL, you should 03109 * call XNVCtrlSelectNotify() with one of the following set as the type 03110 * of event to receive (see NVCtrlLib.h for more information): 03111 */ 03112 03113 #define ATTRIBUTE_CHANGED_EVENT 0 03114 #define TARGET_ATTRIBUTE_CHANGED_EVENT 1 03115 03116 03117 03118 #endif /* __NVCTRL_H */