Path: blob/main_old/src/third_party/libXNVCtrl/NVCtrl.h
1693 views
/*1* Copyright (c) 2010 NVIDIA, Corporation2*3* Permission is hereby granted, free of charge, to any person obtaining a copy4* of this software and associated documentation files (the "Software"), to deal5* in the Software without restriction, including without limitation the rights6* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell7* copies of the Software, and to permit persons to whom the Software is8* furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE17* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER18* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,19* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE20* SOFTWARE.21*/2223#ifndef __NVCTRL_H24#define __NVCTRL_H2526#include <stdint.h>2728/**************************************************************************/2930/*31* Attribute Targets32*33* Targets define attribute groups. For example, some attributes are only34* valid to set on a GPU, others are only valid when talking about an35* X Screen. Target types are then what is used to identify the target36* group of the attribute you wish to set/query.37*38* Here are the supported target types:39*/4041#define NV_CTRL_TARGET_TYPE_X_SCREEN 042#define NV_CTRL_TARGET_TYPE_GPU 143#define NV_CTRL_TARGET_TYPE_FRAMELOCK 244#define NV_CTRL_TARGET_TYPE_VCSC 3 /* Visual Computing System */45#define NV_CTRL_TARGET_TYPE_GVI 446#define NV_CTRL_TARGET_TYPE_COOLER 5 /* e.g., fan */47#define NV_CTRL_TARGET_TYPE_THERMAL_SENSOR 648#define NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER 749#define NV_CTRL_TARGET_TYPE_DISPLAY 85051/**************************************************************************/5253/*54* Attributes55*56* Some attributes may only be read; some may require a display_mask57* argument and others may be valid only for specific target types.58* This information is encoded in the "permission" comment after each59* attribute #define, and can be queried at run time with60* XNVCTRLQueryValidAttributeValues() and/or61* XNVCTRLQueryValidTargetAttributeValues()62*63* Key to Integer Attribute "Permissions":64*65* R: The attribute is readable (in general, all attributes will be66* readable)67*68* W: The attribute is writable (attributes may not be writable for69* various reasons: they represent static system information, they70* can only be changed by changing an XF86Config option, etc).71*72* D: The attribute requires the display mask argument. The73* attributes NV_CTRL_CONNECTED_DISPLAYS and NV_CTRL_ENABLED_DISPLAYS74* will be a bitmask of what display devices are connected and what75* display devices are enabled for use in X, respectively. Each bit76* in the bitmask represents a display device; it is these bits which77* should be used as the display_mask when dealing with attributes78* designated with "D" below. For attributes that do not require the79* display mask, the argument is ignored.80*81* Alternatively, NV-CONTROL versions 1.27 and greater allow these82* attributes to be accessed via display target types, in which case83* the display_mask is ignored.84*85* G: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GPU86* target type via XNVCTRLQueryTargetAttribute().87*88* F: The attribute may be queried using an NV_CTRL_TARGET_TYPE_FRAMELOCK89* target type via XNVCTRLQueryTargetAttribute().90*91* X: When Xinerama is enabled, this attribute is kept consistent across92* all Physical X Screens; assignment of this attribute will be93* broadcast by the NVIDIA X Driver to all X Screens.94*95* V: The attribute may be queried using an NV_CTRL_TARGET_TYPE_VCSC96* target type via XNVCTRLQueryTargetAttribute().97*98* I: The attribute may be queried using an NV_CTRL_TARGET_TYPE_GVI target type99* via XNVCTRLQueryTargetAttribute().100*101* Q: The attribute is a 64-bit integer attribute; use the 64-bit versions102* of the appropriate query interfaces.103*104* C: The attribute may be queried using an NV_CTRL_TARGET_TYPE_COOLER target105* type via XNVCTRLQueryTargetAttribute().106*107* S: The attribute may be queried using an NV_CTRL_TARGET_TYPE_THERMAL_SENSOR108* target type via XNVCTRLQueryTargetAttribute().109*110* T: The attribute may be queried using an111* NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER target type112* via XNVCTRLQueryTargetAttribute().113*114* NOTE: Unless mentioned otherwise, all attributes may be queried using115* an NV_CTRL_TARGET_TYPE_X_SCREEN target type via116* XNVCTRLQueryTargetAttribute().117*/118119/**************************************************************************/120121/*122* Integer attributes:123*124* Integer attributes can be queried through the XNVCTRLQueryAttribute() and125* XNVCTRLQueryTargetAttribute() function calls.126*127* Integer attributes can be set through the XNVCTRLSetAttribute() and128* XNVCTRLSetTargetAttribute() function calls.129*130* Unless otherwise noted, all integer attributes can be queried/set131* using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot132* take an NV_CTRL_TARGET_TYPE_X_SCREEN also cannot be queried/set through133* XNVCTRLQueryAttribute()/XNVCTRLSetAttribute() (Since these assume134* an X Screen target).135*/136137/*138* NV_CTRL_FLATPANEL_SCALING - not supported139*/140141#define NV_CTRL_FLATPANEL_SCALING 2 /* RWDG */142#define NV_CTRL_FLATPANEL_SCALING_DEFAULT 0143#define NV_CTRL_FLATPANEL_SCALING_NATIVE 1144#define NV_CTRL_FLATPANEL_SCALING_SCALED 2145#define NV_CTRL_FLATPANEL_SCALING_CENTERED 3146#define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED 4147148/*149* NV_CTRL_FLATPANEL_DITHERING is deprecated; NV_CTRL_DITHERING should150* be used instead.151*/152153#define NV_CTRL_FLATPANEL_DITHERING 3 /* RWDG */154#define NV_CTRL_FLATPANEL_DITHERING_DEFAULT 0155#define NV_CTRL_FLATPANEL_DITHERING_ENABLED 1156#define NV_CTRL_FLATPANEL_DITHERING_DISABLED 2157158/*159* NV_CTRL_DITHERING - the requested dithering configuration;160* possible values are:161*162* 0: auto (the driver will decide when to dither)163* 1: enabled (the driver will always dither when possible)164* 2: disabled (the driver will never dither)165*/166167#define NV_CTRL_DITHERING 3 /* RWDG */168#define NV_CTRL_DITHERING_AUTO 0169#define NV_CTRL_DITHERING_ENABLED 1170#define NV_CTRL_DITHERING_DISABLED 2171172/*173* NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the174* specified display device.175*/176177#define NV_CTRL_DIGITAL_VIBRANCE 4 /* RWDG */178179/*180* NV_CTRL_BUS_TYPE - returns the bus type through which the specified device181* is connected to the computer.182* When this attribute is queried on an X screen target, the bus type of the183* GPU driving the X screen is returned.184*/185186#define NV_CTRL_BUS_TYPE 5 /* R--GI */187#define NV_CTRL_BUS_TYPE_AGP 0188#define NV_CTRL_BUS_TYPE_PCI 1189#define NV_CTRL_BUS_TYPE_PCI_EXPRESS 2190#define NV_CTRL_BUS_TYPE_INTEGRATED 3191192/*193* NV_CTRL_VIDEO_RAM - returns the total amount of memory available194* to the specified GPU (or the GPU driving the specified X195* screen). Note: if the GPU supports TurboCache(TM), the value196* reported may exceed the amount of video memory installed on the197* GPU. The value reported for integrated GPUs may likewise exceed198* the amount of dedicated system memory set aside by the system199* BIOS for use by the integrated GPU.200*/201202#define NV_CTRL_VIDEO_RAM 6 /* R--G */203204/*205* NV_CTRL_IRQ - returns the interrupt request line used by the specified206* device.207* When this attribute is queried on an X screen target, the IRQ of the GPU208* driving the X screen is returned.209*/210211#define NV_CTRL_IRQ 7 /* R--GI */212213/*214* NV_CTRL_OPERATING_SYSTEM - returns the operating system on which215* the X server is running.216*/217218#define NV_CTRL_OPERATING_SYSTEM 8 /* R--G */219#define NV_CTRL_OPERATING_SYSTEM_LINUX 0220#define NV_CTRL_OPERATING_SYSTEM_FREEBSD 1221#define NV_CTRL_OPERATING_SYSTEM_SUNOS 2222223/*224* NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients.225* This setting is only applied to OpenGL clients that are started226* after this setting is applied.227*/228229#define NV_CTRL_SYNC_TO_VBLANK 9 /* RW-X */230#define NV_CTRL_SYNC_TO_VBLANK_OFF 0231#define NV_CTRL_SYNC_TO_VBLANK_ON 1232233/*234* NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL235* clients; on some NVIDIA hardware, this can only be enabled or236* disabled; on other hardware different levels of anisotropic237* filtering can be specified. This setting is only applied to OpenGL238* clients that are started after this setting is applied.239*/240241#define NV_CTRL_LOG_ANISO 10 /* RW-X */242243/*244* NV_CTRL_FSAA_MODE - the FSAA setting for OpenGL clients; possible245* FSAA modes:246*247* NV_CTRL_FSAA_MODE_2x "2x Bilinear Multisampling"248* NV_CTRL_FSAA_MODE_2x_5t "2x Quincunx Multisampling"249* NV_CTRL_FSAA_MODE_15x15 "1.5 x 1.5 Supersampling"250* NV_CTRL_FSAA_MODE_2x2 "2 x 2 Supersampling"251* NV_CTRL_FSAA_MODE_4x "4x Bilinear Multisampling"252* NV_CTRL_FSAA_MODE_4x_9t "4x Gaussian Multisampling"253* NV_CTRL_FSAA_MODE_8x "2x Bilinear Multisampling by 4x Supersampling"254* NV_CTRL_FSAA_MODE_16x "4x Bilinear Multisampling by 4x Supersampling"255* NV_CTRL_FSAA_MODE_8xS "4x Multisampling by 2x Supersampling"256*257* This setting is only applied to OpenGL clients that are started258* after this setting is applied.259*/260261#define NV_CTRL_FSAA_MODE 11 /* RW-X */262#define NV_CTRL_FSAA_MODE_NONE 0263#define NV_CTRL_FSAA_MODE_2x 1264#define NV_CTRL_FSAA_MODE_2x_5t 2265#define NV_CTRL_FSAA_MODE_15x15 3266#define NV_CTRL_FSAA_MODE_2x2 4267#define NV_CTRL_FSAA_MODE_4x 5268#define NV_CTRL_FSAA_MODE_4x_9t 6269#define NV_CTRL_FSAA_MODE_8x 7270#define NV_CTRL_FSAA_MODE_16x 8271#define NV_CTRL_FSAA_MODE_8xS 9272#define NV_CTRL_FSAA_MODE_8xQ 10273#define NV_CTRL_FSAA_MODE_16xS 11274#define NV_CTRL_FSAA_MODE_16xQ 12275#define NV_CTRL_FSAA_MODE_32xS 13276#define NV_CTRL_FSAA_MODE_32x 14277#define NV_CTRL_FSAA_MODE_64xS 15278#define NV_CTRL_FSAA_MODE_MAX NV_CTRL_FSAA_MODE_64xS279280/*281* NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL282* clients. This setting is only applied to OpenGL clients that are283* started after this setting is applied.284*/285286#define NV_CTRL_TEXTURE_SHARPEN 12 /* RW-X */287#define NV_CTRL_TEXTURE_SHARPEN_OFF 0288#define NV_CTRL_TEXTURE_SHARPEN_ON 1289290/*291* NV_CTRL_UBB - returns whether UBB is enabled for the specified X292* screen.293*/294295#define NV_CTRL_UBB 13 /* R-- */296#define NV_CTRL_UBB_OFF 0297#define NV_CTRL_UBB_ON 1298299/*300* NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for301* the specified X screen.302*/303304#define NV_CTRL_OVERLAY 14 /* R-- */305#define NV_CTRL_OVERLAY_OFF 0306#define NV_CTRL_OVERLAY_ON 1307308/*309* NV_CTRL_STEREO - returns whether stereo (and what type) is enabled310* for the specified X screen.311*/312313#define NV_CTRL_STEREO 16 /* R-- */314#define NV_CTRL_STEREO_OFF 0315#define NV_CTRL_STEREO_DDC 1316#define NV_CTRL_STEREO_BLUELINE 2317#define NV_CTRL_STEREO_DIN 3318#define NV_CTRL_STEREO_PASSIVE_EYE_PER_DPY 4319#define NV_CTRL_STEREO_VERTICAL_INTERLACED 5320#define NV_CTRL_STEREO_COLOR_INTERLACED 6321#define NV_CTRL_STEREO_HORIZONTAL_INTERLACED 7322#define NV_CTRL_STEREO_CHECKERBOARD_PATTERN 8323#define NV_CTRL_STEREO_INVERSE_CHECKERBOARD_PATTERN 9324#define NV_CTRL_STEREO_3D_VISION 10325#define NV_CTRL_STEREO_3D_VISION_PRO 11326327/*328* NV_CTRL_EMULATE - controls OpenGL software emulation of future329* NVIDIA GPUs.330*/331332#define NV_CTRL_EMULATE 17 /* RW- */333#define NV_CTRL_EMULATE_NONE 0334335/*336* NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the337* specified X screen.338*/339340#define NV_CTRL_TWINVIEW 18 /* R-- */341#define NV_CTRL_TWINVIEW_NOT_ENABLED 0342#define NV_CTRL_TWINVIEW_ENABLED 1343344/*345* NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating the last346* cached state of the display devices connected to the GPU or GPU driving347* the specified X screen.348*349* This attribute may be queried through XNVCTRLQueryTargetAttribute()350* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.351*/352353#define NV_CTRL_CONNECTED_DISPLAYS 19 /* R--G */354355/*356* NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what357* display devices are enabled for use on the specified X screen or358* GPU.359*360* This attribute may be queried through XNVCTRLQueryTargetAttribute()361* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.362*/363364#define NV_CTRL_ENABLED_DISPLAYS 20 /* R--G */365366/**************************************************************************/367/*368* Integer attributes specific to configuring Frame Lock on boards that369* support it.370*/371372/*373* NV_CTRL_FRAMELOCK - returns whether the underlying GPU supports374* Frame Lock. All of the other frame lock attributes are only375* applicable if NV_CTRL_FRAMELOCK is _SUPPORTED.376*377* This attribute may be queried through XNVCTRLQueryTargetAttribute()378* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.379*/380381#define NV_CTRL_FRAMELOCK 21 /* R--G */382#define NV_CTRL_FRAMELOCK_NOT_SUPPORTED 0383#define NV_CTRL_FRAMELOCK_SUPPORTED 1384385/*386* NV_CTRL_FRAMELOCK_MASTER - get/set which display device to use387* as the frame lock master for the entire sync group. Note that only388* one node in the sync group should be configured as the master.389*390* This attribute can only be queried through XNVCTRLQueryTargetAttribute()391* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be392* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.393*/394395#define NV_CTRL_FRAMELOCK_MASTER 22 /* RW-G */396397/* These are deprecated. NV_CTRL_FRAMELOCK_MASTER now takes and398returns a display mask as value. */399#define NV_CTRL_FRAMELOCK_MASTER_FALSE 0400#define NV_CTRL_FRAMELOCK_MASTER_TRUE 1401402/*403* NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the404* frame lock pulse, the falling edge of the frame lock pulse or both.405*406* This attribute may be queried through XNVCTRLQueryTargetAttribute()407* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN408* target.409*/410411#define NV_CTRL_FRAMELOCK_POLARITY 23 /* RW-F */412#define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE 0x1413#define NV_CTRL_FRAMELOCK_POLARITY_FALLING_EDGE 0x2414#define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES 0x3415416/*417* NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the frame lock pulse418* and the GPU sync. This value must be multiplied by419* NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION to determine the sync delay in420* nanoseconds.421*422* This attribute may be queried through XNVCTRLQueryTargetAttribute()423* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN424* target.425*426* USAGE NODE: NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX and427* NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR are deprecated.428* The Sync Delay _MAX and _FACTOR are different for different429* GSync products and so, to be correct, the valid values for430* NV_CTRL_FRAMELOCK_SYNC_DELAY must be queried to get the range431* of acceptable sync delay values, and432* NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION must be queried to433* obtain the correct factor.434*/435436#define NV_CTRL_FRAMELOCK_SYNC_DELAY 24 /* RW-F */437#define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX 2047 // deprecated438#define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR 7.81 // deprecated439440/*441* NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses442* between the frame lock sync generation (0 == sync every house sync);443* this only applies to the master when receiving house sync.444*445* This attribute may be queried through XNVCTRLQueryTargetAttribute()446* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN447* target.448*/449450#define NV_CTRL_FRAMELOCK_SYNC_INTERVAL 25 /* RW-F */451452/*453* NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0.454*455* This attribute may be queried through XNVCTRLQueryTargetAttribute()456* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN457* target.458*/459460#define NV_CTRL_FRAMELOCK_PORT0_STATUS 26 /* R--F */461#define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT 0462#define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT 1463464/*465* NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1.466*467* This attribute may be queried through XNVCTRLQueryTargetAttribute()468* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN469* target.470*/471472#define NV_CTRL_FRAMELOCK_PORT1_STATUS 27 /* R--F */473#define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT 0474#define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT 1475476/*477* NV_CTRL_FRAMELOCK_HOUSE_STATUS - returns whether or not the house478* sync signal was detected on the BNC connector of the frame lock479* board.480*481* This attribute may be queried through XNVCTRLQueryTargetAttribute()482* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN483* target.484*/485486#define NV_CTRL_FRAMELOCK_HOUSE_STATUS 28 /* R--F */487#define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED 0488#define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED 1489490/*491* NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of display492* devices to the frame lock pulse as specified by previous calls to493* NV_CTRL_FRAMELOCK_MASTER and NV_CTRL_FRAMELOCK_SLAVES.494*495* This attribute can only be queried through XNVCTRLQueryTargetAttribute()496* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be497* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.498*/499500#define NV_CTRL_FRAMELOCK_SYNC 29 /* RW-G */501#define NV_CTRL_FRAMELOCK_SYNC_DISABLE 0502#define NV_CTRL_FRAMELOCK_SYNC_ENABLE 1503504/*505* NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a frame lock506* board is receiving sync (regardless of whether or not any display507* devices are using the sync).508*509* This attribute may be queried through XNVCTRLQueryTargetAttribute()510* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN511* target.512*/513514#define NV_CTRL_FRAMELOCK_SYNC_READY 30 /* R--F */515#define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE 0516#define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE 1517518/*519* NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo520* signal is in sync with the frame lock stereo signal.521*522* This attribute may be queried through XNVCTRLQueryTargetAttribute()523* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN524* target.525*/526527#define NV_CTRL_FRAMELOCK_STEREO_SYNC 31 /* R--G */528#define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE 0529#define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE 1530531/*532* NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync533* group, tell the master to enable a test signal, then query port[01]534* status and sync_ready on all slaves. When done, tell the master to535* disable the test signal. Test signal should only be manipulated536* while NV_CTRL_FRAMELOCK_SYNC is enabled.537*538* The TEST_SIGNAL is also used to reset the Universal Frame Count (as539* returned by the glXQueryFrameCountNV() function in the540* GLX_NV_swap_group extension). Note: for best accuracy of the541* Universal Frame Count, it is recommended to toggle the TEST_SIGNAL542* on and off after enabling frame lock.543*544* This attribute may be queried through XNVCTRLQueryTargetAttribute()545* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.546*/547548#define NV_CTRL_FRAMELOCK_TEST_SIGNAL 32 /* RW-G */549#define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE 0550#define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE 1551552/*553* NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The frame lock boards are554* cabled together using regular cat5 cable, connecting to rj45 ports555* on the backplane of the card. There is some concern that users may556* think these are ethernet ports and connect them to a557* router/hub/etc. The hardware can detect this and will shut off to558* prevent damage (either to itself or to the router).559* NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if560* ethernet is connected to one of the rj45 ports. An appropriate561* error message should then be displayed. The _PORT0 and _PORT1562* values may be or'ed together.563*564* This attribute may be queried through XNVCTRLQueryTargetAttribute()565* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN566* target.567*/568569#define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED 33 /* R--F */570#define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE 0571#define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0 0x1572#define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1 0x2573574/*575* NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set what video mode is used576* to interperate the house sync signal. This should only be set577* on the master.578*579* This attribute may be queried through XNVCTRLQueryTargetAttribute()580* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN581* target.582*/583584#define NV_CTRL_FRAMELOCK_VIDEO_MODE 34 /* RW-F */585#define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE 0586#define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1587#define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM 2588#define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV 3589590/*591* During FRAMELOCK bring-up, the above values were redefined to592* these:593*/594595#define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO 0596#define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL 1597#define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL 2598#define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL 3599600/*601* NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the602* frame lock board is sending to the GPU, in milliHz.603*604* This attribute may be queried through XNVCTRLQueryTargetAttribute()605* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN606* target.607*/608609#define NV_CTRL_FRAMELOCK_SYNC_RATE 35 /* R--F */610611/**************************************************************************/612613/*614* NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific615* features such as MMX, SSE, or 3DNOW! for OpenGL clients; this616* option may result in performance loss, but may be useful in617* conjunction with software such as the Valgrind memory debugger.618* This setting is only applied to OpenGL clients that are started619* after this setting is applied.620*621* USAGE NOTE: This attribute is deprecated. CPU compatibility is now622* checked each time during initialization.623*/624625#define NV_CTRL_FORCE_GENERIC_CPU 37 /* RW-X */626#define NV_CTRL_FORCE_GENERIC_CPU_DISABLE 0627#define NV_CTRL_FORCE_GENERIC_CPU_ENABLE 1628629/*630* NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow631* Gamma-corrected antialiased lines to consider variances in the632* color display capabilities of output devices when rendering smooth633* lines. Only available on recent Quadro GPUs. This setting is only634* applied to OpenGL clients that are started after this setting is635* applied.636*/637638#define NV_CTRL_OPENGL_AA_LINE_GAMMA 38 /* RW-X */639#define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE 0640#define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE 1641642/*643* NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the gpu is both receiving644* and locked to an input timing signal. Timing information may come from645* the following places: Another frame lock device that is set to master,646* the house sync signal, or the GPU's internal timing from a display647* device.648*649* This attribute may be queried through XNVCTRLQueryTargetAttribute()650* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.651*/652653#define NV_CTRL_FRAMELOCK_TIMING 39 /* R--G */654#define NV_CTRL_FRAMELOCK_TIMING_FALSE 0655#define NV_CTRL_FRAMELOCK_TIMING_TRUE 1656657/*658* NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping659* when possible; when FALSE, OpenGL will alway swap by blitting.660*/661662#define NV_CTRL_FLIPPING_ALLOWED 40 /* RW-X */663#define NV_CTRL_FLIPPING_ALLOWED_FALSE 0664#define NV_CTRL_FLIPPING_ALLOWED_TRUE 1665666/*667* NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is668* running.669*/670671#define NV_CTRL_ARCHITECTURE 41 /* R-- */672#define NV_CTRL_ARCHITECTURE_X86 0673#define NV_CTRL_ARCHITECTURE_X86_64 1674#define NV_CTRL_ARCHITECTURE_IA64 2675676/*677* NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL. By678* default, _SPEC is used, which forces OpenGL texture clamping to679* conform with the OpenGL specification. _EDGE forces NVIDIA's680* OpenGL implementation to remap GL_CLAMP to GL_CLAMP_TO_EDGE,681* which is not strictly conformant, but some applications rely on682* the non-conformant behavior.683*/684685#define NV_CTRL_TEXTURE_CLAMPING 42 /* RW-X */686#define NV_CTRL_TEXTURE_CLAMPING_EDGE 0687#define NV_CTRL_TEXTURE_CLAMPING_SPEC 1688689#define NV_CTRL_CURSOR_SHADOW 43 /* RW- */690#define NV_CTRL_CURSOR_SHADOW_DISABLE 0691#define NV_CTRL_CURSOR_SHADOW_ENABLE 1692693#define NV_CTRL_CURSOR_SHADOW_ALPHA 44 /* RW- */694#define NV_CTRL_CURSOR_SHADOW_RED 45 /* RW- */695#define NV_CTRL_CURSOR_SHADOW_GREEN 46 /* RW- */696#define NV_CTRL_CURSOR_SHADOW_BLUE 47 /* RW- */697698#define NV_CTRL_CURSOR_SHADOW_X_OFFSET 48 /* RW- */699#define NV_CTRL_CURSOR_SHADOW_Y_OFFSET 49 /* RW- */700701/*702* When Application Control for FSAA is enabled, then what the703* application requests is used, and NV_CTRL_FSAA_MODE is ignored. If704* this is disabled, then any application setting is overridden with705* NV_CTRL_FSAA_MODE706*/707708#define NV_CTRL_FSAA_APPLICATION_CONTROLLED 50 /* RW-X */709#define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED 1710#define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED 0711712/*713* When Application Control for LogAniso is enabled, then what the714* application requests is used, and NV_CTRL_LOG_ANISO is ignored. If715* this is disabled, then any application setting is overridden with716* NV_CTRL_LOG_ANISO717*/718719#define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED 51 /* RW-X */720#define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED 1721#define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED 0722723/*724* IMAGE_SHARPENING adjusts the sharpness of the display's image725* quality by amplifying high frequency content. Valid values will726* normally be in the range [0,32). Only available on GeForceFX or727* newer.728*/729730#define NV_CTRL_IMAGE_SHARPENING 52 /* RWDG */731732/*733* NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified734* display device.735*/736737#define NV_CTRL_TV_OVERSCAN 53 /* RWDG */738739/*740* NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on741* the specified display device.742*/743744#define NV_CTRL_TV_FLICKER_FILTER 54 /* RWDG */745746/*747* NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the748* specified display device.749*/750751#define NV_CTRL_TV_BRIGHTNESS 55 /* RWDG */752753/*754* NV_CTRL_TV_HUE adjusts the amount of hue on the specified display755* device.756*/757758#define NV_CTRL_TV_HUE 56 /* RWDG */759760/*761* NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified762* display device.763*/764765#define NV_CTRL_TV_CONTRAST 57 /* RWDG */766767/*768* NV_CTRL_TV_SATURATION adjusts the amount of saturation on the769* specified display device.770*/771772#define NV_CTRL_TV_SATURATION 58 /* RWDG */773774/*775* NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used776* to request that all TV Settings be reset to their default values;777* typical usage would be that this attribute be sent, and then all778* the TV attributes be queried to retrieve their new values.779*/780781#define NV_CTRL_TV_RESET_SETTINGS 59 /* -WDG */782783/*784* NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature785* of the GPU driving the X screen.786*/787788#define NV_CTRL_GPU_CORE_TEMPERATURE 60 /* R--G */789790/*791* NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown792* threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and793* NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core794* slowdown threshold temperatures.795*796* NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the797* GPU is throttled to prevent overheating.798*/799800#define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R--G */801#define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD 62 /* R--G */802#define NV_CTRL_GPU_MAX_CORE_THRESHOLD 63 /* R--G */803804/*805* NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the806* immediate neighbourhood of the GPU driving the X screen.807*/808809#define NV_CTRL_AMBIENT_TEMPERATURE 64 /* R--G */810811/*812* NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen813* supports scanout of FP pbuffers;814*815* if this screen does not support PBUFFER_SCANOUT, then all other816* PBUFFER_SCANOUT attributes are unavailable.817*818* PBUFFER_SCANOUT is supported if and only if:819* - Twinview is configured with clone mode. The secondary screen is used to820* scanout the pbuffer.821* - The desktop is running in with 16 bits per pixel.822*/823#define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED 65 /* R-- */824#define NV_CTRL_PBUFFER_SCANOUT_FALSE 0825#define NV_CTRL_PBUFFER_SCANOUT_TRUE 1826827/*828* NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for829* scanout.830*/831#define NV_CTRL_PBUFFER_SCANOUT_XID 66 /* RW- */832833/**************************************************************************/834/*835* The NV_CTRL_GVO_* integer attributes are used to configure GVO836* (Graphics to Video Out). This functionality is available, for837* example, on the Quadro FX 4000 SDI graphics board.838*839* The following is a typical usage pattern for the GVO attributes:840*841* - query NV_CTRL_GVO_SUPPORTED to determine if the X screen supports GV0.842*843* - specify NV_CTRL_GVO_SYNC_MODE (one of FREE_RUNNING, GENLOCK, or844* FRAMELOCK); if you specify GENLOCK or FRAMELOCK, you should also845* specify NV_CTRL_GVO_SYNC_SOURCE.846*847* - Use NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED and848* NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED to detect what input syncs are849* present.850*851* (If no analog sync is detected but it is known that a valid852* bi-level or tri-level sync is connected set853* NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE appropriately and854* retest with NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED).855*856* - if syncing to input sync, query the857* NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT attribute; note that Input video858* format can only be queried after SYNC_SOURCE is specified.859*860* - specify the NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT861*862* - specify the NV_CTRL_GVO_DATA_FORMAT863*864* - specify any custom Color Space Conversion (CSC) matrix, offset,865* and scale with XNVCTRLSetGvoColorConversion().866*867* - if using the GLX_NV_video_out extension to display one or more868* pbuffers, call glXGetVideoDeviceNV() to lock the GVO output for use869* by the GLX client; then bind the pbuffer(s) to the GVO output with870* glXBindVideoImageNV() and send pbuffers to the GVO output with871* glXSendPbufferToVideoNV(); see the GLX_NV_video_out spec for more872* details.873*874* - if using the GLX_NV_present_video extension, call875* glXBindVideoDeviceNV() to bind the GVO video device to current876* OpenGL context.877*878* Note that setting most GVO attributes only causes the value to be879* cached in the X server. The values will be flushed to the hardware880* either when the next MetaMode is set that uses the GVO display881* device, or when a GLX pbuffer is bound to the GVO output (with882* glXBindVideoImageNV()).883*884* Note that GLX_NV_video_out/GLX_NV_present_video and X screen use885* are mutually exclusive. If a MetaMode is currently using the GVO886* device, then glXGetVideoDeviceNV and glXBindVideoImageNV() will887* fail. Similarly, if a GLX client has locked the GVO output (via888* glXGetVideoDeviceNV or glXBindVideoImageNV), then setting a889* MetaMode that uses the GVO device will fail. The890* NV_CTRL_GVO_GLX_LOCKED event will be sent when a GLX client locks891* the GVO output.892*893*/894895/*896* NV_CTRL_GVO_SUPPORTED - returns whether this X screen supports GVO;897* if this screen does not support GVO output, then all other GVO898* attributes are unavailable.899*/900901#define NV_CTRL_GVO_SUPPORTED 67 /* R-- */902#define NV_CTRL_GVO_SUPPORTED_FALSE 0903#define NV_CTRL_GVO_SUPPORTED_TRUE 1904905/*906* NV_CTRL_GVO_SYNC_MODE - selects the GVO sync mode; possible values907* are:908*909* FREE_RUNNING - GVO does not sync to any external signal910*911* GENLOCK - the GVO output is genlocked to an incoming sync signal;912* genlocking locks at hsync. This requires that the output video913* format exactly match the incoming sync video format.914*915* FRAMELOCK - the GVO output is frame locked to an incoming sync916* signal; frame locking locks at vsync. This requires that the output917* video format have the same refresh rate as the incoming sync video918* format.919*/920921#define NV_CTRL_GVO_SYNC_MODE 68 /* RW- */922#define NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING 0923#define NV_CTRL_GVO_SYNC_MODE_GENLOCK 1924#define NV_CTRL_GVO_SYNC_MODE_FRAMELOCK 2925926/*927* NV_CTRL_GVO_SYNC_SOURCE - if NV_CTRL_GVO_SYNC_MODE is set to either928* GENLOCK or FRAMELOCK, this controls which sync source is used as929* the incoming sync signal (either Composite or SDI). If930* NV_CTRL_GVO_SYNC_MODE is FREE_RUNNING, this attribute has no931* effect.932*/933934#define NV_CTRL_GVO_SYNC_SOURCE 69 /* RW- */935#define NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE 0936#define NV_CTRL_GVO_SYNC_SOURCE_SDI 1937938/*939* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT - specifies the desired output video940* format for GVO devices or the desired input video format for GVI devices.941*942* Note that for GVO, the valid video formats may vary depending on943* the NV_CTRL_GVO_SYNC_MODE and the incoming sync video format. See944* the definition of NV_CTRL_GVO_SYNC_MODE.945*946* Note that when querying the ValidValues for this data type, the947* values are reported as bits within a bitmask948* (ATTRIBUTE_TYPE_INT_BITS); unfortunately, there are more valid949* value bits than will fit in a single 32-bit value. To solve this,950* query the ValidValues for NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT to951* check which of the first 31 VIDEO_FORMATS are valid, query the952* ValidValues for NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 to check which953* of the 32-63 VIDEO_FORMATS are valid, and query the ValidValues of954* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 to check which of the 64-95955* VIDEO_FORMATS are valid.956*957* Note: Setting this attribute on a GVI device may also result in the958* following NV-CONTROL attributes being reset on that device (to959* ensure the configuration remains valid):960* NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT961* NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING962*/963964#define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT 70 /* RW--I */965966#define NV_CTRL_GVIO_VIDEO_FORMAT_NONE 0967#define NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 1968#define NV_CTRL_GVIO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 2969#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_59_94_SMPTE296 3970#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296 4971#define NV_CTRL_GVIO_VIDEO_FORMAT_1035I_59_94_SMPTE260 5972#define NV_CTRL_GVIO_VIDEO_FORMAT_1035I_60_00_SMPTE260 6973#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_SMPTE295 7974#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_SMPTE274 8975#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_59_94_SMPTE274 9976#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_60_00_SMPTE274 10977#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_23_976_SMPTE274 11978#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_24_00_SMPTE274 12979#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_25_00_SMPTE274 13980#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_29_97_SMPTE274 14981#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_30_00_SMPTE274 15982#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_50_00_SMPTE296 16983#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_48_00_SMPTE274 17984#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_47_96_SMPTE274 18985#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_30_00_SMPTE296 19986#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_29_97_SMPTE296 20987#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_25_00_SMPTE296 21988#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_24_00_SMPTE296 22989#define NV_CTRL_GVIO_VIDEO_FORMAT_720P_23_98_SMPTE296 23990#define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 24991#define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 25992#define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 26993#define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 27994#define NV_CTRL_GVIO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 28995#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_30_00_SMPTE372 29996#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_29_97_SMPTE372 30997#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_60_00_SMPTE372 31998#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_59_94_SMPTE372 32999#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_25_00_SMPTE372 331000#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_50_00_SMPTE372 341001#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_24_00_SMPTE372 351002#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_23_98_SMPTE372 361003#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_48_00_SMPTE372 371004#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_SMPTE372 381005#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_50_00_3G_LEVEL_A_SMPTE274 391006#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_59_94_3G_LEVEL_A_SMPTE274 401007#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_60_00_3G_LEVEL_A_SMPTE274 411008#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_60_00_3G_LEVEL_B_SMPTE274 421009#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_60_00_3G_LEVEL_B_SMPTE274 431010#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_60_00_3G_LEVEL_B_SMPTE372 441011#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_50_00_3G_LEVEL_B_SMPTE274 451012#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_50_00_3G_LEVEL_B_SMPTE274 461013#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_50_00_3G_LEVEL_B_SMPTE372 471014#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_30_00_3G_LEVEL_B_SMPTE274 481015#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_30_00_3G_LEVEL_B_SMPTE372 491016#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_25_00_3G_LEVEL_B_SMPTE274 501017#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_25_00_3G_LEVEL_B_SMPTE372 511018#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_24_00_3G_LEVEL_B_SMPTE274 521019#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_24_00_3G_LEVEL_B_SMPTE372 531020#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_48_00_3G_LEVEL_B_SMPTE274 541021#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_48_00_3G_LEVEL_B_SMPTE372 551022#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_59_94_3G_LEVEL_B_SMPTE274 561023#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_59_94_3G_LEVEL_B_SMPTE274 571024#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_59_94_3G_LEVEL_B_SMPTE372 581025#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_29_97_3G_LEVEL_B_SMPTE274 591026#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_29_97_3G_LEVEL_B_SMPTE372 601027#define NV_CTRL_GVIO_VIDEO_FORMAT_1080P_23_98_3G_LEVEL_B_SMPTE274 611028#define NV_CTRL_GVIO_VIDEO_FORMAT_2048P_23_98_3G_LEVEL_B_SMPTE372 621029#define NV_CTRL_GVIO_VIDEO_FORMAT_1080I_47_96_3G_LEVEL_B_SMPTE274 631030#define NV_CTRL_GVIO_VIDEO_FORMAT_2048I_47_96_3G_LEVEL_B_SMPTE372 6410311032/*1033* The following are deprecated; NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT and the1034* corresponding NV_CTRL_GVIO_* formats should be used instead.1035*/1036#define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT 70 /* RW- */10371038#define NV_CTRL_GVO_VIDEO_FORMAT_NONE 01039#define NV_CTRL_GVO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC 11040#define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL 21041#define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296 31042#define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296 41043#define NV_CTRL_GVO_VIDEO_FORMAT_1035I_59_94_SMPTE260 51044#define NV_CTRL_GVO_VIDEO_FORMAT_1035I_60_00_SMPTE260 61045#define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE295 71046#define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE274 81047#define NV_CTRL_GVO_VIDEO_FORMAT_1080I_59_94_SMPTE274 91048#define NV_CTRL_GVO_VIDEO_FORMAT_1080I_60_00_SMPTE274 101049#define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_976_SMPTE274 111050#define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE274 121051#define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE274 131052#define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE274 141053#define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE274 151054#define NV_CTRL_GVO_VIDEO_FORMAT_720P_50_00_SMPTE296 161055#define NV_CTRL_GVO_VIDEO_FORMAT_1080I_48_00_SMPTE274 171056#define NV_CTRL_GVO_VIDEO_FORMAT_1080I_47_96_SMPTE274 181057#define NV_CTRL_GVO_VIDEO_FORMAT_720P_30_00_SMPTE296 191058#define NV_CTRL_GVO_VIDEO_FORMAT_720P_29_97_SMPTE296 201059#define NV_CTRL_GVO_VIDEO_FORMAT_720P_25_00_SMPTE296 211060#define NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296 221061#define NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296 231062#define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274 241063#define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274 251064#define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274 261065#define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274 271066#define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274 281067#define NV_CTRL_GVO_VIDEO_FORMAT_2048P_30_00_SMPTE372 291068#define NV_CTRL_GVO_VIDEO_FORMAT_2048P_29_97_SMPTE372 301069#define NV_CTRL_GVO_VIDEO_FORMAT_2048I_60_00_SMPTE372 311070#define NV_CTRL_GVO_VIDEO_FORMAT_2048I_59_94_SMPTE372 321071#define NV_CTRL_GVO_VIDEO_FORMAT_2048P_25_00_SMPTE372 331072#define NV_CTRL_GVO_VIDEO_FORMAT_2048I_50_00_SMPTE372 341073#define NV_CTRL_GVO_VIDEO_FORMAT_2048P_24_00_SMPTE372 351074#define NV_CTRL_GVO_VIDEO_FORMAT_2048P_23_98_SMPTE372 361075#define NV_CTRL_GVO_VIDEO_FORMAT_2048I_48_00_SMPTE372 371076#define NV_CTRL_GVO_VIDEO_FORMAT_2048I_47_96_SMPTE372 3810771078/*1079* NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT - indicates the input video format1080* detected for GVO or GVI devices; the possible values are the1081* NV_CTRL_GVIO_VIDEO_FORMAT constants.1082*1083* For GVI devices, the jack number should be specified in the lower1084* 16 bits of the "display_mask" parameter, while the channel number should be1085* specified in the upper 16 bits.1086*/10871088#define NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT 71 /* R--I */10891090/*1091* The following is deprecated. Use NV_CTRL_GVIO_DETECTED_VIDEO_FORMAT,1092* instead.1093*/1094#define NV_CTRL_GVO_INPUT_VIDEO_FORMAT 71 /* R-- */10951096/*1097* NV_CTRL_GVO_DATA_FORMAT - This controls how the data in the source1098* (either the X screen or the GLX pbuffer) is interpretted and1099* displayed.1100*1101* Note: some of the below DATA_FORMATS have been renamed. For1102* example, R8G8B8_TO_RGB444 has been renamed to X8X8X8_444_PASSTHRU.1103* This is to more accurately reflect DATA_FORMATS where the1104* per-channel data could be either RGB or YCrCb -- the point is that1105* the driver and GVO hardware do not perform any implicit color space1106* conversion on the data; it is passed through to the SDI out.1107*/11081109#define NV_CTRL_GVO_DATA_FORMAT 72 /* RW- */1110#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444 01111#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4444 11112#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4444 21113#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422 31114#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4224 41115#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4224 51116#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_RGB444 6 // renamed1117#define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU 61118#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_RGBA4444 7 // renamed1119#define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4444_PASSTHRU 71120#define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_RGBZ4444 8 // renamed1121#define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4444_PASSTHRU 81122#define NV_CTRL_GVO_DATA_FORMAT_Y10CR10CB10_TO_YCRCB444 9 // renamed1123#define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_444_PASSTHRU 91124#define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8_TO_YCRCB444 10 // renamed1125#define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_444_PASSTHRU 101126#define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8A10_TO_YCRCBA4444 11 // renamed1127#define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4444_PASSTHRU 111128#define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8Z10_TO_YCRCBZ4444 12 // renamed1129#define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4444_PASSTHRU 121130#define NV_CTRL_GVO_DATA_FORMAT_DUAL_R8G8B8_TO_DUAL_YCRCB422 131131#define NV_CTRL_GVO_DATA_FORMAT_DUAL_Y8CR8CB8_TO_DUAL_YCRCB422 14 // renamed1132#define NV_CTRL_GVO_DATA_FORMAT_DUAL_X8X8X8_TO_DUAL_422_PASSTHRU 141133#define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB422 151134#define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB444 161135#define NV_CTRL_GVO_DATA_FORMAT_Y12CR12CB12_TO_YCRCB444 17 // renamed1136#define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_444_PASSTHRU 171137#define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB444 181138#define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_422_PASSTHRU 191139#define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4224_PASSTHRU 201140#define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4224_PASSTHRU 211141#define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_422_PASSTHRU 221142#define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_422_PASSTHRU 231143#define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4224_PASSTHRU 241144#define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4224_PASSTHRU 251145#define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_422_PASSTHRU 261146#define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB422 2711471148/*1149* NV_CTRL_GVO_DISPLAY_X_SCREEN - no longer supported1150*/11511152#define NV_CTRL_GVO_DISPLAY_X_SCREEN 73 /* RW- */1153#define NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE 11154#define NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE 011551156/*1157* NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED - indicates whether1158* Composite Sync input is detected.1159*/11601161#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED 74 /* R-- */1162#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE 01163#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_TRUE 111641165/*1166* NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE - get/set the1167* Composite Sync input detect mode.1168*/11691170#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE 75 /* RW- */1171#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO 01172#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL 11173#define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL 211741175/*1176* NV_CTRL_GVO_SYNC_INPUT_DETECTED - indicates whether SDI Sync input1177* is detected, and what type.1178*/11791180#define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED 76 /* R-- */1181#define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE 01182#define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD 11183#define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD 211841185/*1186* NV_CTRL_GVO_VIDEO_OUTPUTS - indicates which GVO video output1187* connectors are currently outputing data.1188*/11891190#define NV_CTRL_GVO_VIDEO_OUTPUTS 77 /* R-- */1191#define NV_CTRL_GVO_VIDEO_OUTPUTS_NONE 01192#define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO1 11193#define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO2 21194#define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO_BOTH 311951196/*1197* NV_CTRL_GVO_FPGA_VERSION - indicates the version of the Firmware on1198* the GVO device. Deprecated; use1199* NV_CTRL_STRING_GVIO_FIRMWARE_VERSION instead.1200*/12011202#define NV_CTRL_GVO_FIRMWARE_VERSION 78 /* R-- */12031204/*1205* NV_CTRL_GVO_SYNC_DELAY_PIXELS - controls the delay between the1206* input sync and the output sync in numbers of pixels from hsync;1207* this is a 12 bit value.1208*1209* If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set,1210* then setting this value will set an advance instead of a delay.1211*/12121213#define NV_CTRL_GVO_SYNC_DELAY_PIXELS 79 /* RW- */12141215/*1216* NV_CTRL_GVO_SYNC_DELAY_LINES - controls the delay between the input1217* sync and the output sync in numbers of lines from vsync; this is a1218* 12 bit value.1219*1220* If the NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW bit is set,1221* then setting this value will set an advance instead of a delay.1222*/12231224#define NV_CTRL_GVO_SYNC_DELAY_LINES 80 /* RW- */12251226/*1227* NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE - must be set for a period1228* of about 2 seconds for the new InputVideoFormat to be properly1229* locked to. In nvidia-settings, we do a reacquire whenever genlock1230* or frame lock mode is entered into, when the user clicks the1231* "detect" button. This value can be written, but always reads back1232* _FALSE.1233*/12341235#define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE 81 /* -W- */1236#define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE 01237#define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE 112381239/*1240* NV_CTRL_GVO_GLX_LOCKED - indicates that GVO configurability is1241* locked by GLX; this occurs when either glXGetVideoDeviceNV (part of1242* GLX_NV_video_out) or glXBindVideoDeviceNV (part of1243* GLX_NV_present_video) is called. All GVO output resources are1244* locked until released by the GLX_NV_video_out/GLX_NV_present_video1245* client.1246*1247* When GVO is locked, setting of the following GVO NV-CONTROL attributes will1248* not happen immediately and will instead be cached. The GVO resource will1249* need to be disabled/released and re-enabled/claimed for the values to be1250* flushed. These attributes are:1251* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT1252* NV_CTRL_GVO_DATA_FORMAT1253* NV_CTRL_GVO_FLIP_QUEUE_SIZE1254*1255* This attribute is deprecated and may be removed in a future release. Its1256* functionality has been replaced by NV_CTRL_GVO_LOCK_OWNER.1257*/12581259#define NV_CTRL_GVO_GLX_LOCKED 82 /* R-- */1260#define NV_CTRL_GVO_GLX_LOCKED_FALSE 01261#define NV_CTRL_GVO_GLX_LOCKED_TRUE 112621263/*1264* NV_CTRL_GVIO_VIDEO_FORMAT_{WIDTH,HEIGHT,REFRESH_RATE} - query the1265* width, height, and refresh rate for the specified1266* NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be queried with1267* existing interfaces, XNVCTRLQueryAttribute() should be used, and1268* the video format specified in the display_mask field; eg:1269*1270* XNVCTRLQueryAttribute (dpy,1271* screen,1272* NV_CTRL_GVIO_VIDEO_FORMAT_487I_59_94_SMPTE259_NTSC,1273* NV_CTRL_GVIO_VIDEO_FORMAT_WIDTH,1274* &value);1275*1276* Note that Refresh Rate is in milliHertz values1277*/12781279#define NV_CTRL_GVIO_VIDEO_FORMAT_WIDTH 83 /* R--I */1280#define NV_CTRL_GVIO_VIDEO_FORMAT_HEIGHT 84 /* R--I */1281#define NV_CTRL_GVIO_VIDEO_FORMAT_REFRESH_RATE 85 /* R--I */12821283/* The following are deprecated; use the NV_CTRL_GVIO_* versions, instead */1284#define NV_CTRL_GVO_VIDEO_FORMAT_WIDTH 83 /* R-- */1285#define NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT 84 /* R-- */1286#define NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE 85 /* R-- */12871288/*1289* NV_CTRL_GVO_X_SCREEN_PAN_[XY] - no longer supported1290*/12911292#define NV_CTRL_GVO_X_SCREEN_PAN_X 86 /* RW- */1293#define NV_CTRL_GVO_X_SCREEN_PAN_Y 87 /* RW- */12941295/*1296* NV_CTRL_GPU_OVERCLOCKING_STATE - query the current or set a new1297* overclocking state; the value of this attribute controls the1298* availability of additional overclocking attributes (see below).1299*1300* Note: this attribute is unavailable unless overclocking support1301* has been enabled in the X server (by the user).1302*/13031304#define NV_CTRL_GPU_OVERCLOCKING_STATE 88 /* RW-G */1305#define NV_CTRL_GPU_OVERCLOCKING_STATE_NONE 01306#define NV_CTRL_GPU_OVERCLOCKING_STATE_MANUAL 113071308/*1309* NV_CTRL_GPU_{2,3}D_CLOCK_FREQS - query or set the GPU and memory1310* clocks of the device driving the X screen. New clock frequencies1311* are tested before being applied, and may be rejected.1312*1313* Note: if the target clocks are too aggressive, their testing may1314* render the system unresponsive.1315*1316* Note: while this attribute can always be queried, it can't be set1317* unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL. Since1318* the target clocks may be rejected, the requester should read this1319* attribute after the set to determine success or failure.1320*1321* NV_CTRL_GPU_{2,3}D_CLOCK_FREQS are "packed" integer attributes; the1322* GPU clock is stored in the upper 16 bits of the integer, and the1323* memory clock is stored in the lower 16 bits of the integer. All1324* clock values are in MHz.1325*/13261327#define NV_CTRL_GPU_2D_CLOCK_FREQS 89 /* RW-G */1328#define NV_CTRL_GPU_3D_CLOCK_FREQS 90 /* RW-G */13291330/*1331* NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS - query the default memory1332* and GPU core clocks of the device driving the X screen.1333*1334* NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS are "packed" integer1335* attributes; the GPU clock is stored in the upper 16 bits of the1336* integer, and the memory clock is stored in the lower 16 bits of the1337* integer. All clock values are in MHz.1338*/13391340#define NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS 91 /* R--G */1341#define NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS 92 /* R--G */13421343/*1344* NV_CTRL_GPU_CURRENT_CLOCK_FREQS - query the current GPU and memory1345* clocks of the graphics device driving the X screen.1346*1347* NV_CTRL_GPU_CURRENT_CLOCK_FREQS is a "packed" integer attribute;1348* the GPU clock is stored in the upper 16 bits of the integer, and1349* the memory clock is stored in the lower 16 bits of the integer.1350* All clock values are in MHz. All clock values are in MHz.1351*/13521353#define NV_CTRL_GPU_CURRENT_CLOCK_FREQS 93 /* R--G */13541355/*1356* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS - Holds the last calculated1357* optimal 3D clock frequencies found by the1358* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION process. Querying this1359* attribute before having probed for the optimal clocks will return1360* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID1361*1362* Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the1363* optimal clock detection process is unavailable.1364*/13651366#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS 94 /* R--G */1367#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID 013681369/*1370* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION - set to _START to1371* initiate testing for the optimal 3D clock frequencies. Once1372* found, the optimal clock frequencies will be returned by the1373* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS attribute asynchronously1374* (using an X event, see XNVCtrlSelectNotify).1375*1376* To cancel an ongoing test for the optimal clocks, set the1377* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION attribute to _CANCEL1378*1379* Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the1380* optimal clock detection process is unavailable.1381*/13821383#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION 95 /* -W-G */1384#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_START 01385#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_CANCEL 113861387/*1388* NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE - query this1389* variable to know if a test is currently being run to1390* determine the optimal 3D clock frequencies. _BUSY means a1391* test is currently running, _IDLE means the test is not running.1392*1393* Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the1394* optimal clock detection process is unavailable.1395*/13961397#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE 96 /* R--G */1398#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_IDLE 01399#define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_BUSY 114001401/*1402* NV_CTRL_FLATPANEL_CHIP_LOCATION - for the specified display device,1403* report whether the flat panel is driven by the on-chip controller,1404* or a separate controller chip elsewhere on the graphics board.1405* This attribute is only available for flat panels.1406*/14071408#define NV_CTRL_FLATPANEL_CHIP_LOCATION 215 /* R-DG */1409#define NV_CTRL_FLATPANEL_CHIP_LOCATION_INTERNAL 01410#define NV_CTRL_FLATPANEL_CHIP_LOCATION_EXTERNAL 114111412/*1413* NV_CTRL_FLATPANEL_LINK - report the number of links for a DVI connection, or1414* the main link's active lane count for DisplayPort.1415* This attribute is only available for flat panels.1416*/14171418#define NV_CTRL_FLATPANEL_LINK 216 /* R-DG */1419#define NV_CTRL_FLATPANEL_LINK_SINGLE 01420#define NV_CTRL_FLATPANEL_LINK_DUAL 11421#define NV_CTRL_FLATPANEL_LINK_QUAD 314221423/*1424* NV_CTRL_FLATPANEL_SIGNAL - for the specified display device, report1425* whether the flat panel is driven by an LVDS, TMDS, or DisplayPort signal.1426* This attribute is only available for flat panels.1427*/14281429#define NV_CTRL_FLATPANEL_SIGNAL 217 /* R-DG */1430#define NV_CTRL_FLATPANEL_SIGNAL_LVDS 01431#define NV_CTRL_FLATPANEL_SIGNAL_TMDS 11432#define NV_CTRL_FLATPANEL_SIGNAL_DISPLAYPORT 214331434/*1435* NV_CTRL_USE_HOUSE_SYNC - when TRUE, the server (master) frame lock1436* device will propagate the incoming house sync signal as the outgoing1437* frame lock sync signal. If the frame lock device cannot detect a1438* frame lock sync signal, it will default to using the internal timings1439* from the GPU connected to the primary connector.1440*1441* This attribute may be queried through XNVCTRLQueryTargetAttribute()1442* using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN1443* target.1444*/14451446#define NV_CTRL_USE_HOUSE_SYNC 218 /* RW-F */1447#define NV_CTRL_USE_HOUSE_SYNC_FALSE 01448#define NV_CTRL_USE_HOUSE_SYNC_TRUE 114491450/*1451* NV_CTRL_EDID_AVAILABLE - report if an EDID is available for the1452* specified display device.1453*1454* This attribute may also be queried through XNVCTRLQueryTargetAttribute()1455* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN1456* target.1457*/14581459#define NV_CTRL_EDID_AVAILABLE 219 /* R-DG */1460#define NV_CTRL_EDID_AVAILABLE_FALSE 01461#define NV_CTRL_EDID_AVAILABLE_TRUE 114621463/*1464* NV_CTRL_FORCE_STEREO - when TRUE, OpenGL will force stereo flipping1465* even when no stereo drawables are visible (if the device is configured1466* to support it, see the "Stereo" X config option).1467* When false, fall back to the default behavior of only flipping when a1468* stereo drawable is visible.1469*/14701471#define NV_CTRL_FORCE_STEREO 220 /* RW- */1472#define NV_CTRL_FORCE_STEREO_FALSE 01473#define NV_CTRL_FORCE_STEREO_TRUE 114741475/*1476* NV_CTRL_IMAGE_SETTINGS - the image quality setting for OpenGL clients.1477*1478* This setting is only applied to OpenGL clients that are started1479* after this setting is applied.1480*/14811482#define NV_CTRL_IMAGE_SETTINGS 221 /* RW-X */1483#define NV_CTRL_IMAGE_SETTINGS_HIGH_QUALITY 01484#define NV_CTRL_IMAGE_SETTINGS_QUALITY 11485#define NV_CTRL_IMAGE_SETTINGS_PERFORMANCE 21486#define NV_CTRL_IMAGE_SETTINGS_HIGH_PERFORMANCE 314871488/*1489* NV_CTRL_XINERAMA - return whether xinerama is enabled1490*/14911492#define NV_CTRL_XINERAMA 222 /* R--G */1493#define NV_CTRL_XINERAMA_OFF 01494#define NV_CTRL_XINERAMA_ON 114951496/*1497* NV_CTRL_XINERAMA_STEREO - when TRUE, OpenGL will allow stereo flipping1498* on multiple X screens configured with Xinerama.1499* When FALSE, flipping is allowed only on one X screen at a time.1500*/15011502#define NV_CTRL_XINERAMA_STEREO 223 /* RW- */1503#define NV_CTRL_XINERAMA_STEREO_FALSE 01504#define NV_CTRL_XINERAMA_STEREO_TRUE 115051506/*1507* NV_CTRL_BUS_RATE - if the bus type of the specified device is AGP, then1508* NV_CTRL_BUS_RATE returns the configured AGP transfer rate. If the bus type1509* is PCI Express, then this attribute returns the maximum link width.1510* When this attribute is queried on an X screen target, the bus rate of the1511* GPU driving the X screen is returned.1512*/15131514#define NV_CTRL_BUS_RATE 224 /* R--GI */15151516/*1517* NV_CTRL_GPU_PCIE_MAX_LINK_WIDTH - returns the maximum1518* PCIe link width, in number of lanes.1519*/1520#define NV_CTRL_GPU_PCIE_MAX_LINK_WIDTH NV_CTRL_BUS_RATE15211522/*1523* NV_CTRL_SHOW_SLI_HUD - when TRUE, OpenGL will draw information about the1524* current SLI mode.1525* Renamed this attribute to NV_CTRL_SHOW_SLI_VISUAL_INDICATOR1526*/15271528#define NV_CTRL_SHOW_SLI_HUD NV_CTRL_SHOW_SLI_VISUAL_INDICATOR1529#define NV_CTRL_SHOW_SLI_HUD_FALSE NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_FALSE1530#define NV_CTRL_SHOW_SLI_HUD_TRUE NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_TRUE15311532/*1533* NV_CTRL_SHOW_SLI_VISUAL_INDICATOR - when TRUE, OpenGL will draw information1534* about the current SLI mode.1535*/15361537#define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR 225 /* RW-X */1538#define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_FALSE 01539#define NV_CTRL_SHOW_SLI_VISUAL_INDICATOR_TRUE 115401541/*1542* NV_CTRL_XV_SYNC_TO_DISPLAY - this control is valid when TwinView and1543* XVideo Sync To VBlank are enabled.1544* It controls which display device will be synched to.1545*/15461547#define NV_CTRL_XV_SYNC_TO_DISPLAY 226 /* RW- */15481549/*1550* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 - this attribute is only1551* intended to be used to query the ValidValues for1552* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for VIDEO_FORMAT values between1553* 31 and 63. See NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for details.1554*/15551556#define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2 227 /* ---GI */15571558/*1559* The following is deprecated; use NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT2,1560* instead1561*/1562#define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 227 /* --- */15631564/*1565* NV_CTRL_GVO_OVERRIDE_HW_CSC - Override the SDI hardware's Color Space1566* Conversion with the values controlled through1567* XNVCTRLSetGvoColorConversion() and XNVCTRLGetGvoColorConversion(). If1568* this attribute is FALSE, then the values specified through1569* XNVCTRLSetGvoColorConversion() are ignored.1570*/15711572#define NV_CTRL_GVO_OVERRIDE_HW_CSC 228 /* RW- */1573#define NV_CTRL_GVO_OVERRIDE_HW_CSC_FALSE 01574#define NV_CTRL_GVO_OVERRIDE_HW_CSC_TRUE 115751576/*1577* NV_CTRL_GVO_CAPABILITIES - this read-only attribute describes GVO1578* capabilities that differ between NVIDIA SDI products. This value1579* is a bitmask where each bit indicates whether that capability is1580* available.1581*1582* APPLY_CSC_IMMEDIATELY - whether the CSC matrix, offset, and scale1583* specified through XNVCTRLSetGvoColorConversion() will take affect1584* immediately, or only after SDI output is disabled and enabled1585* again.1586*1587* APPLY_CSC_TO_X_SCREEN - whether the CSC matrix, offset, and scale1588* specified through XNVCTRLSetGvoColorConversion() will also apply1589* to GVO output of an X screen, or only to OpenGL GVO output, as1590* enabled through the GLX_NV_video_out extension.1591*1592* COMPOSITE_TERMINATION - whether the 75 ohm termination of the1593* SDI composite input signal can be programmed through the1594* NV_CTRL_GVO_COMPOSITE_TERMINATION attribute.1595*1596* SHARED_SYNC_BNC - whether the SDI device has a single BNC1597* connector used for both (SDI & Composite) incoming signals.1598*1599* MULTIRATE_SYNC - whether the SDI device supports synchronization1600* of input and output video modes that match in being odd or even1601* modes (ie, AA.00 Hz modes can be synched to other BB.00 Hz modes and1602* AA.XX Hz can match to BB.YY Hz where .XX and .YY are not .00)1603*/16041605#define NV_CTRL_GVO_CAPABILITIES 229 /* R-- */1606#define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY 0x000000011607#define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN 0x000000021608#define NV_CTRL_GVO_CAPABILITIES_COMPOSITE_TERMINATION 0x000000041609#define NV_CTRL_GVO_CAPABILITIES_SHARED_SYNC_BNC 0x000000081610#define NV_CTRL_GVO_CAPABILITIES_MULTIRATE_SYNC 0x000000101611#define NV_CTRL_GVO_CAPABILITIES_ADVANCE_SYNC_SKEW 0x0000002016121613/*1614* NV_CTRL_GVO_COMPOSITE_TERMINATION - enable or disable 75 ohm1615* termination of the SDI composite input signal.1616*/16171618#define NV_CTRL_GVO_COMPOSITE_TERMINATION 230 /* RW- */1619#define NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE 11620#define NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE 016211622/*1623* NV_CTRL_ASSOCIATED_DISPLAY_DEVICES - display device mask indicating1624* which display devices are "associated" with the specified X screen1625* (ie: are available to the X screen for displaying the X screen).1626*/16271628#define NV_CTRL_ASSOCIATED_DISPLAY_DEVICES 231 /* RW- */16291630/*1631* NV_CTRL_FRAMELOCK_SLAVES - get/set whether the display device(s)1632* given should listen or ignore the master's sync signal.1633*1634* This attribute can only be queried through XNVCTRLQueryTargetAttribute()1635* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be1636* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.1637*/16381639#define NV_CTRL_FRAMELOCK_SLAVES 232 /* RW-G */16401641/*1642* NV_CTRL_FRAMELOCK_MASTERABLE - Can any of the given display devices1643* be set as master of the frame lock group. Returns a bitmask of the1644* corresponding display devices that can be set as master.1645*1646* This attribute can only be queried through XNVCTRLQueryTargetAttribute()1647* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be1648* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.1649*/16501651#define NV_CTRL_FRAMELOCK_MASTERABLE 233 /* R-DG */16521653/*1654* NV_CTRL_PROBE_DISPLAYS - re-probes the hardware to detect what1655* display devices are connected to the GPU or GPU driving the1656* specified X screen. Returns a display mask.1657*1658* This attribute may be queried through XNVCTRLQueryTargetAttribute()1659* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.1660*/16611662#define NV_CTRL_PROBE_DISPLAYS 234 /* R--G */16631664/*1665* NV_CTRL_REFRESH_RATE - Returns the refresh rate of the specified1666* display device in 100 * Hz (ie. to get the refresh rate in Hz, divide1667* the returned value by 100.)1668*1669* This attribute may be queried through XNVCTRLQueryTargetAttribute()1670* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.1671*/16721673#define NV_CTRL_REFRESH_RATE 235 /* R-DG */16741675/*1676* NV_CTRL_GVO_FLIP_QUEUE_SIZE - The Graphics to Video Out interface1677* exposed through NV-CONTROL and the GLX_NV_video_out extension uses1678* an internal flip queue when pbuffers are sent to the video device1679* (via glXSendPbufferToVideoNV()). The NV_CTRL_GVO_FLIP_QUEUE_SIZE1680* can be used to query and assign the flip queue size. This1681* attribute is applied to GLX when glXGetVideoDeviceNV() is called by1682* the application.1683*/16841685#define NV_CTRL_GVO_FLIP_QUEUE_SIZE 236 /* RW- */16861687/*1688* NV_CTRL_CURRENT_SCANLINE - query the current scanline for the1689* specified display device.1690*/16911692#define NV_CTRL_CURRENT_SCANLINE 237 /* R-DG */16931694/*1695* NV_CTRL_INITIAL_PIXMAP_PLACEMENT - Controls where X pixmaps are initially1696* created.1697*1698* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM causes pixmaps to stay in1699* system memory. These pixmaps can't be accelerated by the NVIDIA driver; this1700* will cause blank windows if used with an OpenGL compositing manager.1701* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM creates pixmaps in system memory1702* initially, but allows them to migrate to video memory.1703* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM creates pixmaps in video memory1704* when enough resources are available.1705* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED is currently reserved for future1706* use. Behavior is undefined.1707* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM creates pixmaps in GPU accessible1708* system memory when enough resources are available.1709*/17101711#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT 238 /* RW- */1712#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM 01713#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM 11714#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM 21715#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_RESERVED 31716#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM 417171718/*1719* NV_CTRL_PCI_BUS - Returns the PCI bus number the specified device is using.1720*/17211722#define NV_CTRL_PCI_BUS 239 /* R--GI */17231724/*1725* NV_CTRL_PCI_DEVICE - Returns the PCI device number the specified device is1726* using.1727*/17281729#define NV_CTRL_PCI_DEVICE 240 /* R--GI */17301731/*1732* NV_CTRL_PCI_FUNCTION - Returns the PCI function number the specified device1733* is using.1734*/17351736#define NV_CTRL_PCI_FUNCTION 241 /* R--GI */17371738/*1739* NV_CTRL_FRAMELOCK_FPGA_REVISION - Querys the FPGA revision of the1740* Frame Lock device.1741*1742* This attribute must be queried through XNVCTRLQueryTargetAttribute()1743* using a NV_CTRL_TARGET_TYPE_FRAMELOCK target.1744*/17451746#define NV_CTRL_FRAMELOCK_FPGA_REVISION 242 /* R--F */17471748/*1749* NV_CTRL_MAX_SCREEN_{WIDTH,HEIGHT} - the maximum allowable size, in1750* pixels, of either the specified X screen (if the target_type of the1751* query is an X screen), or any X screen on the specified GPU (if the1752* target_type of the query is a GPU).1753*/17541755#define NV_CTRL_MAX_SCREEN_WIDTH 243 /* R--G */1756#define NV_CTRL_MAX_SCREEN_HEIGHT 244 /* R--G */17571758/*1759* NV_CTRL_MAX_DISPLAYS - the maximum number of display devices that1760* can be driven simultaneously on a GPU (e.g., that can be used in a1761* MetaMode at once). Note that this does not indicate the maximum1762* number of bits that can be set in NV_CTRL_CONNECTED_DISPLAYS,1763* because more display devices can be connected than are actively in1764* use.1765*/17661767#define NV_CTRL_MAX_DISPLAYS 245 /* R--G */17681769/*1770* NV_CTRL_DYNAMIC_TWINVIEW - Returns whether or not the screen1771* supports dynamic twinview.1772*/17731774#define NV_CTRL_DYNAMIC_TWINVIEW 246 /* R-- */17751776/*1777* NV_CTRL_MULTIGPU_DISPLAY_OWNER - Returns the (NV-CONTROL) GPU ID of1778* the GPU that has the display device(s) used for showing the X Screen.1779*/17801781#define NV_CTRL_MULTIGPU_DISPLAY_OWNER 247 /* R-- */17821783/*1784* NV_CTRL_GPU_SCALING - not supported1785*/17861787#define NV_CTRL_GPU_SCALING 248 /* RWDG */17881789#define NV_CTRL_GPU_SCALING_TARGET_INVALID 01790#define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_BEST_FIT 11791#define NV_CTRL_GPU_SCALING_TARGET_FLATPANEL_NATIVE 217921793#define NV_CTRL_GPU_SCALING_METHOD_INVALID 01794#define NV_CTRL_GPU_SCALING_METHOD_STRETCHED 11795#define NV_CTRL_GPU_SCALING_METHOD_CENTERED 21796#define NV_CTRL_GPU_SCALING_METHOD_ASPECT_SCALED 317971798/*1799* NV_CTRL_FRONTEND_RESOLUTION - not supported1800*/18011802#define NV_CTRL_FRONTEND_RESOLUTION 249 /* R-DG */18031804/*1805* NV_CTRL_BACKEND_RESOLUTION - not supported1806*/18071808#define NV_CTRL_BACKEND_RESOLUTION 250 /* R-DG */18091810/*1811* NV_CTRL_FLATPANEL_NATIVE_RESOLUTION - Returns the dimensions of the1812* native resolution of the flat panel as determined by the1813* NVIDIA X Driver.1814*1815* The native resolution is the resolution at which a flat panel1816* must display any image. All other resolutions must be scaled to this1817* resolution through GPU scaling or the DFP's native scaling capabilities1818* in order to be displayed.1819*1820* This attribute is only valid for flat panel (DFP) display devices.1821*1822* This attribute is a packed integer; the width is packed in the upper1823* 16-bits and the height is packed in the lower 16-bits.1824*/18251826#define NV_CTRL_FLATPANEL_NATIVE_RESOLUTION 251 /* R-DG */18271828/*1829* NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION - not supported1830*/18311832#define NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION 252 /* R-DG */18331834/*1835* NV_CTRL_GPU_SCALING_ACTIVE - not supported1836*/18371838#define NV_CTRL_GPU_SCALING_ACTIVE 253 /* R-DG */18391840/*1841* NV_CTRL_DFP_SCALING_ACTIVE - not supported1842*/18431844#define NV_CTRL_DFP_SCALING_ACTIVE 254 /* R-DG */18451846/*1847* NV_CTRL_FSAA_APPLICATION_ENHANCED - Controls how the NV_CTRL_FSAA_MODE1848* is applied when NV_CTRL_FSAA_APPLICATION_CONTROLLED is set to1849* NV_CTRL_APPLICATION_CONTROLLED_DISABLED. When1850* NV_CTRL_FSAA_APPLICATION_ENHANCED is _DISABLED, OpenGL applications will1851* be forced to use the FSAA mode specified by NV_CTRL_FSAA_MODE. when set1852* to _ENABLED, only those applications that have selected a multisample1853* FBConfig will be made to use the NV_CTRL_FSAA_MODE specified.1854*1855* This attribute is ignored when NV_CTRL_FSAA_APPLICATION_CONTROLLED is1856* set to NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED.1857*/18581859#define NV_CTRL_FSAA_APPLICATION_ENHANCED 255 /* RW-X */1860#define NV_CTRL_FSAA_APPLICATION_ENHANCED_ENABLED 11861#define NV_CTRL_FSAA_APPLICATION_ENHANCED_DISABLED 018621863/*1864* NV_CTRL_FRAMELOCK_SYNC_RATE_4 - This is the refresh rate that the1865* frame lock board is sending to the GPU with 4 digits of precision.1866*1867* This attribute may be queried through XNVCTRLQueryTargetAttribute()1868* using a NV_CTRL_TARGET_TYPE_FRAMELOCK.1869*/18701871#define NV_CTRL_FRAMELOCK_SYNC_RATE_4 256 /* R--F */18721873/*1874* NV_CTRL_GVO_LOCK_OWNER - indicates that the GVO device is available1875* or in use (by GLX or an X screen).1876*1877* The GVO device is locked by GLX when either glXGetVideoDeviceNV1878* (part of GLX_NV_video_out) or glXBindVideoDeviceNV (part of1879* GLX_NV_present_video) is called. All GVO output resources are1880* locked until released by the GLX_NV_video_out/GLX_NV_present_video1881* client.1882*1883* The GVO device is locked/unlocked by an X screen, when the GVO device is1884* used in a MetaMode on an X screen.1885*1886* When the GVO device is locked, setting of the following GVO NV-CONTROL1887* attributes will not happen immediately and will instead be cached. The1888* GVO resource will need to be disabled/released and re-enabled/claimed for1889* the values to be flushed. These attributes are:1890*1891* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT1892* NV_CTRL_GVO_DATA_FORMAT1893* NV_CTRL_GVO_FLIP_QUEUE_SIZE1894*/18951896#define NV_CTRL_GVO_LOCK_OWNER 257 /* R-- */1897#define NV_CTRL_GVO_LOCK_OWNER_NONE 01898#define NV_CTRL_GVO_LOCK_OWNER_GLX 11899#define NV_CTRL_GVO_LOCK_OWNER_CLONE /* no longer supported */ 21900#define NV_CTRL_GVO_LOCK_OWNER_X_SCREEN 319011902/*1903* NV_CTRL_HWOVERLAY - when a workstation overlay is in use, reports1904* whether the hardware overlay is used, or if the overlay is emulated.1905*/19061907#define NV_CTRL_HWOVERLAY 258 /* R-- */1908#define NV_CTRL_HWOVERLAY_FALSE 01909#define NV_CTRL_HWOVERLAY_TRUE 119101911/*1912* NV_CTRL_NUM_GPU_ERRORS_RECOVERED - Returns the number of GPU errors1913* occured. This attribute may be queried through XNVCTRLQueryTargetAttribute()1914* using a NV_CTRL_TARGET_TYPE_X_SCREEN target.1915*/19161917#define NV_CTRL_NUM_GPU_ERRORS_RECOVERED 259 /* R--- */19181919/*1920* NV_CTRL_REFRESH_RATE_3 - Returns the refresh rate of the specified1921* display device in 1000 * Hz (ie. to get the refresh rate in Hz, divide1922* the returned value by 1000.)1923*1924* This attribute may be queried through XNVCTRLQueryTargetAttribute()1925* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.1926*/19271928#define NV_CTRL_REFRESH_RATE_3 260 /* R-DG */19291930/*1931* NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS - if the OnDemandVBlankInterrupts1932* X driver option is set to true, this attribute can be used to1933* determine if on-demand VBlank interrupt control is enabled on the1934* specified GPU, as well as to enable or disable this feature.1935*/19361937#define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS 261 /* RW-G */1938#define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_OFF 01939#define NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS_ON 119401941/*1942* NV_CTRL_GPU_POWER_SOURCE reports the type of power source1943* of the GPU driving the X screen.1944*/19451946#define NV_CTRL_GPU_POWER_SOURCE 262 /* R--G */1947#define NV_CTRL_GPU_POWER_SOURCE_AC 01948#define NV_CTRL_GPU_POWER_SOURCE_BATTERY 119491950/*1951* NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE is deprecated1952*/19531954#define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE 263 /* R--G */1955#define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_DESKTOP 01956#define NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE_MAXPERF 119571958/* NV_CTRL_GLYPH_CACHE - Enables RENDER Glyph Caching to VRAM */19591960#define NV_CTRL_GLYPH_CACHE 264 /* RW- */1961#define NV_CTRL_GLYPH_CACHE_DISABLED 01962#define NV_CTRL_GLYPH_CACHE_ENABLED 119631964/*1965* NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL reports the current1966* Performance level of the GPU driving the X screen. Each1967* Performance level has associated NVClock and Mem Clock values.1968*/19691970#define NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL 265 /* R--G */19711972/*1973* NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE reports if Adaptive Clocking1974* is Enabled on the GPU driving the X screen.1975*/19761977#define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE 266 /* R--G */1978#define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_DISABLED 01979#define NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE_ENABLED 119801981/*1982* NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED - Returns whether or not the GVO output1983* video is locked to the GPU.1984*/19851986#define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED 267 /* R--- */1987#define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_FALSE 01988#define NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED_TRUE 119891990/*1991* NV_CTRL_GVO_SYNC_LOCK_STATUS - Returns whether or not the GVO device1992* is locked to the input ref signal. If the sync mode is set to1993* NV_CTRL_GVO_SYNC_MODE_GENLOCK, then this returns the genlock1994* sync status, and if the sync mode is set to NV_CTRL_GVO_SYNC_MODE_FRAMELOCK,1995* then this reports the frame lock status.1996*/19971998#define NV_CTRL_GVO_SYNC_LOCK_STATUS 268 /* R--- */1999#define NV_CTRL_GVO_SYNC_LOCK_STATUS_UNLOCKED 02000#define NV_CTRL_GVO_SYNC_LOCK_STATUS_LOCKED 120012002/*2003* NV_CTRL_GVO_ANC_TIME_CODE_GENERATION - Allows SDI device to generate2004* time codes in the ANC region of the SDI video output stream.2005*/20062007#define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION 269 /* RW-- */2008#define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_DISABLE 02009#define NV_CTRL_GVO_ANC_TIME_CODE_GENERATION_ENABLE 120102011/*2012* NV_CTRL_GVO_COMPOSITE - Enables/Disables SDI compositing. This attribute2013* is only available when an SDI input source is detected and is in genlock2014* mode.2015*/20162017#define NV_CTRL_GVO_COMPOSITE 270 /* RW-- */2018#define NV_CTRL_GVO_COMPOSITE_DISABLE 02019#define NV_CTRL_GVO_COMPOSITE_ENABLE 120202021/*2022* NV_CTRL_GVO_COMPOSITE_ALPHA_KEY - When compositing is enabled, this2023* enables/disables alpha blending.2024*/20252026#define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY 271 /* RW-- */2027#define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_DISABLE 02028#define NV_CTRL_GVO_COMPOSITE_ALPHA_KEY_ENABLE 120292030/*2031* NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE - Set the values of a luma2032* channel range. This is a packed int that has the following format2033* (in order of high-bits to low bits):2034*2035* Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)2036*2037* To query the current values, pass the range # throught the display_mask2038* variable.2039*/20402041#define NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE 272 /* RW-- */20422043#define NV_CTRL_GVO_COMPOSITE_MAKE_RANGE(range, enable, min, max) \2044((((min)&0x3FF) << 0) | (((max)&0x3FF) << 10) | (((enable)&0x1) << 20) | \2045(((range)&0x7FF) << 21))20462047#define NV_CTRL_GVO_COMPOSITE_GET_RANGE(val, range, enable, min, max) \2048(min) = ((val) >> 0) & 0x3FF; \2049(max) = ((val) >> 10) & 0x3FF; \2050(enable) = ((val) >> 20) & 0x1; \2051(range) = ((val) >> 21) & 0x7FF;20522053/*2054* NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE - Set the values of a CR2055* channel range. This is a packed int that has the following format2056* (in order of high-bits to low bits):2057*2058* Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)2059*2060* To query the current values, pass the range # throught he display_mask2061* variable.2062*/20632064#define NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE 273 /* RW-- */20652066/*2067* NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE - Set the values of a CB2068* channel range. This is a packed int that has the following format2069* (in order of high-bits to low bits):2070*2071* Range # (11 bits), (Enabled 1 bit), min value (10 bits), max value (10 bits)2072*2073* To query the current values, pass the range # throught he display_mask2074* variable.2075*/20762077#define NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE 274 /* RW-- */20782079/*2080* NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES - Returns the number of ranges2081* available for each channel (Y/Luma, Cr, and Cb.)2082*/20832084#define NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES 275 /* R--- */20852086/*2087* NV_CTRL_SWITCH_TO_DISPLAYS - Can be used to select which displays2088* to switch to (as a hotkey event).2089*/20902091#define NV_CTRL_SWITCH_TO_DISPLAYS 276 /* -W- */20922093/*2094* NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT - Event that notifies2095* when a notebook lid change occurs (i.e. when the lid is opened or2096* closed.) This attribute can be queried to retrieve the current2097* notebook lid status (opened/closed.)2098*/20992100#define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT 277 /* RW- */2101#define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_CLOSE 02102#define NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT_OPEN 121032104/*2105* NV_CTRL_NOTEBOOK_INTERNAL_LCD - Returns the display device mask of2106* the intenal LCD of a notebook.2107*/21082109#define NV_CTRL_NOTEBOOK_INTERNAL_LCD 278 /* R-- */21102111/*2112* NV_CTRL_DEPTH_30_ALLOWED - returns whether the NVIDIA X driver supports2113* depth 30 on the specified X screen or GPU.2114*/21152116#define NV_CTRL_DEPTH_30_ALLOWED 279 /* R--G */21172118/*2119* NV_CTRL_MODE_SET_EVENT This attribute is sent as an event2120* when hotkey, ctrl-alt-+/- or randr event occurs. Note that2121* This attribute cannot be set or queried and is meant to2122* be received by clients that wish to be notified of when2123* mode set events occur.2124*/21252126#define NV_CTRL_MODE_SET_EVENT 280 /* --- */21272128/*2129* NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE - the gamma value used by2130* OpenGL when NV_CTRL_OPENGL_AA_LINE_GAMMA is enabled2131*/21322133#define NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE 281 /* RW-X */21342135/*2136* NV_CTRL_VCSC_HIGH_PERF_MODE - Is used to both query High Performance Mode2137* status on the Visual Computing System, and also to enable or disable High2138* Performance Mode.2139*/21402141#define NV_CTRL_VCSC_HIGH_PERF_MODE 282 /* RW-V */2142#define NV_CTRL_VCSC_HIGH_PERF_MODE_DISABLE 02143#define NV_CTRL_VCSC_HIGH_PERF_MODE_ENABLE 121442145/*2146* NV_CTRL_DISPLAYPORT_LINK_RATE - returns the negotiated lane bandwidth of the2147* DisplayPort main link.2148* This attribute is only available for DisplayPort flat panels.2149*/21502151#define NV_CTRL_DISPLAYPORT_LINK_RATE 291 /* R-DG */2152#define NV_CTRL_DISPLAYPORT_LINK_RATE_DISABLED 0x02153#define NV_CTRL_DISPLAYPORT_LINK_RATE_1_62GBPS 0x62154#define NV_CTRL_DISPLAYPORT_LINK_RATE_2_70GBPS 0xA21552156/*2157* NV_CTRL_STEREO_EYES_EXCHANGE - Controls whether or not the left and right2158* eyes of a stereo image are flipped.2159*/21602161#define NV_CTRL_STEREO_EYES_EXCHANGE 292 /* RW-X */2162#define NV_CTRL_STEREO_EYES_EXCHANGE_OFF 02163#define NV_CTRL_STEREO_EYES_EXCHANGE_ON 121642165/*2166* NV_CTRL_NO_SCANOUT - returns whether the special "NoScanout" mode is2167* enabled on the specified X screen or GPU; for details on this mode,2168* see the description of the "none" value for the "UseDisplayDevice"2169* X configuration option in the NVIDIA driver README.2170*/21712172#define NV_CTRL_NO_SCANOUT 293 /* R--G */2173#define NV_CTRL_NO_SCANOUT_DISABLED 02174#define NV_CTRL_NO_SCANOUT_ENABLED 121752176/*2177* NV_CTRL_GVO_CSC_CHANGED_EVENT This attribute is sent as an event2178* when the color space conversion matrix has been altered by another2179* client.2180*/21812182#define NV_CTRL_GVO_CSC_CHANGED_EVENT 294 /* --- */21832184/*2185* NV_CTRL_FRAMELOCK_SLAVEABLE - Returns a bitmask of the display devices2186* that are (currently) allowed to be selected as slave devices for the2187* given GPU2188*/21892190#define NV_CTRL_FRAMELOCK_SLAVEABLE 295 /* R-DG */21912192/*2193* NV_CTRL_GVO_SYNC_TO_DISPLAY This attribute controls whether or not2194* the non-SDI display device will be sync'ed to the SDI display device2195* (when configured in TwinView, Clone Mode or when using the SDI device2196* with OpenGL).2197*/21982199#define NV_CTRL_GVO_SYNC_TO_DISPLAY 296 /* --- */2200#define NV_CTRL_GVO_SYNC_TO_DISPLAY_DISABLE 02201#define NV_CTRL_GVO_SYNC_TO_DISPLAY_ENABLE 122022203/*2204* NV_CTRL_X_SERVER_UNIQUE_ID - returns a pseudo-unique identifier for this2205* X server. Intended for use in cases where an NV-CONTROL client communicates2206* with multiple X servers, and wants some level of confidence that two2207* X Display connections correspond to the same or different X servers.2208*/22092210#define NV_CTRL_X_SERVER_UNIQUE_ID 297 /* R--- */22112212/*2213* NV_CTRL_PIXMAP_CACHE - This attribute controls whether the driver attempts to2214* store video memory pixmaps in a cache. The cache speeds up allocation and2215* deallocation of pixmaps, but could use more memory than when the cache is2216* disabled.2217*/22182219#define NV_CTRL_PIXMAP_CACHE 298 /* RW-X */2220#define NV_CTRL_PIXMAP_CACHE_DISABLE 02221#define NV_CTRL_PIXMAP_CACHE_ENABLE 122222223/*2224* NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB - When the pixmap cache is enabled and2225* there is not enough free space in the cache to fit a new pixmap, the driver2226* will round up to the next multiple of this number of kilobytes when2227* allocating more memory for the cache.2228*/22292230#define NV_CTRL_PIXMAP_CACHE_ROUNDING_SIZE_KB 299 /* RW-X */22312232/*2233* NV_CTRL_IS_GVO_DISPLAY - returns whether or not a given display is an2234* SDI device.2235*/22362237#define NV_CTRL_IS_GVO_DISPLAY 300 /* R-D */2238#define NV_CTRL_IS_GVO_DISPLAY_FALSE 02239#define NV_CTRL_IS_GVO_DISPLAY_TRUE 122402241/*2242* NV_CTRL_PCI_ID - Returns the PCI vendor and device ID of the specified2243* device.2244*2245* NV_CTRL_PCI_ID is a "packed" integer attribute; the PCI vendor ID is stored2246* in the upper 16 bits of the integer, and the PCI device ID is stored in the2247* lower 16 bits of the integer.2248*/22492250#define NV_CTRL_PCI_ID 301 /* R--GI */22512252/*2253* NV_CTRL_GVO_FULL_RANGE_COLOR - Allow full range color data [4-1019]2254* without clamping to [64-940].2255*/22562257#define NV_CTRL_GVO_FULL_RANGE_COLOR 302 /* RW- */2258#define NV_CTRL_GVO_FULL_RANGE_COLOR_DISABLED 02259#define NV_CTRL_GVO_FULL_RANGE_COLOR_ENABLED 122602261/*2262* NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE - Returns whether or not2263* SLI Mosaic Mode supported.2264*/22652266#define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE 303 /* R-- */2267#define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_FALSE 02268#define NV_CTRL_SLI_MOSAIC_MODE_AVAILABLE_TRUE 122692270/*2271* NV_CTRL_GVO_ENABLE_RGB_DATA - Allows clients to specify when2272* the GVO board should process colors as RGB when the output data2273* format is one of the NV_CTRL_GVO_DATA_FORMAT_???_PASSTRHU modes.2274*/22752276#define NV_CTRL_GVO_ENABLE_RGB_DATA 304 /* RW- */2277#define NV_CTRL_GVO_ENABLE_RGB_DATA_DISABLE 02278#define NV_CTRL_GVO_ENABLE_RGB_DATA_ENABLE 122792280/*2281* NV_CTRL_IMAGE_SHARPENING_DEFAULT - Returns default value of2282* Image Sharpening.2283*/22842285#define NV_CTRL_IMAGE_SHARPENING_DEFAULT 305 /* R-- */22862287/*2288* NV_CTRL_PCI_DOMAIN - Returns the PCI domain number the specified device is2289* using.2290*/22912292#define NV_CTRL_PCI_DOMAIN 306 /* R--GI */22932294/*2295* NV_CTRL_GVI_NUM_JACKS - Returns the number of input BNC jacks available2296* on a GVI device.2297*/22982299#define NV_CTRL_GVI_NUM_JACKS 307 /* R--I */23002301/*2302* NV_CTRL_GVI_MAX_LINKS_PER_STREAM - Returns the maximum supported number of2303* links that can be tied to one stream.2304*/23052306#define NV_CTRL_GVI_MAX_LINKS_PER_STREAM 308 /* R--I */23072308/*2309* NV_CTRL_GVI_DETECTED_CHANNEL_BITS_PER_COMPONENT - Returns the detected2310* number of bits per component (BPC) of data on the given input jack+2311* channel.2312*2313* The jack number should be specified in the lower 16 bits of the2314* "display_mask" parameter, while the channel number should be specified in2315* the upper 16 bits.2316*/23172318#define NV_CTRL_GVI_DETECTED_CHANNEL_BITS_PER_COMPONENT 309 /* R--I */2319#define NV_CTRL_GVI_BITS_PER_COMPONENT_UNKNOWN 02320#define NV_CTRL_GVI_BITS_PER_COMPONENT_8 12321#define NV_CTRL_GVI_BITS_PER_COMPONENT_10 22322#define NV_CTRL_GVI_BITS_PER_COMPONENT_12 323232324/*2325* NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT - Specify the number of2326* bits per component (BPC) of data for the captured stream.2327* The stream number should be specified in the "display_mask" parameter.2328*2329* Note: Setting this attribute may also result in the following2330* NV-CONTROL attributes being reset on the GVI device (to ensure2331* the configuration remains valid):2332* NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING2333*/23342335#define NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT 310 /* RW-I */23362337/*2338* NV_CTRL_GVI_DETECTED_CHANNEL_COMPONENT_SAMPLING - Returns the detected2339* sampling format for the input jack+channel.2340*2341* The jack number should be specified in the lower 16 bits of the2342* "display_mask" parameter, while the channel number should be specified in2343* the upper 16 bits.2344*/23452346#define NV_CTRL_GVI_DETECTED_CHANNEL_COMPONENT_SAMPLING 311 /* R--I */2347#define NV_CTRL_GVI_COMPONENT_SAMPLING_UNKNOWN 02348#define NV_CTRL_GVI_COMPONENT_SAMPLING_4444 12349#define NV_CTRL_GVI_COMPONENT_SAMPLING_4224 22350#define NV_CTRL_GVI_COMPONENT_SAMPLING_444 32351#define NV_CTRL_GVI_COMPONENT_SAMPLING_422 42352#define NV_CTRL_GVI_COMPONENT_SAMPLING_420 523532354/*2355* NV_CTRL_GVI_REQUESTED_COMPONENT_SAMPLING - Specify the sampling format for2356* the captured stream.2357* The possible values are the NV_CTRL_GVI_DETECTED_COMPONENT_SAMPLING2358* constants.2359* The stream number should be specified in the "display_mask" parameter.2360*/23612362#define NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING 312 /* RW-I */23632364/*2365* NV_CTRL_GVI_CHROMA_EXPAND - Enable or disable 4:2:2 -> 4:4:4 chroma2366* expansion for the captured stream. This value is ignored when a2367* COMPONENT_SAMPLING format is selected that does not use chroma subsampling,2368* or if a BITS_PER_COMPONENT value is selected that is not supported.2369* The stream number should be specified in the "display_mask" parameter.2370*/23712372#define NV_CTRL_GVI_REQUESTED_STREAM_CHROMA_EXPAND 313 /* RW-I */2373#define NV_CTRL_GVI_CHROMA_EXPAND_FALSE 02374#define NV_CTRL_GVI_CHROMA_EXPAND_TRUE 123752376/*2377* NV_CTRL_GVI_DETECTED_CHANNEL_COLOR_SPACE - Returns the detected color space2378* of the input jack+channel.2379*2380* The jack number should be specified in the lower 16 bits of the2381* "display_mask" parameter, while the channel number should be specified in2382* the upper 16 bits.2383*/23842385#define NV_CTRL_GVI_DETECTED_CHANNEL_COLOR_SPACE 314 /* R--I */2386#define NV_CTRL_GVI_COLOR_SPACE_UNKNOWN 02387#define NV_CTRL_GVI_COLOR_SPACE_GBR 12388#define NV_CTRL_GVI_COLOR_SPACE_GBRA 22389#define NV_CTRL_GVI_COLOR_SPACE_GBRD 32390#define NV_CTRL_GVI_COLOR_SPACE_YCBCR 42391#define NV_CTRL_GVI_COLOR_SPACE_YCBCRA 52392#define NV_CTRL_GVI_COLOR_SPACE_YCBCRD 623932394/*2395* NV_CTRL_GVI_DETECTED_CHANNEL_LINK_ID - Returns the detected link identifier2396* for the given input jack+channel.2397*2398* The jack number should be specified in the lower 16 bits of the2399* "display_mask" parameter, while the channel number should be specified in2400* the upper 16 bits.2401*/24022403#define NV_CTRL_GVI_DETECTED_CHANNEL_LINK_ID 315 /* R--I */2404#define NV_CTRL_GVI_LINK_ID_UNKNOWN 0xFFFF24052406/*2407* NV_CTRL_GVI_DETECTED_CHANNEL_SMPTE352_IDENTIFIER - Returns the 4-byte2408* SMPTE 352 identifier from the given input jack+channel.2409*2410* The jack number should be specified in the lower 16 bits of the2411* "display_mask" parameter, while the channel number should be specified in2412* the upper 16 bits.2413*/24142415#define NV_CTRL_GVI_DETECTED_CHANNEL_SMPTE352_IDENTIFIER 316 /* R--I */24162417/*2418* NV_CTRL_GVI_GLOBAL_IDENTIFIER - Returns a global identifier for the2419* GVI device. This identifier can be used to relate GVI devices named2420* in NV-CONTROL with those enumerated in OpenGL.2421*/24222423#define NV_CTRL_GVI_GLOBAL_IDENTIFIER 317 /* R--I */24242425/*2426* NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION - Returns the number of nanoseconds2427* that one unit of NV_CTRL_FRAMELOCK_SYNC_DELAY corresponds to.2428*/2429#define NV_CTRL_FRAMELOCK_SYNC_DELAY_RESOLUTION 318 /* R-- */24302431/*2432* NV_CTRL_GPU_COOLER_MANUAL_CONTROL - Query the current or set a new2433* cooler control state; the value of this attribute controls the2434* availability of additional cooler control attributes (see below).2435*2436* Note: this attribute is unavailable unless cooler control support2437* has been enabled in the X server (by the user).2438*/24392440#define NV_CTRL_GPU_COOLER_MANUAL_CONTROL 319 /* RW-G */2441#define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_FALSE 02442#define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_TRUE 124432444/*2445* NV_CTRL_THERMAL_COOLER_LEVEL - Returns cooler's current operating2446* level.2447*/24482449#define NV_CTRL_THERMAL_COOLER_LEVEL 320 /* RW-C */24502451/* NV_CTRL_THERMAL_COOLER_LEVEL_SET_DEFAULT - Sets default values of2452* cooler.2453*/24542455#define NV_CTRL_THERMAL_COOLER_LEVEL_SET_DEFAULT 321 /* -W-C */24562457/*2458* NV_CTRL_THERMAL_COOLER_CONTROL_TYPE -2459* Returns a cooler's control signal characteristics.2460* The possible types are restricted, Variable and Toggle.2461*/24622463#define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE 322 /* R--C */2464#define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_NONE 02465#define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_TOGGLE 12466#define NV_CTRL_THERMAL_COOLER_CONTROL_TYPE_VARIABLE 224672468/*2469* NV_CTRL_THERMAL_COOLER_TARGET - Returns objects that cooler cools.2470* Targets may be GPU, Memory, Power Supply or All of these.2471* GPU_RELATED = GPU | MEMORY | POWER_SUPPLY2472*2473*/24742475#define NV_CTRL_THERMAL_COOLER_TARGET 323 /* R--C */2476#define NV_CTRL_THERMAL_COOLER_TARGET_NONE 02477#define NV_CTRL_THERMAL_COOLER_TARGET_GPU 12478#define NV_CTRL_THERMAL_COOLER_TARGET_MEMORY 22479#define NV_CTRL_THERMAL_COOLER_TARGET_POWER_SUPPLY 42480#define NV_CTRL_THERMAL_COOLER_TARGET_GPU_RELATED \2481(NV_CTRL_THERMAL_COOLER_TARGET_GPU | NV_CTRL_THERMAL_COOLER_TARGET_MEMORY | \2482NV_CTRL_THERMAL_COOLER_TARGET_POWER_SUPPLY)24832484/*2485* NV_CTRL_GPU_ECC_SUPPORTED - Reports whether ECC is supported by the2486* targeted GPU.2487*/2488#define NV_CTRL_GPU_ECC_SUPPORTED 324 /* R--G */2489#define NV_CTRL_GPU_ECC_SUPPORTED_FALSE 02490#define NV_CTRL_GPU_ECC_SUPPORTED_TRUE 124912492/*2493* NV_CTRL_GPU_ECC_STATUS - Returns the current hardware ECC setting2494* for the targeted GPU.2495*/2496#define NV_CTRL_GPU_ECC_STATUS 325 /* R--G */2497#define NV_CTRL_GPU_ECC_STATUS_DISABLED 02498#define NV_CTRL_GPU_ECC_STATUS_ENABLED 124992500/*2501* NV_CTRL_GPU_ECC_CONFIGURATION - Reports whether ECC can be configured2502* dynamically for the GPU in question.2503*/2504#define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED 326 /* R--G */2505#define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED_FALSE 02506#define NV_CTRL_GPU_ECC_CONFIGURATION_SUPPORTED_TRUE 125072508/*2509* NV_CTRL_GPU_ECC_CONFIGURATION_SETTING - Returns the current ECC2510* configuration setting or specifies new settings. New settings do not2511* take effect until the next POST.2512*/2513#define NV_CTRL_GPU_ECC_CONFIGURATION 327 /* RW-G */2514#define NV_CTRL_GPU_ECC_CONFIGURATION_DISABLED 02515#define NV_CTRL_GPU_ECC_CONFIGURATION_ENABLED 125162517/*2518* NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_SETTING - Returns the default2519* ECC configuration setting.2520*/2521#define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION 328 /* R--G */2522#define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_DISABLED 02523#define NV_CTRL_GPU_ECC_DEFAULT_CONFIGURATION_ENABLED 125242525/*2526* NV_CTRL_GPU_ECC_SINGLE_BIT_ERRORS - Returns the number of single-bit2527* ECC errors detected by the targeted GPU since the last POST.2528* Note: this attribute is a 64-bit integer attribute.2529*/2530#define NV_CTRL_GPU_ECC_SINGLE_BIT_ERRORS 329 /* R--GQ */25312532/*2533* NV_CTRL_GPU_ECC_DOUBLE_BIT_ERRORS - Returns the number of double-bit2534* ECC errors detected by the targeted GPU since the last POST.2535* Note: this attribute is a 64-bit integer attribute.2536*/2537#define NV_CTRL_GPU_ECC_DOUBLE_BIT_ERRORS 330 /* R--GQ */25382539/*2540* NV_CTRL_GPU_ECC_AGGREGATE_SINGLE_BIT_ERRORS - Returns the number of2541* single-bit ECC errors detected by the targeted GPU since the2542* last counter reset.2543* Note: this attribute is a 64-bit integer attribute.2544*/2545#define NV_CTRL_GPU_ECC_AGGREGATE_SINGLE_BIT_ERRORS 331 /* R--GQ */25462547/*2548* NV_CTRL_GPU_ECC_AGGREGATE_DOUBLE_BIT_ERRORS - Returns the number of2549* double-bit ECC errors detected by the targeted GPU since the2550* last counter reset.2551* Note: this attribute is a 64-bit integer attribute.2552*/2553#define NV_CTRL_GPU_ECC_AGGREGATE_DOUBLE_BIT_ERRORS 332 /* R--GQ */25542555/*2556* NV_CTRL_GPU_ECC_RESET_ERROR_STATUS - Resets the volatile/aggregate2557* single-bit and double-bit error counters. This attribute is a2558* bitmask attribute.2559*/2560#define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS 333 /* -W-G */2561#define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS_VOLATILE 0x000000012562#define NV_CTRL_GPU_ECC_RESET_ERROR_STATUS_AGGREGATE 0x0000000225632564/*2565* NV_CTRL_GPU_POWER_MIZER_MODE - Provides a hint to the driver2566* as to how to manage the performance of the GPU.2567*2568* ADAPTIVE - adjust GPU clocks based on GPU2569* utilization2570* PREFER_MAXIMUM_PERFORMANCE - raise GPU clocks to favor2571* maximum performance, to the extent2572* that thermal and other constraints2573* allow2574*/2575#define NV_CTRL_GPU_POWER_MIZER_MODE 334 /* RW-G */2576#define NV_CTRL_GPU_POWER_MIZER_MODE_ADAPTIVE 02577#define NV_CTRL_GPU_POWER_MIZER_MODE_PREFER_MAXIMUM_PERFORMANCE 125782579/*2580* NV_CTRL_GVI_SYNC_OUTPUT_FORMAT - Returns the output sync signal2581* from the GVI device.2582*/25832584#define NV_CTRL_GVI_SYNC_OUTPUT_FORMAT 335 /* R--I */25852586/*2587* NV_CTRL_GVI_MAX_CHANNELS_PER_JACK - Returns the maximum2588* supported number of (logical) channels within a single physical jack of2589* a GVI device. For most SDI video formats, there is only one channel2590* (channel 0). But for 3G video formats (as specified in SMPTE 425),2591* as an example, there are two channels (channel 0 and channel 1) per2592* physical jack.2593*/25942595#define NV_CTRL_GVI_MAX_CHANNELS_PER_JACK 336 /* R--I */25962597/*2598* NV_CTRL_GVI_MAX_STREAMS - Returns the maximum number of streams2599* that can be configured on the GVI device.2600*/26012602#define NV_CTRL_GVI_MAX_STREAMS 337 /* R--I */26032604/*2605* NV_CTRL_GVI_NUM_CAPTURE_SURFACES - The GVI interface exposed through2606* NV-CONTROL and the GLX_NV_video_input extension uses internal capture2607* surfaces when frames are read from the GVI device. The2608* NV_CTRL_GVI_NUM_CAPTURE_SURFACES can be used to query and assign the2609* number of capture surfaces. This attribute is applied when2610* glXBindVideoCaptureDeviceNV() is called by the application.2611*2612* A lower number of capture surfaces will mean less video memory is used,2613* but can result in frames being dropped if the application cannot keep up2614* with the capture device. A higher number will prevent frames from being2615* dropped, making capture more reliable but will consume move video memory.2616*/2617#define NV_CTRL_GVI_NUM_CAPTURE_SURFACES 338 /* RW-I */26182619/*2620* NV_CTRL_OVERSCAN_COMPENSATION - not supported2621*/2622#define NV_CTRL_OVERSCAN_COMPENSATION 339 /* RWDG */26232624/*2625* NV_CTRL_GPU_PCIE_GENERATION - Reports the current PCIe generation.2626*/2627#define NV_CTRL_GPU_PCIE_GENERATION 341 /* R--GI */2628#define NV_CTRL_GPU_PCIE_GENERATION1 0x000000012629#define NV_CTRL_GPU_PCIE_GENERATION2 0x000000022630#define NV_CTRL_GPU_PCIE_GENERATION3 0x0000000326312632/*2633* NV_CTRL_GVI_BOUND_GPU - Returns the NV_CTRL_TARGET_TYPE_GPU target_id of2634* the GPU currently bound to the GVI device. Returns -1 if no GPU is2635* currently bound to the GVI device.2636*/2637#define NV_CTRL_GVI_BOUND_GPU 342 /* R--I */26382639/*2640* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 - this attribute is only2641* intended to be used to query the ValidValues for2642* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for VIDEO_FORMAT values between2643* 64 and 95. See NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT for details.2644*/26452646#define NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT3 343 /* ---GI */26472648/*2649* NV_CTRL_ACCELERATE_TRAPEZOIDS - Toggles RENDER Trapezoid acceleration2650*/26512652#define NV_CTRL_ACCELERATE_TRAPEZOIDS 344 /* RW- */2653#define NV_CTRL_ACCELERATE_TRAPEZOIDS_DISABLE 02654#define NV_CTRL_ACCELERATE_TRAPEZOIDS_ENABLE 126552656/*2657* NV_CTRL_GPU_CORES - Returns number of GPU cores supported by the graphics2658* pipeline.2659*/26602661#define NV_CTRL_GPU_CORES 345 /* R--G */26622663/*2664* NV_CTRL_GPU_MEMORY_BUS_WIDTH - Returns memory bus bandwidth on the associated2665* subdevice.2666*/26672668#define NV_CTRL_GPU_MEMORY_BUS_WIDTH 346 /* R--G */26692670/*2671* NV_CTRL_GVI_TEST_MODE - This attribute controls the GVI test mode. When2672* enabled, the GVI device will generate fake data as quickly as possible. All2673* GVI settings are still valid when this is enabled (e.g., the requested video2674* format is honored and sets the video size).2675* This may be used to test the pipeline.2676*/26772678#define NV_CTRL_GVI_TEST_MODE 347 /* R--I */2679#define NV_CTRL_GVI_TEST_MODE_DISABLE 02680#define NV_CTRL_GVI_TEST_MODE_ENABLE 126812682/*2683* NV_CTRL_COLOR_SPACE - This option sets color space of the video2684* signal.2685*/2686#define NV_CTRL_COLOR_SPACE 348 /* RWDG */2687#define NV_CTRL_COLOR_SPACE_RGB 02688#define NV_CTRL_COLOR_SPACE_YCbCr422 12689#define NV_CTRL_COLOR_SPACE_YCbCr444 226902691/*2692* NV_CTRL_COLOR_RANGE - This option sets color range of the video2693* signal.2694*/2695#define NV_CTRL_COLOR_RANGE 349 /* RWDG */2696#define NV_CTRL_COLOR_RANGE_FULL 02697#define NV_CTRL_COLOR_RANGE_LIMITED 126982699/*2700* NV_CTRL_GPU_SCALING_DEFAULT_TARGET - not supported2701*2702* NV_CTRL_GPU_SCALING_DEFAULT_METHOD - not supported2703*/2704#define NV_CTRL_GPU_SCALING_DEFAULT_TARGET 350 /* R-DG */2705#define NV_CTRL_GPU_SCALING_DEFAULT_METHOD 351 /* R-DG */27062707/*2708* NV_CTRL_DITHERING_MODE - Controls the dithering mode, when2709* NV_CTRL_CURRENT_DITHERING is Enabled.2710*2711* AUTO: allow the driver to choose the dithering mode automatically.2712*2713* DYNAMIC_2X2: use a 2x2 matrix to dither from the GPU's pixel2714* pipeline to the bit depth of the flat panel. The matrix values2715* are changed from frame to frame.2716*2717* STATIC_2X2: use a 2x2 matrix to dither from the GPU's pixel2718* pipeline to the bit depth of the flat panel. The matrix values2719* do not change from frame to frame.2720*2721* TEMPORAL: use a pseudorandom value from a uniform distribution calculated at2722* every pixel to achieve stochastic dithering. This method produces a better2723* visual result than 2x2 matrix approaches.2724*/2725#define NV_CTRL_DITHERING_MODE 352 /* RWDG */2726#define NV_CTRL_DITHERING_MODE_AUTO 02727#define NV_CTRL_DITHERING_MODE_DYNAMIC_2X2 12728#define NV_CTRL_DITHERING_MODE_STATIC_2X2 22729#define NV_CTRL_DITHERING_MODE_TEMPORAL 327302731/*2732* NV_CTRL_CURRENT_DITHERING - Returns the current dithering state.2733*/2734#define NV_CTRL_CURRENT_DITHERING 353 /* R-DG */2735#define NV_CTRL_CURRENT_DITHERING_DISABLED 02736#define NV_CTRL_CURRENT_DITHERING_ENABLED 127372738/*2739* NV_CTRL_CURRENT_DITHERING_MODE - Returns the current dithering2740* mode.2741*/2742#define NV_CTRL_CURRENT_DITHERING_MODE 354 /* R-DG */2743#define NV_CTRL_CURRENT_DITHERING_MODE_NONE 02744#define NV_CTRL_CURRENT_DITHERING_MODE_DYNAMIC_2X2 12745#define NV_CTRL_CURRENT_DITHERING_MODE_STATIC_2X2 22746#define NV_CTRL_CURRENT_DITHERING_MODE_TEMPORAL 327472748/*2749* NV_CTRL_THERMAL_SENSOR_READING - Returns the thermal sensor's current2750* reading.2751*/2752#define NV_CTRL_THERMAL_SENSOR_READING 355 /* R--S */27532754/*2755* NV_CTRL_THERMAL_SENSOR_PROVIDER - Returns the hardware device that2756* provides the thermal sensor.2757*/2758#define NV_CTRL_THERMAL_SENSOR_PROVIDER 356 /* R--S */2759#define NV_CTRL_THERMAL_SENSOR_PROVIDER_NONE 02760#define NV_CTRL_THERMAL_SENSOR_PROVIDER_GPU_INTERNAL 12761#define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADM1032 22762#define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADT7461 32763#define NV_CTRL_THERMAL_SENSOR_PROVIDER_MAX6649 42764#define NV_CTRL_THERMAL_SENSOR_PROVIDER_MAX1617 52765#define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM99 62766#define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM89 72767#define NV_CTRL_THERMAL_SENSOR_PROVIDER_LM64 82768#define NV_CTRL_THERMAL_SENSOR_PROVIDER_G781 92769#define NV_CTRL_THERMAL_SENSOR_PROVIDER_ADT7473 102770#define NV_CTRL_THERMAL_SENSOR_PROVIDER_SBMAX6649 112771#define NV_CTRL_THERMAL_SENSOR_PROVIDER_VBIOSEVT 122772#define NV_CTRL_THERMAL_SENSOR_PROVIDER_OS 132773#define NV_CTRL_THERMAL_SENSOR_PROVIDER_UNKNOWN 0xFFFFFFFF27742775/*2776* NV_CTRL_THERMAL_SENSOR_TARGET - Returns what hardware component2777* the thermal sensor is measuring.2778*/2779#define NV_CTRL_THERMAL_SENSOR_TARGET 357 /* R--S */2780#define NV_CTRL_THERMAL_SENSOR_TARGET_NONE 02781#define NV_CTRL_THERMAL_SENSOR_TARGET_GPU 12782#define NV_CTRL_THERMAL_SENSOR_TARGET_MEMORY 22783#define NV_CTRL_THERMAL_SENSOR_TARGET_POWER_SUPPLY 42784#define NV_CTRL_THERMAL_SENSOR_TARGET_BOARD 82785#define NV_CTRL_THERMAL_SENSOR_TARGET_UNKNOWN 0xFFFFFFFF27862787/*2788* NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR - when TRUE, OpenGL will2789* draw information about the current MULTIGPU mode.2790*/2791#define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR 358 /* RW-X */2792#define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR_FALSE 02793#define NV_CTRL_SHOW_MULTIGPU_VISUAL_INDICATOR_TRUE 127942795/*2796* NV_CTRL_GPU_CURRENT_PROCESSOR_CLOCK_FREQS - Returns GPU's processor2797* clock freqs.2798*/2799#define NV_CTRL_GPU_CURRENT_PROCESSOR_CLOCK_FREQS 359 /* RW-G */28002801/*2802* NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS - query the flags (various information2803* for the specified NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be2804* queried with existing interfaces, the video format should be specified2805* in the display_mask field; eg:2806*2807* XNVCTRLQueryTargetAttribute(dpy,2808* NV_CTRL_TARGET_TYPE_GVI,2809* gvi,2810* NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296,2811* NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS,2812* &flags);2813*2814* Note: The NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_1080P_NO_12BPC flag is set2815* for those 1080P 3G modes (level A and B) that do not support2816* 12 bits per component (when configuring a GVI stream.)2817*/28182819#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS 360 /* R--I */2820#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_NONE 0x000000002821#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_INTERLACED 0x000000012822#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_PROGRESSIVE 0x000000022823#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_PSF 0x000000042824#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_A 0x000000082825#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_B 0x000000102826#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G \2827((NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_A) | (NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_LEVEL_B))2828#define NV_CTRL_GVIO_VIDEO_FORMAT_FLAGS_3G_1080P_NO_12BPC 0x0000002028292830/*2831* NV_CTRL_GPU_PCIE_MAX_LINK_SPEED - returns maximum PCIe link speed,2832* in gigatransfers per second (GT/s).2833*/28342835#define NV_CTRL_GPU_PCIE_MAX_LINK_SPEED 361 /* R--GI */28362837/*2838* NV_CTRL_3D_VISION_PRO_RESET_TRANSCEIVER_TO_FACTORY_SETTINGS - Resets the2839* 3D Vision Pro transceiver to its factory settings.2840*/2841#define NV_CTRL_3D_VISION_PRO_RESET_TRANSCEIVER_TO_FACTORY_SETTINGS 363 /* -W-T */28422843/*2844* NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL - Controls the channel that is2845* currently used by the 3D Vision Pro transceiver.2846*/2847#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL 364 /* RW-T */28482849/*2850* NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE - Controls the mode in which the2851* 3D Vision Pro transceiver operates.2852* NV_CTRL_3D_VISION_PRO_TM_LOW_RANGE is bidirectional2853* NV_CTRL_3D_VISION_PRO_TM_MEDIUM_RANGE is bidirectional2854* NV_CTRL_3D_VISION_PRO_TM_HIGH_RANGE may be bidirectional just up to a2855* given range, and unidirectional beyond it2856* NV_CTRL_3D_VISION_PRO_TM_COUNT is the total number of2857* 3D Vision Pro transceiver modes2858*/2859#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE 365 /* RW-T */2860#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_INVALID 02861#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_LOW_RANGE 12862#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_MEDIUM_RANGE 22863#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_HIGH_RANGE 32864#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_MODE_COUNT 428652866/*2867* NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES - controls whether updates to the color2868* lookup table (LUT) are synchronous with respect to X rendering. For example,2869* if an X client sends XStoreColors followed by XFillRectangle, the driver will2870* guarantee that the FillRectangle request is not processed until after the2871* updated LUT colors are actually visible on the screen if2872* NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES is enabled. Otherwise, the rendering may2873* occur first.2874*2875* This makes a difference for applications that use the LUT to animate, such as2876* XPilot. If you experience flickering in applications that use LUT2877* animations, try enabling this attribute.2878*2879* When synchronous updates are enabled, XStoreColors requests will be processed2880* at your screen's refresh rate.2881*/28822883#define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES 367 /* RWDG */2884#define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES_DISABLE 02885#define NV_CTRL_SYNCHRONOUS_PALETTE_UPDATES_ENABLE 128862887/*2888* NV_CTRL_DITHERING_DEPTH - Controls the dithering depth when2889* NV_CTRL_CURRENT_DITHERING is ENABLED. Some displays connected2890* to the GPU via the DVI or LVDS interfaces cannot display the2891* full color range of ten bits per channel, so the GPU will2892* dither to either 6 or 8 bits per channel.2893*/2894#define NV_CTRL_DITHERING_DEPTH 368 /* RWDG */2895#define NV_CTRL_DITHERING_DEPTH_AUTO 02896#define NV_CTRL_DITHERING_DEPTH_6_BITS 12897#define NV_CTRL_DITHERING_DEPTH_8_BITS 228982899/*2900* NV_CTRL_CURRENT_DITHERING_DEPTH - Returns the current dithering2901* depth value.2902*/2903#define NV_CTRL_CURRENT_DITHERING_DEPTH 369 /* R-DG */2904#define NV_CTRL_CURRENT_DITHERING_DEPTH_NONE 02905#define NV_CTRL_CURRENT_DITHERING_DEPTH_6_BITS 12906#define NV_CTRL_CURRENT_DITHERING_DEPTH_8_BITS 229072908/*2909* NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_FREQUENCY - Returns the2910* frequency of the channel(in kHz) of the 3D Vision Pro transceiver.2911* Use the display_mask parameter to specify the channel number.2912*/2913#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_FREQUENCY 370 /* R--T */29142915/*2916* NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_QUALITY - Returns the2917* quality of the channel(in percentage) of the 3D Vision Pro transceiver.2918* Use the display_mask parameter to specify the channel number.2919*/2920#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_QUALITY 371 /* R--T */29212922/*2923* NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_COUNT - Returns the number of2924* channels on the 3D Vision Pro transceiver.2925*/2926#define NV_CTRL_3D_VISION_PRO_TRANSCEIVER_CHANNEL_COUNT 372 /* R--T */29272928/*2929* NV_CTRL_3D_VISION_PRO_PAIR_GLASSES - Puts the 3D Vision Pro2930* transceiver into pairing mode to gather additional glasses.2931* NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_STOP - stops any pairing2932* NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON - starts continuous2933* pairing via beacon mode2934* Any other value, N - Puts the 3D Vision Pro transceiver into2935* authenticated pairing mode for N seconds.2936*/2937#define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES 373 /* -W-T */2938#define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_STOP 02939#define NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON 0xFFFFFFFF29402941/*2942* NV_CTRL_3D_VISION_PRO_UNPAIR_GLASSES - Tells a specific pair2943* of glasses to unpair. The glasses will "forget" the address2944* of the 3D Vision Pro transceiver to which they have been paired.2945* To unpair all the currently paired glasses, specify2946* the glasses id as 0.2947*/2948#define NV_CTRL_3D_VISION_PRO_UNPAIR_GLASSES 374 /* -W-T */29492950/*2951* NV_CTRL_3D_VISION_PRO_DISCOVER_GLASSES - Tells the 3D Vision Pro2952* transceiver about the glasses that have been paired using2953* NV_CTRL_3D_VISION_PRO_PAIR_GLASSES_BEACON. Unless this is done,2954* the 3D Vision Pro transceiver will not know about glasses paired in2955* beacon mode.2956*/2957#define NV_CTRL_3D_VISION_PRO_DISCOVER_GLASSES 375 /* -W-T */29582959/*2960* NV_CTRL_3D_VISION_PRO_IDENTIFY_GLASSES - Causes glasses LEDs to2961* flash for a short period of time.2962*/2963#define NV_CTRL_3D_VISION_PRO_IDENTIFY_GLASSES 376 /* -W-T */29642965/*2966* NV_CTRL_3D_VISION_PRO_GLASSES_SYNC_CYCLE - Controls the2967* sync cycle duration(in milliseconds) of the glasses.2968* Use the display_mask parameter to specify the glasses id.2969*/2970#define NV_CTRL_3D_VISION_PRO_GLASSES_SYNC_CYCLE 378 /* RW-T */29712972/*2973* NV_CTRL_3D_VISION_PRO_GLASSES_MISSED_SYNC_CYCLES - Returns the2974* number of state sync cycles recently missed by the glasses.2975* Use the display_mask parameter to specify the glasses id.2976*/2977#define NV_CTRL_3D_VISION_PRO_GLASSES_MISSED_SYNC_CYCLES 379 /* R--T */29782979/*2980* NV_CTRL_3D_VISION_PRO_GLASSES_BATTERY_LEVEL - Returns the2981* battery level(in percentage) of the glasses.2982* Use the display_mask parameter to specify the glasses id.2983*/2984#define NV_CTRL_3D_VISION_PRO_GLASSES_BATTERY_LEVEL 380 /* R--T */29852986/*2987* NV_CTRL_GVO_ANC_PARITY_COMPUTATION - Controls the SDI device's computation2988* of the parity bit (bit 8) for ANC data words.2989*/29902991#define NV_CTRL_GVO_ANC_PARITY_COMPUTATION 381 /* RW--- */2992#define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_AUTO 02993#define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_ON 12994#define NV_CTRL_GVO_ANC_PARITY_COMPUTATION_OFF 229952996/*2997* NV_CTRL_3D_VISION_PRO_GLASSES_PAIR_EVENT - This attribute is sent2998* as an event when glasses get paired in response to pair command2999* from any of the clients.3000*/3001#define NV_CTRL_3D_VISION_PRO_GLASSES_PAIR_EVENT 382 /* ---T */30023003/*3004* NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT - This attribute is sent3005* as an event when glasses get unpaired in response to unpair command3006* from any of the clients.3007*/3008#define NV_CTRL_3D_VISION_PRO_GLASSES_UNPAIR_EVENT 383 /* ---T */30093010/*3011* NV_CTRL_GPU_PCIE_CURRENT_LINK_WIDTH - returns the current3012* PCIe link width, in number of lanes.3013*/3014#define NV_CTRL_GPU_PCIE_CURRENT_LINK_WIDTH 384 /* R--GI */30153016/*3017* NV_CTRL_GPU_PCIE_CURRENT_LINK_SPEED - returns the current3018* PCIe link speed, in megatransfers per second (GT/s).3019*/3020#define NV_CTRL_GPU_PCIE_CURRENT_LINK_SPEED 385 /* R--GI */30213022/*3023* NV_CTRL_GVO_AUDIO_BLANKING - specifies whether the GVO device should delete3024* audio ancillary data packets when frames are repeated.3025*3026* When a new frame is not ready in time, the current frame, including all3027* ancillary data packets, is repeated. When this data includes audio packets,3028* this can result in stutters or clicks. When this option is enabled, the GVO3029* device will detect when frames are repeated, identify audio ancillary data3030* packets, and mark them for deletion.3031*3032* This option is applied when the GVO device is bound.3033*/3034#define NV_CTRL_GVO_AUDIO_BLANKING 386 /* RW- */3035#define NV_CTRL_GVO_AUDIO_BLANKING_DISABLE 03036#define NV_CTRL_GVO_AUDIO_BLANKING_ENABLE 130373038/*3039* NV_CTRL_CURRENT_METAMODE_ID - switch modes to the MetaMode with3040* the specified ID.3041*/3042#define NV_CTRL_CURRENT_METAMODE_ID 387 /* RW- */30433044/*3045* NV_CTRL_DISPLAY_ENABLED - Returns whether or not the display device3046* is currently enabled.3047*/3048#define NV_CTRL_DISPLAY_ENABLED 388 /* R-D */3049#define NV_CTRL_DISPLAY_ENABLED_TRUE 13050#define NV_CTRL_DISPLAY_ENABLED_FALSE 030513052#define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_DISPLAY_ENABLED30533054/**************************************************************************/30553056/*3057* String Attributes:3058*3059* String attributes can be queryied through the XNVCTRLQueryStringAttribute()3060* and XNVCTRLQueryTargetStringAttribute() function calls.3061*3062* String attributes can be set through the XNVCTRLSetStringAttribute()3063* function call. (There are currently no string attributes that can be3064* set on non-X Screen targets.)3065*3066* Unless otherwise noted, all string attributes can be queried/set using an3067* NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take an3068* NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried/set through3069* XNVCTRLQueryStringAttribute()/XNVCTRLSetStringAttribute() (Since3070* these assume an X Screen target).3071*/30723073/*3074* NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the3075* specified X screen is running.3076*3077* This attribute may be queried through XNVCTRLQueryTargetStringAttribute()3078* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3079*/30803081#define NV_CTRL_STRING_PRODUCT_NAME 0 /* R--G */30823083/*3084* NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on3085* which the specified X screen is running.3086*/30873088#define NV_CTRL_STRING_VBIOS_VERSION 1 /* R--G */30893090/*3091* NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the3092* NVIDIA driver version number for the NVIDIA X driver in use.3093*/30943095#define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION 3 /* R--G */30963097/*3098* NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device3099* specified in the display_mask argument.3100*3101* This attribute may be queried through XNVCTRLQueryTargetStringAttribute()3102* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3103*/31043105#define NV_CTRL_STRING_DISPLAY_DEVICE_NAME 4 /* R-DG */31063107/*3108* NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the3109* specified display device; only valid if the display device is a TV.3110*/31113112#define NV_CTRL_STRING_TV_ENCODER_NAME 5 /* R-DG */31133114/*3115* NV_CTRL_STRING_GVIO_FIRMWARE_VERSION - indicates the version of the3116* Firmware on the GVIO device.3117*/31183119#define NV_CTRL_STRING_GVIO_FIRMWARE_VERSION 8 /* R--I */31203121/*3122* The following is deprecated; use NV_CTRL_STRING_GVIO_FIRMWARE_VERSION,3123* instead3124*/3125#define NV_CTRL_STRING_GVO_FIRMWARE_VERSION 8 /* R-- */31263127/*3128* NV_CTRL_STRING_CURRENT_MODELINE - Return the ModeLine currently3129* being used by the specified display device.3130*3131* This attribute may be queried through XNVCTRLQueryTargetStringAttribute()3132* using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3133*3134* The ModeLine string may be prepended with a comma-separated list of3135* "token=value" pairs, separated from the ModeLine string by "::".3136* This "token=value" syntax is the same as that used in3137* NV_CTRL_BINARY_DATA_MODELINES3138*/31393140#define NV_CTRL_STRING_CURRENT_MODELINE 9 /* R-DG */31413142/*3143* NV_CTRL_STRING_ADD_MODELINE - Adds a ModeLine to the specified3144* display device. The ModeLine is not added if validation fails.3145*3146* The ModeLine string should have the same syntax as a ModeLine in3147* the X configuration file; e.g.,3148*3149* "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync3150*/31513152#define NV_CTRL_STRING_ADD_MODELINE 10 /* -WDG */31533154/*3155* NV_CTRL_STRING_DELETE_MODELINE - Deletes an existing ModeLine3156* from the specified display device. The currently selected3157* ModeLine cannot be deleted. (This also means you cannot delete3158* the last ModeLine.)3159*3160* The ModeLine string should have the same syntax as a ModeLine in3161* the X configuration file; e.g.,3162*3163* "1600x1200" 229.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync3164*/31653166#define NV_CTRL_STRING_DELETE_MODELINE 11 /* -WDG */31673168/*3169* NV_CTRL_STRING_CURRENT_METAMODE - Returns the metamode currently3170* being used by the specified X screen. The MetaMode string has the3171* same syntax as the MetaMode X configuration option, as documented3172* in the NVIDIA driver README.3173*3174* The returned string may be prepended with a comma-separated list of3175* "token=value" pairs, separated from the MetaMode string by "::".3176* This "token=value" syntax is the same as that used in3177* NV_CTRL_BINARY_DATA_METAMODES.3178*/31793180#define NV_CTRL_STRING_CURRENT_METAMODE 12 /* RW-- */3181#define NV_CTRL_STRING_CURRENT_METAMODE_VERSION_1 NV_CTRL_STRING_CURRENT_METAMODE31823183/*3184* NV_CTRL_STRING_ADD_METAMODE - Adds a MetaMode to the specified3185* X Screen.3186*3187* It is recommended to not use this attribute, but instead use3188* NV_CTRL_STRING_OPERATION_ADD_METAMODE.3189*/31903191#define NV_CTRL_STRING_ADD_METAMODE 13 /* -W-- */31923193/*3194* NV_CTRL_STRING_DELETE_METAMODE - Deletes an existing MetaMode from3195* the specified X Screen. The currently selected MetaMode cannot be3196* deleted. (This also means you cannot delete the last MetaMode).3197* The MetaMode string should have the same syntax as the MetaMode X3198* configuration option, as documented in the NVIDIA driver README.3199*/32003201#define NV_CTRL_STRING_DELETE_METAMODE 14 /* -WD-- */32023203/*3204* NV_CTRL_STRING_VCSC_PRODUCT_NAME - Querys the product name of the3205* VCSC device.3206*3207* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3208* using a NV_CTRL_TARGET_TYPE_VCSC target.3209*/32103211#define NV_CTRL_STRING_VCSC_PRODUCT_NAME 15 /* R---V */32123213/*3214* NV_CTRL_STRING_VCSC_PRODUCT_ID - Querys the product ID of the VCSC device.3215*3216* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3217* using a NV_CTRL_TARGET_TYPE_VCSC target.3218*/32193220#define NV_CTRL_STRING_VCSC_PRODUCT_ID 16 /* R---V */32213222/*3223* NV_CTRL_STRING_VCSC_SERIAL_NUMBER - Querys the unique serial number3224* of the VCS device.3225*3226* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3227* using a NV_CTRL_TARGET_TYPE_VCSC target.3228*/32293230#define NV_CTRL_STRING_VCSC_SERIAL_NUMBER 17 /* R---V */32313232/*3233* NV_CTRL_STRING_VCSC_BUILD_DATE - Querys the date of the VCS device.3234* the returned string is in the following format: "Week.Year"3235*3236* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3237* using a NV_CTRL_TARGET_TYPE_VCSC target.3238*/32393240#define NV_CTRL_STRING_VCSC_BUILD_DATE 18 /* R---V */32413242/*3243* NV_CTRL_STRING_VCSC_FIRMWARE_VERSION - Querys the firmware version3244* of the VCS device.3245*3246* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3247* using a NV_CTRL_TARGET_TYPE_VCSC target.3248*/32493250#define NV_CTRL_STRING_VCSC_FIRMWARE_VERSION 19 /* R---V */32513252/*3253* NV_CTRL_STRING_VCSC_FIRMWARE_REVISION - Querys the firmware revision3254* of the VCS device.3255*3256* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3257* using a NV_CTRL_TARGET_TYPE_VCS target.3258*/32593260#define NV_CTRL_STRING_VCSC_FIRMWARE_REVISION 20 /* R---V */32613262/*3263* NV_CTRL_STRING_VCSC_HARDWARE_VERSION - Querys the hardware version3264* of the VCS device.3265*3266* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3267* using a NV_CTRL_TARGET_TYPE_VCSC target.3268*/32693270#define NV_CTRL_STRING_VCSC_HARDWARE_VERSION 21 /* R---V */32713272/*3273* NV_CTRL_STRING_VCSC_HARDWARE_REVISION - Querys the hardware revision3274* of the VCS device.3275*3276* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3277* using a NV_CTRL_TARGET_TYPE_VCSC target.3278*/32793280#define NV_CTRL_STRING_VCSC_HARDWARE_REVISION 22 /* R---V */32813282/*3283* NV_CTRL_STRING_MOVE_METAMODE - Moves a MetaMode to the specified3284* index location. The MetaMode must already exist in the X Screen's3285* list of MetaModes (as returned by the NV_CTRL_BINARY_DATA_METAMODES3286* attribute). If the index is larger than the number of MetaModes in3287* the list, the MetaMode is moved to the end of the list. The3288* MetaMode string should have the same syntax as the MetaMode X3289* configuration option, as documented in the NVIDIA driver README.32903291* The MetaMode string must be prepended with a comma-separated list3292* of "token=value" pairs, separated from the MetaMode string by "::".3293* Currently, the only valid token is "index", which indicates where3294* in the MetaMode list the MetaMode should be moved to.3295*3296* Other tokens may be added in the future.3297*3298* E.g.,3299* "index=5 :: CRT-0: 1024x768 @1024x768 +0+0"3300*/33013302#define NV_CTRL_STRING_MOVE_METAMODE 23 /* -W-- */33033304/*3305* NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES - returns the valid3306* horizontal sync ranges used to perform mode validation for the3307* specified display device. The ranges are in the same format as the3308* "HorizSync" X config option:3309*3310* "horizsync-range may be a comma separated list of either discrete3311* values or ranges of values. A range of values is two values3312* separated by a dash."3313*3314* The values are in kHz.3315*3316* Additionally, the string may be prepended with a comma-separated3317* list of "token=value" pairs, separated from the HorizSync string by3318* "::". Valid tokens:3319*3320* Token Value3321* "source" "edid" - HorizSync is from the display device's EDID3322* "xconfig" - HorizSync is from the "HorizSync" entry in3323* the Monitor section of the X config file3324* "option" - HorizSync is from the "HorizSync" NVIDIA X3325* config option3326* "twinview" - HorizSync is from the "SecondMonitorHorizSync"3327* NVIDIA X config option3328* "builtin" - HorizSync is from NVIDIA X driver builtin3329* default values3330*3331* Additional tokens and/or values may be added in the future.3332*3333* Example: "source=edid :: 30.000-62.000"3334*/33353336#define NV_CTRL_STRING_VALID_HORIZ_SYNC_RANGES 24 /* R-DG */33373338/*3339* NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES - returns the valid3340* vertical refresh ranges used to perform mode validation for the3341* specified display device. The ranges are in the same format as the3342* "VertRefresh" X config option:3343*3344* "vertrefresh-range may be a comma separated list of either discrete3345* values or ranges of values. A range of values is two values3346* separated by a dash."3347*3348* The values are in Hz.3349*3350* Additionally, the string may be prepended with a comma-separated3351* list of "token=value" pairs, separated from the VertRefresh string by3352* "::". Valid tokens:3353*3354* Token Value3355* "source" "edid" - VertRefresh is from the display device's EDID3356* "xconfig" - VertRefresh is from the "VertRefresh" entry in3357* the Monitor section of the X config file3358* "option" - VertRefresh is from the "VertRefresh" NVIDIA X3359* config option3360* "twinview" - VertRefresh is from the "SecondMonitorVertRefresh"3361* NVIDIA X config option3362* "builtin" - VertRefresh is from NVIDIA X driver builtin3363* default values3364*3365* Additional tokens and/or values may be added in the future.3366*3367* Example: "source=edid :: 50.000-75.000"3368*/33693370#define NV_CTRL_STRING_VALID_VERT_REFRESH_RANGES 25 /* R-DG */33713372/*3373* NV_CTRL_STRING_XINERAMA_SCREEN_INFO - returns the physical X Screen's3374* initial position and size (in absolute coordinates) within the Xinerama3375* desktop as the "token=value" string: "x=#, y=#, width=#, height=#"3376*3377* Querying this attribute returns FALSE if NV_CTRL_XINERAMA is not3378* NV_CTRL_XINERAMA_ON.3379*/33803381#define NV_CTRL_STRING_XINERAMA_SCREEN_INFO 26 /* R--- */33823383/*3384* NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER - used to specify the3385* order that display devices will be returned via Xinerama when3386* nvidiaXineramaInfo is enabled. Follows the same syntax as the3387* nvidiaXineramaInfoOrder X config option.3388*/33893390#define NV_CTRL_STRING_NVIDIA_XINERAMA_INFO_ORDER 27 /* RW-- */33913392#define NV_CTRL_STRING_TWINVIEW_XINERAMA_INFO_ORDER \3393NV_CTRL_STRING_NVIDIA_XINERAMA_INFO_ORDER /* for backwards compatibility: */33943395/*3396* NV_CTRL_STRING_SLI_MODE - returns a string describing the current3397* SLI mode, if any, or FALSE if SLI is not currently enabled.3398*3399* This string should be used for informational purposes only, and3400* should not be used to distinguish between SLI modes, other than to3401* recognize when SLI is disabled (FALSE is returned) or3402* enabled (the returned string is non-NULL and describes the current3403* SLI configuration).3404*/34053406#define NV_CTRL_STRING_SLI_MODE 28 /* R---*/34073408/*3409* NV_CTRL_STRING_PERFORMANCE_MODES - returns a string with all the3410* performance modes defined for this GPU along with their associated3411* NV Clock and Memory Clock values.3412*3413* Each performance modes are returned as a comma-separated list of3414* "token=value" pairs. Each set of performance mode tokens are separated3415* by a ";". Valid tokens:3416*3417* Token Value3418* "perf" integer - the Performance level3419* "nvclock" integer - the GPU clocks (in MHz) for the perf level3420* "memclock" integer - the memory clocks (in MHz) for the perf level3421*3422*3423* Example:3424*3425* perf=0, nvclock=500, memclock=505 ; perf=1, nvclock=650, memclock=5053426*3427* This attribute may be queried through XNVCTRLQueryTargetStringAttribute()3428* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3429*/34303431#define NV_CTRL_STRING_PERFORMANCE_MODES 29 /* R--G */34323433/*3434* NV_CTRL_STRING_VCSC_FAN_STATUS - returns a string with status of all the3435* fans in the Visual Computing System, if such a query is supported. Fan3436* information is reported along with its tachometer reading (in RPM) and a3437* flag indicating whether the fan has failed or not.3438*3439* Valid tokens:3440*3441* Token Value3442* "fan" integer - the Fan index3443* "speed" integer - the tachometer reading of the fan in rpm3444* "fail" integer - flag to indicate whether the fan has failed3445*3446* Example:3447*3448* fan=0, speed=694, fail=0 ; fan=1, speed=693, fail=03449*3450* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3451* using a NV_CTRL_TARGET_TYPE_VCSC target.3452*3453*/34543455#define NV_CTRL_STRING_VCSC_FAN_STATUS 30 /* R---V */34563457/*3458* NV_CTRL_STRING_VCSC_TEMPERATURES - returns a string with all Temperature3459* readings in the Visual Computing System, if such a query is supported.3460* Intake, Exhaust and Board Temperature values are reported in Celcius.3461*3462* Valid tokens:3463*3464* Token Value3465* "intake" integer - the intake temperature for the VCS3466* "exhaust" integer - the exhaust temperature for the VCS3467* "board" integer - the board temperature of the VCS3468*3469* Example:3470*3471* intake=29, exhaust=46, board=413472*3473* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3474* using a NV_CTRL_TARGET_TYPE_VCSC target.3475*3476*/34773478#define NV_CTRL_STRING_VCSC_TEMPERATURES 31 /* R---V */34793480/*3481* NV_CTRL_STRING_VCSC_PSU_INFO - returns a string with all Power Supply Unit3482* related readings in the Visual Computing System, if such a query is3483* supported. Current in amperes, Power in watts, Voltage in volts and PSU3484* state may be reported. Not all PSU types support all of these values, and3485* therefore some readings may be unknown.3486*3487* Valid tokens:3488*3489* Token Value3490* "current" integer - the current drawn in amperes by the VCS3491* "power" integer - the power drawn in watts by the VCS3492* "voltage" integer - the voltage reading of the VCS3493* "state" integer - flag to indicate whether PSU is operating normally3494*3495* Example:3496*3497* current=10, power=15, voltage=unknown, state=normal3498*3499* This attribute must be queried through XNVCTRLQueryTargetStringAttribute()3500* using a NV_CTRL_TARGET_TYPE_VCSC target.3501*3502*/35033504#define NV_CTRL_STRING_VCSC_PSU_INFO 32 /* R---V */35053506/*3507* NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME - query the name for the specified3508* NV_CTRL_GVIO_VIDEO_FORMAT_*. So that this can be queried with existing3509* interfaces, XNVCTRLQueryStringAttribute() should be used, and the video3510* format specified in the display_mask field; eg:3511*3512* XNVCTRLQueryStringAttribute(dpy,3513* screen,3514* NV_CTRL_GVIO_VIDEO_FORMAT_720P_60_00_SMPTE296,3515* NV_CTRL_GVIO_VIDEO_FORMAT_NAME,3516* &name);3517*/35183519#define NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME 33 /* R--GI */35203521/*3522* The following is deprecated; use NV_CTRL_STRING_GVIO_VIDEO_FORMAT_NAME,3523* instead3524*/3525#define NV_CTRL_STRING_GVO_VIDEO_FORMAT_NAME 33 /* R--- */35263527/*3528* NV_CTRL_STRING_GPU_CURRENT_CLOCK_FREQS - returns a string with the3529* associated NV Clock, Memory Clock and Processor Clock values.3530*3531* Current valid tokens are "nvclock", "memclock", and "processorclock".3532* Not all tokens will be reported on all GPUs, and additional tokens3533* may be added in the future.3534*3535* Clock values are returned as a comma-separated list of3536* "token=value" pairs.3537* Valid tokens:3538*3539* Token Value3540* "nvclock" integer - the GPU clocks (in MHz) for the current3541* perf level3542* "memclock" integer - the memory clocks (in MHz) for the current3543* perf level3544* "processorclock" integer - the processor clocks (in MHz) for the perf level3545*3546*3547* Example:3548*3549* nvclock=459, memclock=400, processorclock=9183550*3551* This attribute may be queried through XNVCTRLQueryTargetStringAttribute()3552* using an NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3553*/35543555#define NV_CTRL_STRING_GPU_CURRENT_CLOCK_FREQS 34 /* RW-G */35563557/*3558* NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_HARDWARE_REVISION - Returns the3559* hardware revision of the 3D Vision Pro transceiver.3560*/3561#define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_HARDWARE_REVISION 35 /* R--T */35623563/*3564* NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_A - Returns the3565* firmware version of chip A of the 3D Vision Pro transceiver.3566*/3567#define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_A 36 /* R--T */35683569/*3570* NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_A - Returns the3571* date of the firmware of chip A of the 3D Vision Pro transceiver.3572*/3573#define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_A 37 /* R--T */35743575/*3576* NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_B - Returns the3577* firmware version of chip B of the 3D Vision Pro transceiver.3578*/3579#define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_VERSION_B 38 /* R--T */35803581/*3582* NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_B - Returns the3583* date of the firmware of chip B of the 3D Vision Pro transceiver.3584*/3585#define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_FIRMWARE_DATE_B 39 /* R--T */35863587/*3588* NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_ADDRESS - Returns the RF address3589* of the 3D Vision Pro transceiver.3590*/3591#define NV_CTRL_STRING_3D_VISION_PRO_TRANSCEIVER_ADDRESS 40 /* R--T */35923593/*3594* NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_VERSION_A - Returns the3595* firmware version of chip A of the glasses.3596* Use the display_mask parameter to specify the glasses id.3597*/3598#define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_VERSION_A 41 /* R--T */35993600/*3601* NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_DATE_A - Returns the3602* date of the firmware of chip A of the glasses.3603* Use the display_mask parameter to specify the glasses id.3604*/3605#define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_FIRMWARE_DATE_A 42 /* R--T */36063607/*3608* NV_CTRL_STRING_3D_VISION_PRO_GLASSES_ADDRESS - Returns the RF address3609* of the glasses.3610* Use the display_mask parameter to specify the glasses id.3611*/3612#define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_ADDRESS 43 /* R--T */36133614/*3615* NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME - Controls the name the3616* glasses should use.3617* Use the display_mask parameter to specify the glasses id.3618* Glasses' name should start and end with an alpha-numeric character.3619*/3620#define NV_CTRL_STRING_3D_VISION_PRO_GLASSES_NAME 44 /* RW-T */36213622/*3623* NV_CTRL_STRING_CURRENT_METAMODE_VERSION_2 - Returns the metamode currently3624* being used by the specified X screen. The MetaMode string has the same3625* syntax as the MetaMode X configuration option, as documented in the NVIDIA3626* driver README. Also, see NV_CTRL_BINARY_DATA_METAMODES_VERSION_2 for more3627* details on the base syntax.3628*3629* The returned string may also be prepended with a comma-separated list of3630* "token=value" pairs, separated from the MetaMode string by "::".3631*/3632#define NV_CTRL_STRING_CURRENT_METAMODE_VERSION_2 45 /* RW-- */36333634/*3635* NV_CTRL_STRING_DISPLAY_NAME_TYPE_BASENAME - Returns a type name for the3636* display device ("CRT", "DFP", or "TV"). However, note that the determination3637* of the name is based on the protocol through which the X driver communicates3638* to the display device. E.g., if the driver communicates using VGA ,then the3639* basename is "CRT"; if the driver communicates using TMDS, LVDS, or DP, then3640* the name is "DFP".3641*/3642#define NV_CTRL_STRING_DISPLAY_NAME_TYPE_BASENAME 46 /* R-D- */36433644/*3645* NV_CTRL_STRING_DISPLAY_NAME_TYPE_ID - Returns the type-based name + ID for3646* the display device, e.g. "CRT-0", "DFP-1", "TV-2". If this device is a3647* DisplayPort 1.2 device, then this name will also be prepended with the3648* device's port address like so: "DFP-1.0.1.2.3". See3649* NV_CTRL_STRING_DISPLAY_NAME_TYPE_BASENAME for more information about the3650* construction of type-based names.3651*/3652#define NV_CTRL_STRING_DISPLAY_NAME_TYPE_ID 47 /* R-D- */36533654/*3655* NV_CTRL_STRING_DISPLAY_NAME_DP_GUID - Returns the GUID of the DisplayPort3656* display device. e.g. "DP-GUID-f16a5bde-79f3-11e1-b2ae-8b5a8969ba9c"3657*3658* The display device must be a DisplayPort 1.2 device.3659*/3660#define NV_CTRL_STRING_DISPLAY_NAME_DP_GUID 48 /* R-D- */36613662/*3663* NV_CTRL_STRING_DISPLAY_NAME_EDID_HASH - Returns the SHA-1 hash of the3664* display device's EDID in 8-4-4-4-12 UID format. e.g.3665* "DPY-EDID-f16a5bde-79f3-11e1-b2ae-8b5a8969ba9c"3666*3667* The display device must have a valid EDID.3668*/3669#define NV_CTRL_STRING_DISPLAY_NAME_EDID_HASH 49 /* R-D- */36703671/*3672* NV_CTRL_STRING_DISPLAY_NAME_TARGET_INDEX - Returns the current NV-CONTROL3673* target ID (name) of the display device. e.g. "DPY-1", "DPY-4"3674*3675* This name for the display device is not guarenteed to be the same between3676* different runs of the X server.3677*/3678#define NV_CTRL_STRING_DISPLAY_NAME_TARGET_INDEX 50 /* R-D- */36793680/*3681* NV_CTRL_STRING_DISPLAY_NAME_RANDR - Returns the RandR output name for the3682* display device. e.g. "VGA-1", "DVI-I-0", "DVI-D-3", "LVDS-1", "DP-2",3683* "HDMI-3", "eDP-6". This name should match If this device is a DisplayPort3684* 1.2 device, then this name will also be prepended with the device's port3685* address like so: "DVI-I-3.0.1.2.3"3686*/3687#define NV_CTRL_STRING_DISPLAY_NAME_RANDR 51 /* R-D- */36883689#define NV_CTRL_STRING_LAST_ATTRIBUTE NV_CTRL_STRING_DISPLAY_NAME_RANDR36903691/**************************************************************************/36923693/*3694* Binary Data Attributes:3695*3696* Binary data attributes can be queryied through the XNVCTRLQueryBinaryData()3697* and XNVCTRLQueryTargetBinaryData() function calls.3698*3699* There are currently no binary data attributes that can be set.3700*3701* Unless otherwise noted, all Binary data attributes can be queried3702* using an NV_CTRL_TARGET_TYPE_X_SCREEN target. Attributes that cannot take3703* an NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried through3704* XNVCTRLQueryBinaryData() (Since an X Screen target is assumed).3705*/37063707/*3708* NV_CTRL_BINARY_DATA_EDID - Returns a display device's EDID information3709* data.3710*3711* This attribute may be queried through XNVCTRLQueryTargetBinaryData()3712* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3713*/37143715#define NV_CTRL_BINARY_DATA_EDID 0 /* R-DG */37163717/*3718* NV_CTRL_BINARY_DATA_MODELINES - Returns a display device's supported3719* ModeLines. ModeLines are returned in a buffer, separated by a single3720* '\0' and terminated by two consecutive '\0' s like so:3721*3722* "ModeLine 1\0ModeLine 2\0ModeLine 3\0Last ModeLine\0\0"3723*3724* This attribute may be queried through XNVCTRLQueryTargetBinaryData()3725* using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.3726*3727* Each ModeLine string may be prepended with a comma-separated list3728* of "token=value" pairs, separated from the ModeLine string with a3729* "::". Valid tokens:3730*3731* Token Value3732* "source" "xserver" - the ModeLine is from the core X server3733* "xconfig" - the ModeLine was specified in the X config file3734* "builtin" - the NVIDIA driver provided this builtin ModeLine3735* "vesa" - this is a VESA standard ModeLine3736* "edid" - the ModeLine was in the display device's EDID3737* "nv-control" - the ModeLine was specified via NV-CONTROL3738*3739* "xconfig-name" - for ModeLines that were specified in the X config3740* file, this is the name the X config file3741* gave for the ModeLine.3742*3743* Note that a ModeLine can have several sources; the "source" token3744* can appear multiple times in the "token=value" pairs list.3745* Additional source values may be specified in the future.3746*3747* Additional tokens may be added in the future, so it is recommended3748* that any token parser processing the returned string from3749* NV_CTRL_BINARY_DATA_MODELINES be implemented to gracefully ignore3750* unrecognized tokens.3751*3752* E.g.,3753*3754* "source=xserver, source=vesa, source=edid :: "1024x768_70" 75.0 1024 1048 1184 1328 768 7713755* 777 806 -HSync -VSync"3756* "source=xconfig, xconfig-name=1600x1200_60.00 :: "1600x1200_60_0" 161.0 1600 1704 1880 21603757* 1200 1201 1204 1242 -HSync +VSync"3758*/37593760#define NV_CTRL_BINARY_DATA_MODELINES 1 /* R-DG */37613762/*3763* NV_CTRL_BINARY_DATA_METAMODES - Returns an X Screen's supported3764* MetaModes. MetaModes are returned in a buffer separated by a3765* single '\0' and terminated by two consecutive '\0' s like so:3766*3767* "MetaMode 1\0MetaMode 2\0MetaMode 3\0Last MetaMode\0\0"3768*3769* The MetaMode string should have the same syntax as the MetaMode X3770* configuration option, as documented in the NVIDIA driver README.37713772* Each MetaMode string may be prepended with a comma-separated list3773* of "token=value" pairs, separated from the MetaMode string with3774* "::". Currently, valid tokens are:3775*3776* Token Value3777* "id" <number> - the id of this MetaMode; this is stored in3778* the Vertical Refresh field, as viewed3779* by the XRandR and XF86VidMode X *3780* extensions.3781*3782* "switchable" "yes"/"no" - whether this MetaMode may be switched to via3783* ctrl-alt-+/-; Implicit MetaModes (see3784* the "IncludeImplicitMetaModes" X3785* config option), for example, are not3786* normally made available through3787* ctrl-alt-+/-.3788*3789* "source" "xconfig" - the MetaMode was specified in the X3790* config file.3791* "implicit" - the MetaMode was implicitly added; see the3792* "IncludeImplicitMetaModes" X config option3793* for details.3794* "nv-control" - the MetaMode was added via the NV-CONTROL X3795* extension to the currently running X server.3796* "RandR" - the MetaMode was modified in response to an3797* RandR RRSetCrtcConfig request.3798*3799* Additional tokens may be added in the future, so it is recommended3800* that any token parser processing the returned string from3801* NV_CTRL_BINARY_DATA_METAMODES be implemented to gracefully ignore3802* unrecognized tokens.3803*3804* E.g.,3805*3806* "id=50, switchable=yes, source=xconfig :: CRT-0: 1024x768 @1024x768 +0+0"3807*/38083809#define NV_CTRL_BINARY_DATA_METAMODES 2 /* R-D- */3810#define NV_CTRL_BINARY_DATA_METAMODES_VERSION_1 NV_CTRL_BINARY_DATA_METAMODES38113812/*3813* NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU - Returns the list of X3814* screens currently driven by the given GPU.3815*3816* The format of the returned data is:3817*3818* 4 CARD32 number of screens3819* 4 * n CARD32 screen indices3820*3821* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3822* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be3823* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.3824*/38253826#define NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU 3 /* R-DG */38273828/*3829* NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN - Returns the list of GPUs3830* currently in use by the given X screen.3831*3832* The format of the returned data is:3833*3834* 4 CARD32 number of GPUs3835* 4 * n CARD32 GPU indices3836*/38373838#define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN 4 /* R--- */38393840/*3841* NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK - Returns the list of3842* GPUs currently connected to the given frame lock board.3843*3844* The format of the returned data is:3845*3846* 4 CARD32 number of GPUs3847* 4 * n CARD32 GPU indices3848*3849* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3850* using a NV_CTRL_TARGET_TYPE_FRAMELOCK target. This attribute cannot be3851* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.3852*/38533854#define NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK 5 /* R-DF */38553856/*3857* NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT - Returns the Display Device's3858* viewport box into the given X Screen (in X Screen coordinates.)3859*3860* The format of the returned data is:3861*3862* 4 CARD32 Offset X3863* 4 CARD32 Offset Y3864* 4 CARD32 Width3865* 4 CARD32 Height3866*/38673868#define NV_CTRL_BINARY_DATA_DISPLAY_VIEWPORT 6 /* R-DG */38693870/*3871* NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU - Returns the list of3872* Framelock devices currently connected to the given GPU.3873*3874* The format of the returned data is:3875*3876* 4 CARD32 number of Framelocks3877* 4 * n CARD32 Framelock indices3878*3879* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3880* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be3881* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.3882*/38833884#define NV_CTRL_BINARY_DATA_FRAMELOCKS_USED_BY_GPU 7 /* R-DG */38853886/*3887* NV_CTRL_BINARY_DATA_GPUS_USING_VCSC - Returns the list of3888* GPU devices connected to the given VCS.3889*3890* The format of the returned data is:3891*3892* 4 CARD32 number of GPUs3893* 4 * n CARD32 GPU indices3894*3895* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3896* using a NV_CTRL_TARGET_TYPE_VCSC target. This attribute cannot be3897* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN and cannot be queried using3898* a NV_CTRL_TARGET_TYPE_X_GPU3899*/39003901#define NV_CTRL_BINARY_DATA_GPUS_USING_VCSC 8 /* R-DV */39023903/*3904* NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU - Returns the VCSC device3905* that is controlling the given GPU.3906*3907* The format of the returned data is:3908*3909* 4 CARD32 number of VCS (always 1)3910* 4 * n CARD32 VCS indices3911*3912* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3913* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be3914* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN3915*/39163917#define NV_CTRL_BINARY_DATA_VCSCS_USED_BY_GPU 9 /* R-DG */39183919/*3920* NV_CTRL_BINARY_DATA_COOLERS_USED_BY_GPU - Returns the coolers that3921* are cooling the given GPU.3922*3923* The format of the returned data is:3924*3925* 4 CARD32 number of COOLER3926* 4 * n CARD32 COOLER indices3927*3928* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3929* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be3930* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN3931*/39323933#define NV_CTRL_BINARY_DATA_COOLERS_USED_BY_GPU 10 /* R-DG */39343935/*3936* NV_CTRL_BINARY_DATA_GPUS_USED_BY_LOGICAL_XSCREEN - Returns the list of3937* GPUs currently driving the given X screen. If Xinerama is enabled, this3938* will return all GPUs that are driving any X screen.3939*3940* The format of the returned data is:3941*3942* 4 CARD32 number of GPUs3943* 4 * n CARD32 GPU indices3944*/39453946#define NV_CTRL_BINARY_DATA_GPUS_USED_BY_LOGICAL_XSCREEN 11 /* R--- */39473948/*3949* NV_CTRL_BINARY_DATA_THERMAL_SENSORS_USED_BY_GPU - Returns the sensors that3950* are attached to the given GPU.3951*3952* The format of the returned data is:3953*3954* 4 CARD32 number of SENSOR3955* 4 * n CARD32 SENSOR indices3956*3957* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3958* using a NV_CTRL_TARGET_TYPE_GPU target. This attribute cannot be3959* queried using a NV_CTRL_TARGET_TYPE_X_SCREEN3960*/39613962#define NV_CTRL_BINARY_DATA_THERMAL_SENSORS_USED_BY_GPU 12 /* R--G */39633964/*3965* NV_CTRL_BINARY_DATA_GLASSES_PAIRED_TO_3D_VISION_PRO_TRANSCEIVER - Returns3966* the id of the glasses that are currently paired to the given3967* 3D Vision Pro transceiver.3968*3969* The format of the returned data is:3970*3971* 4 CARD32 number of glasses3972* 4 * n CARD32 id of glasses3973*3974* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()3975* using a NV_CTRL_TARGET_TYPE_3D_VISION_PRO_TRANSCEIVER target.3976*/3977#define NV_CTRL_BINARY_DATA_GLASSES_PAIRED_TO_3D_VISION_PRO_TRANSCEIVER 13 /* R--T */39783979/*3980* NV_CTRL_BINARY_DATA_DISPLAY_TARGETS - Returns all the display devices3981* currently connected to any GPU on the X server.3982*3983* The format of the returned data is:3984*3985* 4 CARD32 number of display devices3986* 4 * n CARD32 display device indices3987*3988* This attribute can only be queried through XNVCTRLQueryTargetBinaryData().3989*/39903991#define NV_CTRL_BINARY_DATA_DISPLAY_TARGETS 14 /* R--- */39923993/*3994* NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU - Returns the list of3995* display devices that are connected to the GPU target.3996*3997* The format of the returned data is:3998*3999* 4 CARD32 number of display devices4000* 4 * n CARD32 display device indices4001*4002* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()4003* using a NV_CTRL_TARGET_TYPE_GPU target.4004*/40054006#define NV_CTRL_BINARY_DATA_DISPLAYS_CONNECTED_TO_GPU 15 /* R--G */40074008/*4009* NV_CTRL_BINARY_DATA_METAMODES_VERSION_2 - Returns values similar to4010* NV_CTRL_BINARY_DATA_METAMODES(_VERSION_1) but also returns extended syntax4011* information to indicate a specific display device, as well as other per-4012* display deviceflags as "token=value" pairs. For example:4013*4014* "DPY-1: 1280x1024 {Stereo=PassiveLeft},4015* DPY-2: 1280x1024 {Stereo=PassiveRight},"4016*4017* The display device names have the form "DPY-%d", where the integer4018* part of the name is the NV-CONTROL target ID for that display device4019* for this instance of the X server. Note that display device NV-CONTROL4020* target IDs are not guaranteed to be the same from one run of the X4021* server to the next.4022*/40234024#define NV_CTRL_BINARY_DATA_METAMODES_VERSION_2 16 /* R-D- */40254026/*4027* NV_CTRL_BINARY_DATA_DISPLAYS_ENABLED_ON_XSCREEN - Returns the list of4028* display devices that are currently scanning out the X screen target.4029*4030* The format of the returned data is:4031*4032* 4 CARD32 number of display devices4033* 4 * n CARD32 display device indices4034*4035* This attribute can only be queried through XNVCTRLQueryTargetBinaryData()4036* using a NV_CTRL_TARGET_TYPE_X_SCREEN target.4037*/40384039#define NV_CTRL_BINARY_DATA_DISPLAYS_ENABLED_ON_XSCREEN 17 /* R--- */40404041#define NV_CTRL_BINARY_DATA_LAST_ATTRIBUTE NV_CTRL_BINARY_DATA_DISPLAYS_ENABLED_ON_XSCREEN40424043/**************************************************************************/40444045/*4046* String Operation Attributes:4047*4048* These attributes are used with the XNVCTRLStringOperation()4049* function; a string is specified as input, and a string is returned4050* as output.4051*4052* Unless otherwise noted, all attributes can be operated upon using4053* an NV_CTRL_TARGET_TYPE_X_SCREEN target.4054*/40554056/*4057* NV_CTRL_STRING_OPERATION_ADD_METAMODE - provide a MetaMode string4058* as input, and returns a string containing comma-separated list of4059* "token=value" pairs as output. Currently, the only output token is4060* "id", which indicates the id that was assigned to the MetaMode.4061*4062* All ModeLines referenced in the MetaMode must already exist for4063* each display device (as returned by the4064* NV_CTRL_BINARY_DATA_MODELINES attribute).4065*4066* The MetaMode string should have the same syntax as the MetaMode X4067* configuration option, as documented in the NVIDIA driver README.4068*4069* The input string can optionally be prepended with a string of4070* comma-separated "token=value" pairs, separated from the MetaMode4071* string by "::". Currently, the only valid token is "index" which4072* indicates the insertion index for the MetaMode.4073*4074* E.g.,4075*4076* Input: "index=5 :: 1600x1200+0+0, 1600x1200+1600+0"4077* Output: "id=58"4078*4079* which causes the MetaMode to be inserted at position 5 in the4080* MetaMode list (all entries after 5 will be shifted down one slot in4081* the list), and the X server's containing mode stores 58 as the4082* VRefresh, so that the MetaMode can be uniquely identifed through4083* XRandR and XF86VidMode.4084*/40854086#define NV_CTRL_STRING_OPERATION_ADD_METAMODE 040874088/*4089* NV_CTRL_STRING_OPERATION_GTF_MODELINE - provide as input a string4090* of comma-separated "token=value" pairs, and returns a ModeLine4091* string, computed using the GTF formula using the parameters from4092* the input string. Valid tokens for the input string are "width",4093* "height", and "refreshrate".4094*4095* E.g.,4096*4097* Input: "width=1600, height=1200, refreshrate=60"4098* Output: "160.96 1600 1704 1880 2160 1200 1201 1204 1242 -HSync +VSync"4099*4100* This operation does not have any impact on any display device's4101* modePool, and the ModeLine is not validated; it is simply intended4102* for generating ModeLines.4103*/41044105#define NV_CTRL_STRING_OPERATION_GTF_MODELINE 141064107/*4108* NV_CTRL_STRING_OPERATION_CVT_MODELINE - provide as input a string4109* of comma-separated "token=value" pairs, and returns a ModeLine4110* string, computed using the CVT formula using the parameters from4111* the input string. Valid tokens for the input string are "width",4112* "height", "refreshrate", and "reduced-blanking". The4113* "reduced-blanking" argument can be "0" or "1", to enable or disable4114* use of reduced blanking for the CVT formula.4115*4116* E.g.,4117*4118* Input: "width=1600, height=1200, refreshrate=60, reduced-blanking=1"4119* Output: "130.25 1600 1648 1680 1760 1200 1203 1207 1235 +HSync -VSync"4120*4121* This operation does not have any impact on any display device's4122* modePool, and the ModeLine is not validated; it is simply intended4123* for generating ModeLines.4124*/41254126#define NV_CTRL_STRING_OPERATION_CVT_MODELINE 241274128/*4129* NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL - build a ModePool for the4130* specified display device on the specified target (either an X4131* screen or a GPU). This is typically used to generate a ModePool4132* for a display device on a GPU on which no X screens are present.4133*4134* Currently, a display device's ModePool is static for the life of4135* the X server, so XNVCTRLStringOperation will return FALSE if4136* requested to build a ModePool on a display device that already has4137* a ModePool.4138*4139* The string input to BUILD_MODEPOOL may be NULL. If it is not NULL,4140* then it is interpreted as a double-colon ("::") separated list4141* of "option=value" pairs, where the options and the syntax of their4142* values are the X configuration options that impact the behavior of4143* modePool construction; namely:4144*4145* "ModeValidation"4146* "HorizSync"4147* "VertRefresh"4148* "FlatPanelProperties"4149* "TVStandard"4150* "ExactModeTimingsDVI"4151* "UseEdidFreqs"4152*4153* An example input string might look like:4154*4155* "ModeValidation=NoVesaModes :: HorizSync=50-110 :: VertRefresh=50-150"4156*4157* This request currently does not return a string.4158*/41594160#define NV_CTRL_STRING_OPERATION_BUILD_MODEPOOL 3 /* DG */41614162/*4163* NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS - Configure the streams-4164* to-jack+channel topology for a GVI (Graphics capture board).4165*4166* The string input to GVI_CONFIGURE_STREAMS may be NULL. If this is the4167* case, then the current topology is returned.4168*4169* If the input string to GVI_CONFIGURE_STREAMS is not NULL, the string4170* is interpreted as a semicolon (";") separated list of comma-separated4171* lists of "option=value" pairs that define a stream's composition. The4172* available options and their values are:4173*4174* "stream": Defines which stream this comma-separated list describes.4175* Valid values are the integers between 0 and4176* NV_CTRL_GVI_NUM_STREAMS-1 (inclusive).4177*4178* "linkN": Defines a jack+channel pair to use for the given link N.4179* Valid options are the string "linkN", where N is an integer4180* between 0 and NV_CTRL_GVI_MAX_LINKS_PER_STREAM-1 (inclusive).4181* Valid values for these options are strings of the form4182* "jackX" and/or "jackX.Y", where X is an integer between 0 and4183* NV_CTRL_GVI_NUM_JACKS-1 (inclusive), and Y (optional) is an4184* integer between 0 and NV_CTRL_GVI_MAX_CHANNELS_PER_JACK-14185* (inclusive).4186*4187* An example input string might look like:4188*4189* "stream=0, link0=jack0, link1=jack1; stream=1, link0=jack2.1"4190*4191* This example specifies two streams, stream 0 and stream 1. Stream 04192* is defined to capture link0 data from the first channel (channel 0) of4193* BNC jack 0 and link1 data from the first channel of BNC jack 1. The4194* second stream (Stream 1) is defined to capture link0 data from channel 14195* (second channel) of BNC jack 2.4196*4197* This example shows a possible configuration for capturing 3G input:4198*4199* "stream=0, link0=jack0.0, link1=jack0.1"4200*4201* Applications should query the following attributes to determine4202* possible combinations:4203*4204* NV_CTRL_GVI_MAX_STREAMS4205* NV_CTRL_GVI_MAX_LINKS_PER_STREAM4206* NV_CTRL_GVI_NUM_JACKS4207* NV_CTRL_GVI_MAX_CHANNELS_PER_JACK4208*4209* Note: A jack+channel pair can only be tied to one link/stream.4210*4211* Upon successful configuration or querying of this attribute, a string4212* representing the current topology for all known streams on the device4213* will be returned. On failure, NULL is returned.4214*4215* Note: Setting this attribute may also result in the following4216* NV-CONTROL attributes being reset on the GVI device (to ensure4217* the configuration remains valid):4218* NV_CTRL_GVIO_REQUESTED_VIDEO_FORMAT4219* NV_CTRL_GVI_REQUESTED_STREAM_BITS_PER_COMPONENT4220* NV_CTRL_GVI_REQUESTED_STREAM_COMPONENT_SAMPLING4221*/42224223#define NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS 4 /* RW-I */42244225#define NV_CTRL_STRING_OPERATION_LAST_ATTRIBUTE NV_CTRL_STRING_OPERATION_GVI_CONFIGURE_STREAMS42264227/**************************************************************************/42284229/*4230* CTRLAttributeValidValuesRec -4231*4232* structure and related defines used by4233* XNVCTRLQueryValidAttributeValues() to describe the valid values of4234* a particular attribute. The type field will be one of:4235*4236* ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there4237* is no fixed range of valid values.4238*4239* ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value,4240* interpretted as a bitmask.4241*4242* ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are4243* either 1 (on/true) or 0 (off/false).4244*4245* ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value4246* between NVCTRLAttributeValidValues.u.range.min and4247* NVCTRLAttributeValidValues.u.range.max (inclusive).4248*4249* ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain4250* integer values, indicated by which bits in4251* NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit4252* 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid4253* value, etc). This is useful for attributes like NV_CTRL_FSAA_MODE,4254* which can only have certain values, depending on GPU.4255*4256* ATTRIBUTE_TYPE_64BIT_INTEGER : the attribute is a 64 bit integer value;4257* there is no fixed range of valid values.4258*4259* ATTRIBUTE_TYPE_STRING : the attribute is a string value; there is no fixed4260* range of valid values.4261*4262* ATTRIBUTE_TYPE_BINARY_DATA : the attribute is binary data; there is4263* no fixed range of valid values.4264*4265* ATTRIBUTE_TYPE_STRING_OPERATION : the attribute is a string; there is4266* no fixed range of valid values.4267*4268*4269* The permissions field of NVCTRLAttributeValidValuesRec is a bitmask4270* that may contain:4271*4272* ATTRIBUTE_TYPE_READ - Attribute may be read (queried.)4273* ATTRIBUTE_TYPE_WRITE - Attribute may be written to (set.)4274* ATTRIBUTE_TYPE_DISPLAY - Attribute is valid for display target types4275* (requires a display_mask if queried via4276* a GPU or X screen.)4277* ATTRIBUTE_TYPE_GPU - Attribute is valid for GPU target types.4278* ATTRIBUTE_TYPE_FRAMELOCK - Attribute is valid for Frame Lock target types.4279* ATTRIBUTE_TYPE_X_SCREEN - Attribute is valid for X Screen target types.4280* ATTRIBUTE_TYPE_XINERAMA - Attribute will be made consistent for all4281* X Screens when the Xinerama extension is enabled.4282* ATTRIBUTE_TYPE_VCSC - Attribute is valid for Visual Computing System4283* target types.4284* ATTRIBUTE_TYPE_GVI - Attribute is valid for Graphics Video In target4285* types.4286* ATTRIBUTE_TYPE_COOLER - Attribute is valid for Cooler target types.4287* ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER - Attribute is valid for 3D Vision4288* Pro Transceiver target types.4289*4290* See 'Key to Integer Attribute "Permissions"' at the top of this4291* file for a description of what these permission bits mean.4292*/42934294#define ATTRIBUTE_TYPE_UNKNOWN 04295#define ATTRIBUTE_TYPE_INTEGER 14296#define ATTRIBUTE_TYPE_BITMASK 24297#define ATTRIBUTE_TYPE_BOOL 34298#define ATTRIBUTE_TYPE_RANGE 44299#define ATTRIBUTE_TYPE_INT_BITS 54300#define ATTRIBUTE_TYPE_64BIT_INTEGER 64301#define ATTRIBUTE_TYPE_STRING 74302#define ATTRIBUTE_TYPE_BINARY_DATA 84303#define ATTRIBUTE_TYPE_STRING_OPERATION 943044305#define ATTRIBUTE_TYPE_READ 0x0014306#define ATTRIBUTE_TYPE_WRITE 0x0024307#define ATTRIBUTE_TYPE_DISPLAY 0x0044308#define ATTRIBUTE_TYPE_GPU 0x0084309#define ATTRIBUTE_TYPE_FRAMELOCK 0x0104310#define ATTRIBUTE_TYPE_X_SCREEN 0x0204311#define ATTRIBUTE_TYPE_XINERAMA 0x0404312#define ATTRIBUTE_TYPE_VCSC 0x0804313#define ATTRIBUTE_TYPE_GVI 0x1004314#define ATTRIBUTE_TYPE_COOLER 0x2004315#define ATTRIBUTE_TYPE_THERMAL_SENSOR 0x4004316#define ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER 0x80043174318#define ATTRIBUTE_TYPE_ALL_TARGETS \4319((ATTRIBUTE_TYPE_DISPLAY) | (ATTRIBUTE_TYPE_GPU) | (ATTRIBUTE_TYPE_FRAMELOCK) | \4320(ATTRIBUTE_TYPE_X_SCREEN) | (ATTRIBUTE_TYPE_VCSC) | (ATTRIBUTE_TYPE_GVI) | \4321(ATTRIBUTE_TYPE_COOLER) | (ATTRIBUTE_TYPE_THERMAL_SENSOR) | \4322(ATTRIBUTE_TYPE_3D_VISION_PRO_TRANSCEIVER))43234324typedef struct _NVCTRLAttributeValidValues4325{4326int type;4327union4328{4329struct4330{4331int64_t min;4332int64_t max;4333} range;4334struct4335{4336unsigned int ints;4337} bits;4338} u;4339unsigned int permissions;4340} NVCTRLAttributeValidValuesRec;43414342typedef struct _NVCTRLAttributePermissions4343{4344int type;4345unsigned int permissions;4346} NVCTRLAttributePermissionsRec;43474348/**************************************************************************/43494350/*4351* NV-CONTROL X event notification.4352*4353* To receive X event notifications dealing with NV-CONTROL, you should4354* call XNVCtrlSelectNotify() with one of the following set as the type4355* of event to receive (see NVCtrlLib.h for more information):4356*/43574358#define ATTRIBUTE_CHANGED_EVENT 04359#define TARGET_ATTRIBUTE_CHANGED_EVENT 14360#define TARGET_ATTRIBUTE_AVAILABILITY_CHANGED_EVENT 24361#define TARGET_STRING_ATTRIBUTE_CHANGED_EVENT 34362#define TARGET_BINARY_ATTRIBUTE_CHANGED_EVENT 443634364#endif /* __NVCTRL_H */436543664367