├── Class_NvAPI_GUI_Classic.png ├── Class_NvAPI_GUI_ListViewTest.png ├── Class_NvAPI_GUI_SetDVC.png ├── LICENSE ├── README.md ├── img ├── DigitalVibrance.png └── NVIDIA_Hue_Control.png ├── info ├── NvAPI_IDs.txt └── NvAPI_Status.txt └── src ├── Class_NvAPI.ahk ├── Class_NvAPI_Example.ahk ├── DigitalVibrance.ahk ├── NvidiaHueControl.ahk └── v1.1_deprecated ├── Class_NvAPI.ahk ├── Class_NvAPI_GUI_Classic.ahk ├── Class_NvAPI_GUI_ListViewTest.ahk └── Class_NvAPI_GUI_SetDVC.ahk /Class_NvAPI_GUI_Classic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jNizM/NVIDIA_NvAPI/b29bd4fb711c38982a07599c509b6945db69836d/Class_NvAPI_GUI_Classic.png -------------------------------------------------------------------------------- /Class_NvAPI_GUI_ListViewTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jNizM/NVIDIA_NvAPI/b29bd4fb711c38982a07599c509b6945db69836d/Class_NvAPI_GUI_ListViewTest.png -------------------------------------------------------------------------------- /Class_NvAPI_GUI_SetDVC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jNizM/NVIDIA_NvAPI/b29bd4fb711c38982a07599c509b6945db69836d/Class_NvAPI_GUI_SetDVC.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 jNizM 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AutoHotkey wrapper for NVIDIA NvAPI 2 | 3 | 4 | ## Features 5 | * retrieves a string describing the version of the NvAPI library 6 | * retrieves information related to the NVIDIA Display Driver 7 | * retrieves the Digital Vibrance Control (DVC) information 8 | * retrieves the HUE information 9 | * retrieves the Quadro status for the GPU (1 if Quadro, 0 if GeForce) 10 | * retrieves the RAM maker associated with this GPU 11 | * retrieves the available driver memory footprint 12 | * retrieves the cooler information 13 | * retrieves the current Level (Normal, Medium or Critical) of the thermal sensor 14 | * retrieves the current fan speed Level (Normal, Medium or Critical) 15 | * retrieves the display driver memory information 16 | * retrieves the display driver version and driver-branch 17 | * retrieves the full GPU name 18 | * retrieves the information about the system's chipset 19 | * retrieves the total number of cores defined for a GPU 20 | * retrieves the type of VRAM associated with this GPU 21 | * retrieves the usage associated with this GPU 22 | * sets the DVC level for the selected display 23 | * sets the HUE level for the selected display 24 | 25 | 26 | ## Examples 27 | ### All functions and returns in a ListView 28 | ![Class_NvAPI_GUI_ListViewTest](Class_NvAPI_GUI_ListViewTest.png) 29 | 30 | ### Classic GUI (Clocks, Load, Fans & Temperature) 31 | ![Class_NvAPI_GUI_Classic](Class_NvAPI_GUI_Classic.png) 32 | 33 | ### Digital Vibrance Control (DVC) 34 | ![DigitalVibrance](img/DigitalVibrance.png) 35 | 36 | ### Nvidia Hue Control 37 | ![NVIDIA_Hue_Control](img/NVIDIA_Hue_Control.png) 38 | 39 | 40 | ## Contributing 41 | * special thanks to 'just me', 'nnnik' and 'RUNIE' 42 | * thanks to AutoHotkey Community 43 | 44 | 45 | ## Questions / Bugs / Issues 46 | If you notice any kind of bugs or issues, report them on the [AHK Thread](https://www.autohotkey.com/boards/viewtopic.php?t=94333). Same for any kind of questions. 47 | 48 | 49 | ## Copyright and License 50 | [MIT License](LICENSE) & NVIDIA NVAPI SDK LICENSE 51 | 52 | 53 | ## Donations 54 | [Donations are appreciated if I could help you](https://www.paypal.me/smithz) -------------------------------------------------------------------------------- /img/DigitalVibrance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jNizM/NVIDIA_NvAPI/b29bd4fb711c38982a07599c509b6945db69836d/img/DigitalVibrance.png -------------------------------------------------------------------------------- /img/NVIDIA_Hue_Control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jNizM/NVIDIA_NvAPI/b29bd4fb711c38982a07599c509b6945db69836d/img/NVIDIA_Hue_Control.png -------------------------------------------------------------------------------- /info/NvAPI_IDs.txt: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // NVAPI ID'S 4 | // 5 | // Release 535 6 | // Date: Jun 22, 2023 7 | // 8 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | NvAPI_CreateDisplayFromUnAttachedDisplay 0x63F9799E 11 | NvAPI_D3D10_SetDepthBoundsTest 0x4EADF5D2 12 | NvAPI_D3D11_AliasMSAATexture2DAsNonMSAA 0xF1C54FC9 13 | NvAPI_D3D11_BeginUAVOverlap 0x65B93CA8 14 | NvAPI_D3D11_BeginUAVOverlapEx 0xBA08208A 15 | NvAPI_D3D11_CheckFeatureSupport 0x106A487E 16 | NvAPI_D3D11_CopyTileMappings 0xC09EE6BC 17 | NvAPI_D3D11_CreateCubinComputeShader 0x0ED98181 18 | NvAPI_D3D11_CreateCubinComputeShaderEx 0x32C2A0F6 19 | NvAPI_D3D11_CreateCubinComputeShaderWithName 0xB672BE19 20 | NvAPI_D3D11_CreateDevice 0x6A16D3A0 21 | NvAPI_D3D11_CreateDeviceAndSwapChain 0xBB939EE5 22 | NvAPI_D3D11_CreateDomainShaderEx 0xA0D7180D 23 | NvAPI_D3D11_CreateFastGeometryShader 0x525D43BE 24 | NvAPI_D3D11_CreateFastGeometryShaderExplicit 0x71AB7C9C 25 | NvAPI_D3D11_CreateGeometryShaderEx_2 0x99ED5C1C 26 | NvAPI_D3D11_CreateHullShaderEx 0xB53CAB00 27 | NvAPI_D3D11_CreateImplicitMSAATexture2D 0xB8F79632 28 | NvAPI_D3D11_CreateMetaCommand 0xF505FBA0 29 | NvAPI_D3D11_CreateMultiGPUDevice 0xBDB20007 30 | NvAPI_D3D11_CreatePixelShaderEx_2 0x4162822B 31 | NvAPI_D3D11_CreateRasterizerState 0xDB8D28AF 32 | NvAPI_D3D11_CreateSamplerState 0x89ECA416 33 | NvAPI_D3D11_CreateShaderResourceView 0x65CB431E 34 | NvAPI_D3D11_CreateShadingRateResourceView 0x99CA2DFF 35 | NvAPI_D3D11_CreateTiledTexture2DArray 0x7886981A 36 | NvAPI_D3D11_CreateUnorderedAccessView 0x74A497A1 37 | NvAPI_D3D11_CreateVertexShaderEx 0x0BEAA0B2 38 | NvAPI_D3D11_DecompressView 0x3A94E822 39 | NvAPI_D3D11_DestroyCubinComputeShader 0x01682C86 40 | NvAPI_D3D11_EndUAVOverlap 0x2216A357 41 | NvAPI_D3D11_EnumerateMetaCommands 0xC7453BA8 42 | NvAPI_D3D11_ExecuteMetaCommand 0x82236C47 43 | NvAPI_D3D11_GetCudaTextureObject 0x9006FA68 44 | NvAPI_D3D11_GetResourceGPUVirtualAddress 0x1819B423 45 | NvAPI_D3D11_GetResourceGPUVirtualAddressEx 0xAF6D14DA 46 | NvAPI_D3D11_GetResourceHandle 0x09D52986 47 | NvAPI_D3D11_InitializeMetaCommand 0xAEC629E9 48 | NvAPI_D3D11_IsFatbinPTXSupported 0x6086BD93 49 | NvAPI_D3D11_IsNvShaderExtnOpCodeSupported 0x5F68DA40 50 | NvAPI_D3D11_LaunchCubinShader 0x427E236D 51 | NvAPI_D3D11_MultiDrawIndexedInstancedIndirect 0x59E890F9 52 | NvAPI_D3D11_MultiDrawInstancedIndirect 0xD4E26BBF 53 | NvAPI_D3D11_MultiGPU_GetCaps 0xD2D25687 54 | NvAPI_D3D11_MultiGPU_Init 0x017BE49E 55 | NvAPI_D3D11_RSGetPixelShadingRateSampleOrder 0x092442A1 56 | NvAPI_D3D11_RSSetExclusiveScissorRects 0xAE4D73EF 57 | NvAPI_D3D11_RSSetPixelShadingRateSampleOrder 0xA942373A 58 | NvAPI_D3D11_RSSetShadingRateResourceView 0x1B0C2F83 59 | NvAPI_D3D11_RSSetViewportsPixelShadingRates 0x34F7938F 60 | NvAPI_D3D11_ResolveSubresourceRegion 0xE6BFEDD6 61 | NvAPI_D3D11_SetDepthBoundsTest 0x7AAF7A04 62 | NvAPI_D3D11_SetNvShaderExtnSlot 0x8E90BB9F 63 | NvAPI_D3D11_SetNvShaderExtnSlotLocalThread 0x0E6482A0 64 | NvAPI_D3D11_TiledResourceBarrier 0xD6839099 65 | NvAPI_D3D11_TiledTexture2DArrayGetDesc 0xF1A2B9D5 66 | NvAPI_D3D11_UpdateTileMappings 0x9A06EA07 67 | NvAPI_D3D12_BuildRaytracingAccelerationStructureEx 0xE24EAD45 68 | NvAPI_D3D12_BuildRaytracingDisplacementMicromapArray 0x066F569D 69 | NvAPI_D3D12_BuildRaytracingOpacityMicromapArray 0x814F8D11 70 | NvAPI_D3D12_CaptureUAVInfo 0x6E5EA9DB 71 | NvAPI_D3D12_CheckDriverMatchingIdentifierEx 0xAFB237D4 72 | NvAPI_D3D12_CopyTextureRegion 0x82B91B25 73 | NvAPI_D3D12_CopyTileMappings 0x47F78194 74 | NvAPI_D3D12_CreateCommittedImplicitMSAATexture2D 0x24C6A07B 75 | NvAPI_D3D12_CreateCommittedRDMABuffer 0xE78DCB44 76 | NvAPI_D3D12_CreateCommittedResource 0x027E98AE 77 | NvAPI_D3D12_CreateComputePipelineState 0x2762DEAC 78 | NvAPI_D3D12_CreateCuFunction 0xE2436E22 79 | NvAPI_D3D12_CreateCuModule 0xAD1A677D 80 | NvAPI_D3D12_CreateCubinComputeShader 0x2A2C79E8 81 | NvAPI_D3D12_CreateCubinComputeShaderEx 0x3151211B 82 | NvAPI_D3D12_CreateCubinComputeShaderWithName 0x1DC7261F 83 | NvAPI_D3D12_CreateDDisplayPresentBarrierClient 0xB5A21987 84 | NvAPI_D3D12_CreateGraphicsPipelineState 0x2FC28856 85 | NvAPI_D3D12_CreateHeap 0x5CB397CF 86 | NvAPI_D3D12_CreateHeap2 0x924BE9D6 87 | NvAPI_D3D12_CreateMetaCommand 0xEB29634B 88 | NvAPI_D3D12_CreatePresentBarrierClient 0x4D815DE9 89 | NvAPI_D3D12_CreateReservedResource 0x2C85F101 90 | NvAPI_D3D12_DestroyCuFunction 0xDF295EA6 91 | NvAPI_D3D12_DestroyCuModule 0x41C65285 92 | NvAPI_D3D12_DestroyCubinComputeShader 0x7FB785BA 93 | NvAPI_D3D12_EmitRaytracingDisplacementMicromapArrayPostbuildInfo 0x68B9A790 94 | NvAPI_D3D12_EmitRaytracingOpacityMicromapArrayPostbuildInfo 0x1D9A39B6 95 | NvAPI_D3D12_EnumFunctionsInModule 0x7AB88D88 96 | NvAPI_D3D12_EnumerateMetaCommands 0xCD9141D8 97 | NvAPI_D3D12_ExecuteMetaCommand 0xDE24FC3D 98 | NvAPI_D3D12_GetCopyableFootprints 0xF6305EB5 99 | NvAPI_D3D12_GetCudaSurfaceObject 0x48F5B2EE 100 | NvAPI_D3D12_GetCudaTextureObject 0x80403FC9 101 | NvAPI_D3D12_GetGraphicsCapabilities 0x01E87354 102 | NvAPI_D3D12_GetNeedsAppFPBlendClamping 0x6EF4D2D1 103 | NvAPI_D3D12_GetOptimalThreadCountForMesh 0xB43995CB 104 | NvAPI_D3D12_GetRaytracingAccelerationStructurePrebuildInfoEx 0x8D025B77 105 | NvAPI_D3D12_GetRaytracingCaps 0x85A6C2A0 106 | NvAPI_D3D12_GetRaytracingDisplacementMicromapArrayPrebuildInfo 0xFA99B6DE 107 | NvAPI_D3D12_GetRaytracingOpacityMicromapArrayPrebuildInfo 0x4726D180 108 | NvAPI_D3D12_InitializeMetaCommand 0xA4125399 109 | NvAPI_D3D12_IsFatbinPTXSupported 0x70C07832 110 | NvAPI_D3D12_IsNvShaderExtnOpCodeSupported 0x3DFACEC8 111 | NvAPI_D3D12_LaunchCuKernelChain 0x24973538 112 | NvAPI_D3D12_LaunchCuKernelChainEx 0x846A9BF0 113 | NvAPI_D3D12_LaunchCubinShader 0x5C52BB86 114 | NvAPI_D3D12_Mosaic_GetCompanionAllocations 0xA46022C7 115 | NvAPI_D3D12_Mosaic_GetViewportAndGpuPartitions 0xB092B818 116 | NvAPI_D3D12_NotifyOutOfBandCommandQueue 0x03D6E8CB 117 | NvAPI_D3D12_QueryCpuVisibleVidmem 0x26322BC3 118 | NvAPI_D3D12_QueryModifiedWSupport 0x51235248 119 | NvAPI_D3D12_QueryPresentBarrierSupport 0xA15FAEF7 120 | NvAPI_D3D12_QuerySinglePassStereoSupport 0x3B03791B 121 | NvAPI_D3D12_QueryWorkstationFeatureProperties 0xA92EA23A 122 | NvAPI_D3D12_RegisterPresentBarrierResources 0xD53C9EF0 123 | NvAPI_D3D12_RelocateRaytracingDisplacementMicromapArray 0x1C142308 124 | NvAPI_D3D12_RelocateRaytracingOpacityMicromapArray 0x0425C538 125 | NvAPI_D3D12_ReservedResourceGetDesc 0x9AA2AABB 126 | NvAPI_D3D12_ResolveSubresourceRegion 0xC24A15BF 127 | NvAPI_D3D12_ResourceAliasingBarrier 0xB942BAB7 128 | NvAPI_D3D12_SetAsyncFrameMarker 0x13C98F73 129 | NvAPI_D3D12_SetCreatePipelineStateOptions 0x5C607A27 130 | NvAPI_D3D12_SetDepthBoundsTestValues 0xB9333FE9 131 | NvAPI_D3D12_SetModifiedWMode 0xE1FDABA7 132 | NvAPI_D3D12_SetNvShaderExtnSlotSpace 0xAC2DFEB5 133 | NvAPI_D3D12_SetNvShaderExtnSlotSpaceLocalThread 0x43D867C0 134 | NvAPI_D3D12_SetSinglePassStereoMode 0x83556D87 135 | NvAPI_D3D12_UpdateTileMappings 0xC6017A7D 136 | NvAPI_D3D12_UseDriverHeapPriorities 0xF0D978A8 137 | NvAPI_D3D1x_BindSwapBarrier 0x9DE8C729 138 | NvAPI_D3D1x_CreateSwapChain 0x1BC21B66 139 | NvAPI_D3D1x_DisableShaderDiskCache 0xD0CBCA7D 140 | NvAPI_D3D1x_GetGraphicsCapabilities 0x52B1499A 141 | NvAPI_D3D1x_JoinSwapGroup 0x14610CD7 142 | NvAPI_D3D1x_Present 0x03B845A1 143 | NvAPI_D3D1x_QueryFrameCount 0x9152E055 144 | NvAPI_D3D1x_QueryMaxSwapGroup 0x9BB9D68F 145 | NvAPI_D3D1x_QuerySwapGroup 0x407F67AA 146 | NvAPI_D3D1x_ResetFrameCount 0xFBBB031A 147 | NvAPI_D3D9_AliasSurfaceAsTexture 0xE5CEAE41 148 | NvAPI_D3D9_BindSwapBarrier 0x9C39C246 149 | NvAPI_D3D9_ClearRT 0x332D3942 150 | NvAPI_D3D9_CreateSwapChain 0x1A131E09 151 | NvAPI_D3D9_GetSurfaceHandle 0x0F2DD3F2 152 | NvAPI_D3D9_JoinSwapGroup 0x7D44BB54 153 | NvAPI_D3D9_Present 0x05650BEB 154 | NvAPI_D3D9_QueryFrameCount 0x9083E53A 155 | NvAPI_D3D9_QueryMaxSwapGroup 0x5995410D 156 | NvAPI_D3D9_QuerySwapGroup 0xEBA4D232 157 | NvAPI_D3D9_RegisterResource 0xA064BDFC 158 | NvAPI_D3D9_ResetFrameCount 0xFA6A0675 159 | NvAPI_D3D9_StretchRectEx 0x22DE03AA 160 | NvAPI_D3D9_UnregisterResource 0xBB2B17AA 161 | NvAPI_D3D9_VideoSetStereoInfo 0xB852F4DB 162 | NvAPI_D3D_BeginResourceRendering 0x91123D6A 163 | NvAPI_D3D_ConfigureAnsel 0x341C6C7F 164 | NvAPI_D3D_CreateLateLatchObject 0x2DB27D09 165 | NvAPI_D3D_EndResourceRendering 0x37E7191C 166 | NvAPI_D3D_GetCurrentSLIState 0x4B708B54 167 | NvAPI_D3D_GetLatency 0x1A587F9C 168 | NvAPI_D3D_GetObjectHandleForResource 0xFCEAC864 169 | NvAPI_D3D_GetSleepStatus 0xAEF96CA1 170 | NvAPI_D3D_ImplicitSLIControl 0x2AEDE111 171 | NvAPI_D3D_InitializeNvGazeHandler 0x5B3B7479 172 | NvAPI_D3D_InitializeSMPAssist 0x42763D0C 173 | NvAPI_D3D_InitializeVRSHelper 0x4780D70B 174 | NvAPI_D3D_IsGSyncActive 0xE942B0FF 175 | NvAPI_D3D_IsGSyncCapable 0x9C1EED78 176 | NvAPI_D3D_QueryLateLatchSupport 0x8CECA0EC 177 | NvAPI_D3D_QueryModifiedWSupport 0xCBF9F4F5 178 | NvAPI_D3D_QueryMultiViewSupport 0xB6E0A41C 179 | NvAPI_D3D_QuerySMPAssistSupport 0xC57921DE 180 | NvAPI_D3D_QuerySinglePassStereoSupport 0x6F5F0A6D 181 | NvAPI_D3D_RegisterDevice 0x8C02C4D0 182 | NvAPI_D3D_SetFPSIndicatorState 0xA776E8DB 183 | NvAPI_D3D_SetLatencyMarker 0xD9984C05 184 | NvAPI_D3D_SetModifiedWMode 0x06EA4BF4 185 | NvAPI_D3D_SetMultiViewMode 0x8285C8DA 186 | NvAPI_D3D_SetReflexSync 0xB9F6FAFF 187 | NvAPI_D3D_SetResourceHint 0x6C0ED98C 188 | NvAPI_D3D_SetSinglePassStereoMode 0xA39E6E6E 189 | NvAPI_D3D_SetSleepMode 0xAC1CA9E0 190 | NvAPI_D3D_SetVerticalSyncMode 0x5526CFD1 191 | NvAPI_D3D_Sleep 0x852CD1D2 192 | NvAPI_DISP_AcquireDedicatedDisplay 0x47C917BA 193 | NvAPI_DISP_DeleteCustomDisplay 0x552E5B9B 194 | NvAPI_DISP_EnumCustomDisplay 0xA2072D59 195 | NvAPI_DISP_GetAdaptiveSyncData 0xB73D1EE9 196 | NvAPI_DISP_GetAssociatedUnAttachedNvidiaDisplayHandle 0xA70503B2 197 | NvAPI_DISP_GetDisplayConfig 0x11ABCCF8 198 | NvAPI_DISP_GetDisplayIdByDisplayName 0xAE457190 199 | NvAPI_DISP_GetGDIPrimaryDisplayId 0x1E9D8A31 200 | NvAPI_DISP_GetMonitorCapabilities 0x3B05C7E1 201 | NvAPI_DISP_GetMonitorColorCapabilities 0x6AE4CFB5 202 | NvAPI_DISP_GetNvManagedDedicatedDisplays 0xDBDF0CB2 203 | NvAPI_DISP_GetPreferredStereoDisplay 0x1F6B4666 204 | NvAPI_DISP_GetTiming 0x175167E9 205 | NvAPI_DISP_GetVirtualRefreshRateData 0x8C00429A 206 | NvAPI_DISP_ReleaseDedicatedDisplay 0x1247825F 207 | NvAPI_DISP_RevertCustomDisplayTrial 0xCBBD40F0 208 | NvAPI_DISP_SaveCustomDisplay 0x49882876 209 | NvAPI_DISP_SetAdaptiveSyncData 0x3EEBBA1D 210 | NvAPI_DISP_SetDisplayConfig 0x5D8CF8DE 211 | NvAPI_DISP_SetPreferredStereoDisplay 0xC9D0E25F 212 | NvAPI_DISP_SetVirtualRefreshRateData 0x5ABBE6A3 213 | NvAPI_DISP_TryCustomDisplay 0x1F7DB630 214 | NvAPI_DRS_CreateApplication 0x4347A9DE 215 | NvAPI_DRS_CreateProfile 0xCC176068 216 | NvAPI_DRS_CreateSession 0x0694D52E 217 | NvAPI_DRS_DeleteApplication 0x2C694BC6 218 | NvAPI_DRS_DeleteApplicationEx 0xC5EA85A1 219 | NvAPI_DRS_DeleteProfile 0x17093206 220 | NvAPI_DRS_DeleteProfileSetting 0xE4A26362 221 | NvAPI_DRS_DestroySession 0xDAD9CFF8 222 | NvAPI_DRS_EnumApplications 0x7FA2173A 223 | NvAPI_DRS_EnumAvailableSettingIds 0xF020614A 224 | NvAPI_DRS_EnumAvailableSettingValues 0x2EC39F90 225 | NvAPI_DRS_EnumProfiles 0xBC371EE0 226 | NvAPI_DRS_EnumSettings 0xAE3039DA 227 | NvAPI_DRS_FindApplicationByName 0xEEE566B2 228 | NvAPI_DRS_FindProfileByName 0x7E4A9A0B 229 | NvAPI_DRS_GetApplicationInfo 0xED1F8C69 230 | NvAPI_DRS_GetBaseProfile 0xDA8466A0 231 | NvAPI_DRS_GetCurrentGlobalProfile 0x617BFF9F 232 | NvAPI_DRS_GetNumProfiles 0x1DAE4FBC 233 | NvAPI_DRS_GetProfileInfo 0x61CD6FD6 234 | NvAPI_DRS_GetSetting 0x73BF8338 235 | NvAPI_DRS_GetSettingIdFromName 0xCB7309CD 236 | NvAPI_DRS_GetSettingNameFromId 0xD61CBE6E 237 | NvAPI_DRS_LoadSettings 0x375DBD6B 238 | NvAPI_DRS_LoadSettingsFromFile 0xD3EDE889 239 | NvAPI_DRS_RestoreAllDefaults 0x5927B094 240 | NvAPI_DRS_RestoreProfileDefault 0xFA5F6134 241 | NvAPI_DRS_RestoreProfileDefaultSetting 0x53F0381E 242 | NvAPI_DRS_SaveSettings 0xFCBC7E14 243 | NvAPI_DRS_SaveSettingsToFile 0x2BE25DF8 244 | NvAPI_DRS_SetCurrentGlobalProfile 0x1C89C5DF 245 | NvAPI_DRS_SetProfileInfo 0x16ABD3A9 246 | NvAPI_DRS_SetSetting 0x577DD202 247 | NvAPI_DestroyPresentBarrierClient 0x3C5C351B 248 | NvAPI_DirectD3D12GraphicsCommandList_Create 0x74A4E712 249 | NvAPI_DirectD3D12GraphicsCommandList_Release 0x99DA3DDE 250 | NvAPI_DirectD3D12GraphicsCommandList_Reset 0x999C26D8 251 | NvAPI_DisableHWCursor 0xAB163097 252 | NvAPI_Disp_ColorControl 0x92F9D80D 253 | NvAPI_Disp_GetDisplayIdInfo 0xBAE8AA5E 254 | NvAPI_Disp_GetDisplayIdsFromTarget 0xE7E5F89E 255 | NvAPI_Disp_GetHdrCapabilities 0x84F2A8DF 256 | NvAPI_Disp_GetHdrToneMapping 0xFBD36E71 257 | NvAPI_Disp_GetOutputMode 0x81FED88D 258 | NvAPI_Disp_GetSourceColorSpace 0xCEEDC85B 259 | NvAPI_Disp_GetSourceHdrMetadata 0x0D3F52DA 260 | NvAPI_Disp_GetVRRInfo 0xDF8FDA57 261 | NvAPI_Disp_HdrColorControl 0x351DA224 262 | NvAPI_Disp_InfoFrameControl 0x6067AF3F 263 | NvAPI_Disp_SetHdrToneMapping 0xDD6DA362 264 | NvAPI_Disp_SetOutputMode 0x98E7661A 265 | NvAPI_Disp_SetSourceColorSpace 0x473B6CAF 266 | NvAPI_Disp_SetSourceHdrMetadata 0x905EB63B 267 | NvAPI_EnableCurrentMosaicTopology 0x74073CC9 268 | NvAPI_EnableHWCursor 0x2863148D 269 | NvAPI_EnumLogicalGPUs 0x48B3EA59 270 | NvAPI_EnumNvidiaDisplayHandle 0x9ABDD40D 271 | NvAPI_EnumNvidiaUnAttachedDisplayHandle 0x20DE9260 272 | NvAPI_EnumPhysicalGPUs 0xE5AC921F 273 | NvAPI_EnumTCCPhysicalGPUs 0xD9930B07 274 | NvAPI_Event_RegisterCallback 0xE6DBEA69 275 | NvAPI_Event_UnregisterCallback 0xDE1F9B45 276 | NvAPI_GPU_ClientIllumDevicesGetControl 0x73C01D58 277 | NvAPI_GPU_ClientIllumDevicesGetInfo 0xD4100E58 278 | NvAPI_GPU_ClientIllumDevicesSetControl 0x57024C62 279 | NvAPI_GPU_ClientIllumZonesGetControl 0x3DBF5764 280 | NvAPI_GPU_ClientIllumZonesGetInfo 0x4B81241B 281 | NvAPI_GPU_ClientIllumZonesSetControl 0x197D065E 282 | NvAPI_GPU_ClientRegisterForUtilizationSampleUpdates 0xADEEAF67 283 | NvAPI_GPU_CudaEnumComputeCapableGpus 0x5786CC6E 284 | NvAPI_GPU_GetAGPAperture 0x6E042794 285 | NvAPI_GPU_GetActiveOutputs 0xE3E89B6F 286 | NvAPI_GPU_GetAdapterIdFromPhysicalGpu 0x0FF07FDE 287 | NvAPI_GPU_GetAllClockFrequencies 0xDCB616C3 288 | NvAPI_GPU_GetAllDisplayIds 0x785210A2 289 | NvAPI_GPU_GetAllOutputs 0x7D554F8E 290 | NvAPI_GPU_GetArchInfo 0xD8265D24 291 | NvAPI_GPU_GetBoardInfo 0x22D54523 292 | NvAPI_GPU_GetBusId 0x1BE0B8E5 293 | NvAPI_GPU_GetBusSlotId 0x2A0A350F 294 | NvAPI_GPU_GetBusType 0x1BB18724 295 | NvAPI_GPU_GetConnectedDisplayIds 0x0078DBA2 296 | NvAPI_GPU_GetConnectedOutputs 0x1730BFC9 297 | NvAPI_GPU_GetConnectedOutputsWithLidState 0xCF8CAF39 298 | NvAPI_GPU_GetConnectedSLIOutputs 0x0680DE09 299 | NvAPI_GPU_GetConnectedSLIOutputsWithLidState 0x96043CC7 300 | NvAPI_GPU_GetCurrentAGPRate 0xC74925A0 301 | NvAPI_GPU_GetCurrentPCIEDownstreamWidth 0xD048C3B1 302 | NvAPI_GPU_GetCurrentPstate 0x927DA4F6 303 | NvAPI_GPU_GetDynamicPstatesInfoEx 0x60DED2ED 304 | NvAPI_GPU_GetECCConfigurationInfo 0x77A796F3 305 | NvAPI_GPU_GetECCErrorInfo 0xC71F85A6 306 | NvAPI_GPU_GetECCStatusInfo 0xCA1DDAF3 307 | NvAPI_GPU_GetEDID 0x37D32E69 308 | NvAPI_GPU_GetFullName 0xCEEE8E9F 309 | NvAPI_GPU_GetGPUType 0xC33BAEB1 310 | NvAPI_GPU_GetGpuCoreCount 0xC7026A87 311 | NvAPI_GPU_GetHDCPSupportStatus 0xF089EEF5 312 | NvAPI_GPU_GetIRQ 0xE4715417 313 | NvAPI_GPU_GetIllumination 0x9A1B9365 314 | NvAPI_GPU_GetLicensableFeatures 0x3FC596AA 315 | NvAPI_GPU_GetLogicalGpuInfo 0x842B066E 316 | NvAPI_GPU_GetMemoryInfo 0x07F9B368 317 | NvAPI_GPU_GetMemoryInfoEx 0xC0599498 318 | NvAPI_GPU_GetOutputType 0x40A505E4 319 | NvAPI_GPU_GetPCIIdentifiers 0x2DDFB66E 320 | NvAPI_GPU_GetPerfDecreaseInfo 0x7F7F4600 321 | NvAPI_GPU_GetPhysicalFrameBufferSize 0x46FBEB03 322 | NvAPI_GPU_GetPstates20 0x6FF81213 323 | NvAPI_GPU_GetPstatesInfoEx 0x843C0256 324 | NvAPI_GPU_GetQuadroStatus 0xE332FA47 325 | NvAPI_GPU_GetRamBusWidth 0x7975C581 326 | NvAPI_GPU_GetScanoutCompositionParameter 0x58FE51E6 327 | NvAPI_GPU_GetScanoutConfiguration 0x6A9F5B63 328 | NvAPI_GPU_GetScanoutConfigurationEx 0xE2E1E6F0 329 | NvAPI_GPU_GetScanoutIntensityState 0xE81CE836 330 | NvAPI_GPU_GetScanoutWarpingState 0x6F5435AF 331 | NvAPI_GPU_GetShaderSubPipeCount 0x0BE17923 332 | NvAPI_GPU_GetSystemType 0xBAAABFCC 333 | NvAPI_GPU_GetTachReading 0x5F608315 334 | NvAPI_GPU_GetThermalSettings 0xE3640A56 335 | NvAPI_GPU_GetVRReadyData 0x81D629C5 336 | NvAPI_GPU_GetVbiosOEMRevision 0x2D43FB31 337 | NvAPI_GPU_GetVbiosRevision 0xACC3DA0A 338 | NvAPI_GPU_GetVbiosVersionString 0xA561FD7D 339 | NvAPI_GPU_GetVirtualFrameBufferSize 0x5A04B644 340 | NvAPI_GPU_GetVirtualizationInfo 0x44E022A9 341 | NvAPI_GPU_QueryIlluminationSupport 0xA629DA31 342 | NvAPI_GPU_QueryWorkstationFeatureSupport 0x80B1ABB9 343 | NvAPI_GPU_ResetECCErrorInfo 0xC02EEC20 344 | NvAPI_GPU_SetECCConfiguration 0x1CF639D9 345 | NvAPI_GPU_SetEDID 0xE83D6456 346 | NvAPI_GPU_SetIllumination 0x0254A187 347 | NvAPI_GPU_SetScanoutCompositionParameter 0xF898247D 348 | NvAPI_GPU_SetScanoutIntensity 0xA57457A4 349 | NvAPI_GPU_SetScanoutWarping 0xB34BAB4F 350 | NvAPI_GPU_ValidateOutputCombination 0x34C9C2D4 351 | NvAPI_GPU_WorkstationFeatureQuery 0x004537DF 352 | NvAPI_GPU_WorkstationFeatureSetup 0x6C1F3FE4 353 | NvAPI_GSync_AdjustSyncDelay 0x2D11FF51 354 | NvAPI_GSync_EnumSyncDevices 0xD9639601 355 | NvAPI_GSync_GetControlParameters 0x16DE1C6A 356 | NvAPI_GSync_GetStatusParameters 0x70D404EC 357 | NvAPI_GSync_GetSyncStatus 0xF1F5B434 358 | NvAPI_GSync_GetTopology 0x4562BC38 359 | NvAPI_GSync_QueryCapabilities 0x44A3F1D1 360 | NvAPI_GSync_SetControlParameters 0x8BBFF88B 361 | NvAPI_GSync_SetSyncStateSettings 0x60ACDFDD 362 | NvAPI_GetAssociatedDisplayOutputId 0xD995937E 363 | NvAPI_GetAssociatedNvidiaDisplayHandle 0x35C29134 364 | NvAPI_GetAssociatedNvidiaDisplayName 0x22A78B05 365 | NvAPI_GetCurrentMosaicTopology 0xF60852BD 366 | NvAPI_GetDisplayDriverVersion 0xF951A4D1 367 | NvAPI_GetDisplayPortInfo 0xC64FF367 368 | NvAPI_GetErrorMessage 0x6C2D048C 369 | NvAPI_GetGPUIDfromPhysicalGPU 0x6533EA3E 370 | NvAPI_GetHDMISupportInfo 0x6AE16EC3 371 | NvAPI_GetInterfaceVersionString 0x01053FA5 372 | NvAPI_GetInterfaceVersionStringEx 0x6C2D048C 373 | NvAPI_GetLogicalGPUFromDisplay 0xEE1370CF 374 | NvAPI_GetLogicalGPUFromPhysicalGPU 0xADD604D1 375 | NvAPI_GetPhysicalGPUFromGPUID 0x5380AD1A 376 | NvAPI_GetPhysicalGPUFromUnAttachedDisplay 0x5018ED61 377 | NvAPI_GetPhysicalGPUsFromDisplay 0x34EF9506 378 | NvAPI_GetPhysicalGPUsFromLogicalGPU 0xAEA3FA32 379 | NvAPI_GetSupportedMosaicTopologies 0x410B5C25 380 | NvAPI_GetSupportedViews 0x66FB7FC0 381 | NvAPI_GetUnAttachedAssociatedDisplayName 0x4888D790 382 | NvAPI_GetVBlankCounter 0x67B5DB55 383 | NvAPI_GetView 0xD6B99D89 384 | NvAPI_GetViewEx 0xDBBC0AF4 385 | NvAPI_I2CRead 0x2FDE12C5 386 | NvAPI_I2CWrite 0xE812EB07 387 | NvAPI_Initialize 0x000000eb 388 | NvAPI_JoinPresentBarrier 0x17F6BF82 389 | NvAPI_LeavePresentBarrier 0xC3EC5A7F 390 | NvAPI_Mosaic_EnableCurrentTopo 0x5F1AA66C 391 | NvAPI_Mosaic_EnumDisplayGrids 0xDF2887AF 392 | NvAPI_Mosaic_EnumDisplayModes 0x78DB97D7 393 | NvAPI_Mosaic_GetCurrentTopo 0xEC32944E 394 | NvAPI_Mosaic_GetDisplayViewportsByResolution 0xDC6DC8D3 395 | NvAPI_Mosaic_GetOverlapLimits 0x989685F0 396 | NvAPI_Mosaic_GetSupportedTopoInfo 0xFDB63C81 397 | NvAPI_Mosaic_GetTopoGroup 0xCB89381D 398 | NvAPI_Mosaic_SetCurrentTopo 0x9B542831 399 | NvAPI_Mosaic_SetDisplayGrids 0x4D959A89 400 | NvAPI_Mosaic_ValidateDisplayGrids 0xCF43903D 401 | NvAPI_OGL_ExpertModeDefaultsGet 0xAE921F12 402 | NvAPI_OGL_ExpertModeDefaultsSet 0xB47A657E 403 | NvAPI_OGL_ExpertModeGet 0x22ED9516 404 | NvAPI_OGL_ExpertModeSet 0x3805EF7A 405 | NvAPI_QueryPresentBarrierFrameStatistics 0x61B844A1 406 | NvAPI_SYS_GetChipSetInfo 0x53DABBCA 407 | NvAPI_SYS_GetDisplayDriverInfo 0x721FACEB 408 | NvAPI_SYS_GetDisplayIdFromGpuAndOutputId 0x08F2BAB4 409 | NvAPI_SYS_GetDriverAndBranchVersion 0x2926AAAD 410 | NvAPI_SYS_GetGpuAndOutputIdFromDisplayId 0x112BA1A5 411 | NvAPI_SYS_GetLidAndDockInfo 0xCDA14D8A 412 | NvAPI_SYS_GetPhysicalGpuFromDisplayId 0x9EA74659 413 | NvAPI_SetCurrentMosaicTopology 0xD54B8989 414 | NvAPI_SetDisplayPort 0xFA13E65A 415 | NvAPI_SetRefreshRateOverride 0x3092AC32 416 | NvAPI_SetView 0x0957D7B6 417 | NvAPI_SetViewEx 0x06B89E68 418 | NvAPI_Stereo_Activate 0xF6A1AD68 419 | NvAPI_Stereo_CaptureJpegImage 0x932CB140 420 | NvAPI_Stereo_CapturePngImage 0x8B7E99B5 421 | NvAPI_Stereo_CreateConfigurationProfileRegistryKey 0xBE7692EC 422 | NvAPI_Stereo_CreateHandleFromIUnknown 0xAC7E37F4 423 | NvAPI_Stereo_Deactivate 0x2D68DE96 424 | NvAPI_Stereo_Debug_WasLastDrawStereoized 0xED4416C5 425 | NvAPI_Stereo_DecreaseConvergence 0x4C87E317 426 | NvAPI_Stereo_DecreaseSeparation 0xDA044458 427 | NvAPI_Stereo_DeleteConfigurationProfileRegistryKey 0xF117B834 428 | NvAPI_Stereo_DeleteConfigurationProfileValue 0x49BCEECF 429 | NvAPI_Stereo_DestroyHandle 0x3A153134 430 | NvAPI_Stereo_Disable 0x2EC50C2B 431 | NvAPI_Stereo_Enable 0x239C4545 432 | NvAPI_Stereo_GetConvergence 0x4AB00934 433 | NvAPI_Stereo_GetDefaultProfile 0x624E21C2 434 | NvAPI_Stereo_GetEyeSeparation 0xCE653127 435 | NvAPI_Stereo_GetFrustumAdjustMode 0xE6839B43 436 | NvAPI_Stereo_GetSeparation 0x451F2134 437 | NvAPI_Stereo_GetStereoSupport 0x296C434D 438 | NvAPI_Stereo_GetSurfaceCreationMode 0x36F1C736 439 | NvAPI_Stereo_IncreaseConvergence 0xA17DAABE 440 | NvAPI_Stereo_IncreaseSeparation 0xC9A8ECEC 441 | NvAPI_Stereo_InitActivation 0xC7177702 442 | NvAPI_Stereo_IsActivated 0x1FB0BC30 443 | NvAPI_Stereo_IsEnabled 0x348FF8E1 444 | NvAPI_Stereo_IsWindowedModeSupported 0x40C8ED5E 445 | NvAPI_Stereo_ReverseStereoBlitControl 0x3CD58F89 446 | NvAPI_Stereo_SetActiveEye 0x96EEA9F8 447 | NvAPI_Stereo_SetConfigurationProfileValue 0x24409F48 448 | NvAPI_Stereo_SetConvergence 0x3DD6B54B 449 | NvAPI_Stereo_SetDefaultProfile 0x44F0ECD1 450 | NvAPI_Stereo_SetDriverMode 0x5E8F0BEC 451 | NvAPI_Stereo_SetFrustumAdjustMode 0x7BE27FA2 452 | NvAPI_Stereo_SetNotificationMessage 0x6B9B409E 453 | NvAPI_Stereo_SetSeparation 0x5C069FA3 454 | NvAPI_Stereo_SetSurfaceCreationMode 0xF5DCFCBA 455 | NvAPI_Stereo_Trigger_Activation 0x0D6C6CD2 456 | NvAPI_Unload 0xD7C61344 457 | NvAPI_VIO_Close 0xD01BD237 458 | NvAPI_VIO_EnumDataFormats 0x221FA8E8 459 | NvAPI_VIO_EnumDevices 0xFD7C5557 460 | NvAPI_VIO_EnumSignalFormats 0xEAD72FE4 461 | NvAPI_VIO_GetCSC 0x7B0D72A3 462 | NvAPI_VIO_GetCapabilities 0x1DC91303 463 | NvAPI_VIO_GetConfig 0xD34A789B 464 | NvAPI_VIO_GetGamma 0x51D53D06 465 | NvAPI_VIO_GetPCIInfo 0xB981D935 466 | NvAPI_VIO_GetSyncDelay 0x462214A9 467 | NvAPI_VIO_IsFrameLockModeCompatible 0x7BF0A94D 468 | NvAPI_VIO_IsRunning 0x96BD040E 469 | NvAPI_VIO_Open 0x44EE4841 470 | NvAPI_VIO_QueryTopology 0x869534E2 471 | NvAPI_VIO_SetCSC 0xA1EC8D74 472 | NvAPI_VIO_SetConfig 0x0E4EEC07 473 | NvAPI_VIO_SetGamma 0x964BF452 474 | NvAPI_VIO_SetSyncDelay 0x2697A8D1 475 | NvAPI_VIO_Start 0xCDE8E1A3 476 | NvAPI_VIO_Status 0x0E6CE4F1 477 | NvAPI_VIO_Stop 0x6BA2A5D6 478 | NvAPI_VIO_SyncFormatDetect 0x118D48A3 479 | 480 | 481 | 482 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 483 | // 484 | // OLD NVAPI ID'S 485 | // 486 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 487 | 488 | NvAPI_3D_GetProperty 0x8061A4B1 489 | NvAPI_3D_GetPropertyRange 0xB85DE27C 490 | NvAPI_3D_SetProperty 0xC9175E8D 491 | NvAPI_Coproc_GetApplicationCoprocInfo 0x79232685 492 | NvAPI_Coproc_GetCoprocInfoFlagsEx 0x69A9874D 493 | NvAPI_Coproc_GetCoprocStatus 0x1EFC3957 494 | NvAPI_Coproc_NotifyCoprocPowerState 0xCADCB956 495 | NvAPI_Coproc_SetCoprocInfoFlagsEx 0xF4C863AC 496 | NvAPI_D3D10_AliasPrimaryAsTexture 0x8AAC133D 497 | NvAPI_D3D10_BeginShareResource 0x35233210 498 | NvAPI_D3D10_BeginShareResourceEx 0xEF303A9D 499 | NvAPI_D3D10_CreateDevice 0x2DE11D61 500 | NvAPI_D3D10_CreateDeviceAndSwapChain 0x5B803DAF 501 | NvAPI_D3D10_EndShareResource 0x0E9C5853 502 | NvAPI_D3D10_GetRenderedCursorAsBitmap 0xCAC3CE5D 503 | NvAPI_D3D10_ProcessCallbacks 0xAE9C2019 504 | NvAPI_D3D10_SetDepthBoundsTest 0x4EADF5D2 505 | NvAPI_D3D10_SetPrimaryFlipChainCallbacks 0x73EB9329 506 | NvAPI_D3D11_BeginShareResource 0x0121BDC6 507 | NvAPI_D3D11_EndShareResource 0x8FFB8E26 508 | NvAPI_D3D11_RSSetViewports 0xB5DB2762 // removed with r343 509 | NvAPI_D3D1x_BindSwapBarrier 0x9DE8C729 510 | NvAPI_D3D1x_IFR_SetUpTargetBufferToSys 0x473F7828 511 | NvAPI_D3D1x_IFR_TransferRenderTarget 0x9FBAE4EB 512 | NvAPI_D3D1x_GetLowLatencySupport 0xB2EDAA72 // removed with r375 513 | NvAPI_D3D1x_HintCreateLowLatencyDevice 0x9EEAD6E5 // removed with r375 514 | NvAPI_D3D1x_JoinSwapGroup 0x14610CD7 515 | NvAPI_D3D1x_Present 0x03B845A1 516 | NvAPI_D3D1x_QueryFrameCount 0x9152E055 517 | NvAPI_D3D1x_QueryMaxSwapGroup 0x9BB9D68F 518 | NvAPI_D3D1x_QuerySwapGroup 0x407F67AA 519 | NvAPI_D3D1x_ResetFrameCount 0xFBBB031A 520 | NvAPI_D3D9_AliasPrimaryAsTexture 0x13C7112E 521 | NvAPI_D3D9_AliasPrimaryFromDevice 0x7C20C5BE 522 | NvAPI_D3D9_BindSwapBarrier 0x9C39C246 523 | NvAPI_D3D9_CreatePathContextNV 0xA342F682 524 | NvAPI_D3D9_CreatePathNV 0x71329DF3 525 | NvAPI_D3D9_CreateRenderTarget 0x0B3827C8 526 | NvAPI_D3D9_CreateTexture 0xD5E13573 527 | NvAPI_D3D9_CreateVideo 0x89FFD9A3 528 | NvAPI_D3D9_CreateVideoBegin 0x84C9D553 529 | NvAPI_D3D9_CreateVideoEnd 0xB476BF61 530 | NvAPI_D3D9_DeletePathNV 0x73E0019A 531 | NvAPI_D3D9_DestroyPathContextNV 0x667C2929 532 | NvAPI_D3D9_DMA 0x962B8AF6 533 | NvAPI_D3D9_DrawPathNV 0x13199B3D 534 | NvAPI_D3D9_EnableStereo 0x492A6954 535 | NvAPI_D3D9_EnumVideoFeatures 0x1DB7C52C 536 | NvAPI_D3D9_FreeVideo 0x3111BED1 537 | NvAPI_D3D9_GetCurrentRenderTargetHandle 0x022CAD61 538 | NvAPI_D3D9_GetCurrentZBufferHandle 0xB380F218 539 | NvAPI_D3D9_GetIndexBufferHandle 0xFC5A155B 540 | NvAPI_D3D9_GetOverlaySurfaceHandles 0x6800F5FC 541 | NvAPI_D3D9_GetSLIInfo 0x694BFF4D 542 | NvAPI_D3D9_GetTextureHandle 0xC7985ED5 543 | NvAPI_D3D9_GetVertexBufferHandle 0x72B19155 544 | NvAPI_D3D9_GetVideoCapabilities 0x3D596B93 545 | NvAPI_D3D9_GetVideoState 0xA4527BF8 546 | NvAPI_D3D9_GPUBasedCPUSleep 0xD504DDA7 547 | NvAPI_D3D9_GpuSyncAcquire 0xD00B8317 548 | NvAPI_D3D9_GpuSyncEnd 0x754033F0 549 | NvAPI_D3D9_GpuSyncGetHandleSize 0x80C9FD3B 550 | NvAPI_D3D9_GpuSyncInit 0x6D6FDAD4 551 | NvAPI_D3D9_GpuSyncMapIndexBuffer 0x12EE68F2 552 | NvAPI_D3D9_GpuSyncMapSurfaceBuffer 0x2AB714AB 553 | NvAPI_D3D9_GpuSyncMapTexBuffer 0xCDE4A28A 554 | NvAPI_D3D9_GpuSyncMapVertexBuffer 0xDBC803EC 555 | NvAPI_D3D9_GpuSyncRelease 0x3D7A86BB 556 | NvAPI_D3D9_IFR_SetUpTargetBufferToNV12BLVideoSurface 0xCFC92C15 557 | NvAPI_D3D9_IFR_SetUpTargetBufferToSys 0x55255D05 558 | NvAPI_D3D9_IFR_TransferRenderTarget 0x0AB7C2DC 559 | NvAPI_D3D9_IFR_TransferRenderTargetToNV12BLVideoSurface 0x5FE72F64 560 | NvAPI_D3D9_JoinSwapGroup 0x7D44BB54 561 | NvAPI_D3D9_Lock 0x6317345C 562 | NvAPI_D3D9_NVFBC_GetStatus 0xBD3EB475 563 | NvAPI_D3D9_PathClearDepthNV 0x157E45C4 564 | NvAPI_D3D9_PathDepthNV 0xFCB16330 565 | NvAPI_D3D9_PathEnableColorWriteNV 0x3E2804A2 566 | NvAPI_D3D9_PathEnableDepthTestNV 0xE99BA7F3 567 | NvAPI_D3D9_PathMatrixNV 0xD2F6C499 568 | NvAPI_D3D9_PathParameterfNV 0xF7FF00C1 569 | NvAPI_D3D9_PathParameteriNV 0xFC31236C 570 | NvAPI_D3D9_PathVerticesNV 0xC23DF926 571 | NvAPI_D3D9_Present 0x05650BEB 572 | NvAPI_D3D9_PresentSurfaceToDesktop 0x0F7029C5 573 | NvAPI_D3D9_PresentVideo 0x5CF7F862 574 | NvAPI_D3D9_QueryAAOverrideMode 0xDDF5643C 575 | NvAPI_D3D9_QueryFrameCount 0x9083E53A 576 | NvAPI_D3D9_QueryMaxSwapGroup 0x5995410D 577 | NvAPI_D3D9_QuerySwapGroup 0xEBA4D232 578 | NvAPI_D3D9_QueryVideoInfo 0x1E6634B3 579 | NvAPI_D3D9_ResetFrameCount 0xFA6A0675 580 | NvAPI_D3D9_SetGamutData 0x2BBDA32E 581 | NvAPI_D3D9_SetPitchSurfaceCreation 0x18CDF365 582 | NvAPI_D3D9_SetResourceHint 0x905F5C27 583 | NvAPI_D3D9_SetSLIMode 0xBFDC062C 584 | NvAPI_D3D9_SetSurfaceCreationLayout 0x5609B86A 585 | NvAPI_D3D9_SetVideoState 0xBD4BC56F 586 | NvAPI_D3D9_StretchRect 0xAEAECD41 587 | NvAPI_D3D9_Unlock 0xC182027E 588 | NvAPI_D3D9_VideoSurfaceEncryptionControl 0x9D2509EF 589 | NvAPI_D3D_CreateQuery 0x5D19BCA4 590 | NvAPI_D3D_DestroyQuery 0xC8FF7258 591 | NvAPI_D3D_Query_Begin 0xE5A9AAE0 592 | NvAPI_D3D_Query_End 0x2AC084FA 593 | NvAPI_D3D_Query_GetData 0xF8B53C69 594 | NvAPI_D3D_Query_GetDataSize 0xF2A54796 595 | NvAPI_D3D_Query_GetType 0x4ACEEAF7 596 | NvAPI_D3D_RegisterApp 0xD44D3C4E 597 | NvAPI_DeleteCustomDisplay 0xE7CB998D 598 | NvAPI_DeleteUnderscanConfig 0xF98854C8 599 | NvAPI_Disp_DpAuxChannelControl 0x8EB56969 600 | NvAPI_DISP_EnumHDMIStereoModes 0xD2CCF5D6 601 | NvAPI_DISP_GetDisplayBlankingState 0x63E5D8DB 602 | NvAPI_DISP_GetHCloneTopology 0x47BAD137 603 | NvAPI_DISP_GetVirtualModeData 0x3230D69A 604 | NvAPI_DISP_OverrideDisplayModeList 0x0291BFF2 605 | NvAPI_DISP_SetDisplayBlankingState 0x1E17E29B 606 | NvAPI_DISP_SetHCloneTopology 0x61041C24 607 | NvAPI_DISP_ValidateHCloneTopology 0x5F4C2664 608 | NvAPI_EnumCustomDisplay 0x42892957 609 | NvAPI_EnumUnderscanConfig 0x4144111A 610 | NvAPI_Event_RegisterCallback 0xE6DBEA69 611 | NvAPI_Event_UnregisterCallback 0xDE1F9B45 612 | NvAPI_GetDisplayDriverMemoryInfo 0x774AA982 613 | NvAPI_GetDisplayFeatureConfig 0x8E985CCD 614 | NvAPI_GetDisplayFeatureConfigDefaults 0x0F5F4D01 615 | NvAPI_GetDisplayPosition 0x6BB1EE5D 616 | NvAPI_GetDisplaySettings 0xDC27D5D4 617 | NvAPI_GetDriverMemoryInfo 0x2DC95125 618 | NvAPI_GetDVCInfo 0x4085DE45 619 | NvAPI_GetDVCInfoEx 0x0E45002D 620 | NvAPI_GetHDCPLinkParameters 0xB3BB0772 621 | NvAPI_GetHUEInfo 0x95B64341 622 | NvAPI_GetHybridMode 0xE23B68C1 623 | NvAPI_GetImageSharpeningInfo 0x9FB063DF 624 | NvAPI_GetInfoFrame 0x09734F1D 625 | NvAPI_GetInfoFrameState 0x41511594 626 | NvAPI_GetInvalidGpuTopologies 0x15658BE6 627 | NvAPI_GetPVExtName 0x2F5B08E0 628 | NvAPI_GetPVExtProfile 0x1B1B9A16 629 | NvAPI_GetTiming 0xAFC4833E 630 | NvAPI_GetTVEncoderControls 0x5757474A 631 | NvAPI_GetTVOutputBorderColor 0x6DFD1C8C 632 | NvAPI_GetTVOutputInfo 0x30C805D5 633 | NvAPI_GetValidGpuTopologies 0x5DFAB48A 634 | NvAPI_GetVideoState 0x1C5659CD 635 | NvAPI_GPS_GetPerfSensors 0x271C1109 636 | NvAPI_GPS_GetPowerSteeringStatus 0x540EE82E 637 | NvAPI_GPS_GetThermalLimit 0x583113ED 638 | NvAPI_GPS_GetVPStateCap 0x71913023 639 | NvAPI_GPS_SetPowerSteeringStatus 0x9723D3A2 640 | NvAPI_GPS_SetThermalLimit 0xC07E210F 641 | NvAPI_GPS_SetVPStateCap 0x68888EB4 642 | NvAPI_GPU_ClientPowerPoliciesGetInfo 0x34206D86 643 | NvAPI_GPU_ClientPowerPoliciesGetStatus 0x70916171 644 | NvAPI_GPU_ClientPowerPoliciesSetStatus 0xAD95F5ED 645 | NvAPI_GPU_ClientPowerTopologyGetInfo 0xA4DFD3F2 646 | NvAPI_GPU_ClientPowerTopologyGetStatus 0xEDCF624E 647 | NvAPI_GPU_EnableDynamicPstates 0xFA579A0F 648 | NvAPI_GPU_EnableOverclockedPstates 0xB23B70EE 649 | NvAPI_GPU_GetAllClocks 0x1BD69F49 650 | NvAPI_GPU_GetColorSpaceConversion 0x8159E87A 651 | NvAPI_GPU_GetConnectorInfo 0x4ECA2C10 652 | NvAPI_GPU_GetCoolerPolicyTable 0x0518A32C 653 | NvAPI_GPU_GetCoolerSettings 0xDA141340 654 | NvAPI_GPU_GetCurrentFanSpeedLevel 0xBD71F0C9 655 | NvAPI_GPU_GetCurrentThermalLevel 0xD2488B79 656 | NvAPI_GPU_GetDeviceDisplayMode 0xD2277E3A 657 | NvAPI_GPU_GetDitherControl 0x932AC8FB 658 | NvAPI_GPU_GetFBWidthAndLocation 0x11104158 659 | NvAPI_GPU_GetFlatPanelInfo 0x36CFF969 660 | NvAPI_GPU_GetMemPartitionMask 0x329D77CD 661 | NvAPI_GPU_GetPartitionCount 0x86F05D7A 662 | NvAPI_GPU_GetPerfClocks 0x1EA54A3B 663 | NvAPI_GPU_GetPerGpuTopologyStatus 0xA81F8992 664 | NvAPI_GPU_GetPixelClockRange 0x66AF10B7 665 | NvAPI_GPU_GetPowerMizerInfo 0x76BFA16B 666 | NvAPI_GPU_GetPstateClientLimits 0x88C82104 667 | NvAPI_GPU_GetPstatesInfo 0xBA94C56E 668 | NvAPI_GPU_GetQuadroStatus 0xE332FA47 669 | NvAPI_GPU_GetRamMaker 0x42AEA16A 670 | NvAPI_GPU_GetRamType 0x57F7CAAC 671 | NvAPI_GPU_GetShaderPipeCount 0x63E2F56F 672 | NvAPI_GPU_GetShaderSubPipeCount 0x0BE17923 673 | NvAPI_GPU_GetSMMask 0xEB7AF173 674 | NvAPI_GPU_GetTotalSMCount 0xAE5FBCFE 675 | NvAPI_GPU_GetTotalSPCount 0xB6D62591 676 | NvAPI_GPU_GetTotalTPCCount 0x4E2F76A8 677 | NvAPI_GPU_GetTPCMask 0x4A35DF54 678 | NvAPI_GPU_GetUsages 0x189A1FDF 679 | NvAPI_GPU_GetVoltageDomainsStatus 0xC16C7E2C 680 | NvAPI_GPU_GetVoltages 0x7D656244 681 | NvAPI_GPU_Get_DisplayPort_DongleInfo 0x76A70E8D 682 | NvAPI_GPU_GPIOQueryLegalPins 0xFAB69565 683 | NvAPI_GPU_GPIOReadFromPin 0xF5E10439 684 | NvAPI_GPU_GPIOWriteToPin 0xF3B11E68 685 | NvAPI_GPU_QueryActiveApps 0x65B1C5F5 686 | NvAPI_GPU_RestoreCoolerPolicyTable 0xD8C4FE63 687 | NvAPI_GPU_RestoreCoolerSettings 0x8F6ED0FB 688 | NvAPI_GPU_SetColorSpaceConversion 0xFCABD23A 689 | NvAPI_GPU_SetCoolerLevels 0x891FA0AE 690 | NvAPI_GPU_SetCoolerPolicyTable 0x987947CD 691 | NvAPI_GPU_SetDitherControl 0xDF0DFCDD 692 | NvAPI_GPU_SetPerfClocks 0x07BCF4AC 693 | NvAPI_GPU_SetPixelClockRange 0x5AC7F8E5 694 | NvAPI_GPU_SetPowerMizerInfo 0x50016C78 695 | NvAPI_GPU_SetPstateClientLimits 0xFDFC7D49 696 | NvAPI_GPU_SetPstates20 0x0F4DAE6B 697 | NvAPI_GPU_SetPstatesInfo 0xCDF27911 698 | NvAPI_Hybrid_IsAppMigrationStateChangeable 0x584CB0B6 699 | NvAPI_Hybrid_QueryBlockedMigratableApps 0xF4C2F8CC 700 | NvAPI_Hybrid_QueryUnblockedNonMigratableApps 0x5F35BCB5 701 | NvAPI_Hybrid_SetAppMigrationState 0xFA0B9A59 702 | NvAPI_I2CReadEx 0x4D7B0709 703 | NvAPI_I2CWriteEx 0x283AC65A 704 | NvAPI_Mosaic_ChooseGpuTopologies 0x0033B140 705 | NvAPI_Mosaic_EnumGridTopologies 0xA3C55220 706 | NvAPI_Mosaic_GetDisplayCapabilities 0xD58026B9 707 | NvAPI_Mosaic_GetMosaicCapabilities 0xDA97071E 708 | NvAPI_Mosaic_GetMosaicViewports 0x07EBA036 709 | NvAPI_Mosaic_SetGridTopology 0x3F113C77 710 | NvAPI_Mosaic_ValidateDisplayGridsWithSLI 0x1ECFD263 711 | NvAPI_QueryNonMigratableApps 0xBB9EF1C3 712 | NvAPI_QueryUnderscanCap 0x61D7B624 713 | NvAPI_RevertCustomDisplayTrial 0x854BA405 714 | NvAPI_SaveCustomDisplay 0xA9062C78 715 | NvAPI_SetDisplayFeatureConfig 0xF36A668D 716 | NvAPI_SetDisplayPosition 0x57D9060F 717 | NvAPI_SetDisplaySettings 0xE04F3D86 718 | NvAPI_SetDVCLevel 0x172409B4 719 | NvAPI_SetDVCLevelEx 0x4A82C2B1 720 | NvAPI_SetFrameRateNotify 0x18919887 721 | NvAPI_SetGpuTopologies 0x25201F3D 722 | NvAPI_SetHUEAngle 0xF5A0F22C 723 | NvAPI_SetHybridMode 0xFB22D656 724 | NvAPI_SetImageSharpeningLevel 0x3FC9A59C 725 | NvAPI_SetInfoFrame 0x69C6F365 726 | NvAPI_SetInfoFrameState 0x67EFD887 727 | NvAPI_SetPVExtName 0x4FEEB498 728 | NvAPI_SetPVExtProfile 0x8354A8F4 729 | NvAPI_SetTopologyFocusDisplayAndView 0x0A8064F9 730 | NvAPI_SetTVEncoderControls 0xCA36A3AB 731 | NvAPI_SetTVOutputBorderColor 0xAED02700 732 | NvAPI_SetUnderscanConfig 0x3EFADA1D 733 | NvAPI_SetVideoState 0x054FE75A 734 | NvAPI_Stereo_AppHandShake 0x8C610BDA 735 | NvAPI_Stereo_ForceToScreenDepth 0x2D495758 736 | NvAPI_Stereo_GetCursorSeparation 0x72162B35 737 | NvAPI_Stereo_GetPixelShaderConstantB 0xC79333AE 738 | NvAPI_Stereo_GetPixelShaderConstantF 0xD4974572 739 | NvAPI_Stereo_GetPixelShaderConstantI 0xECD8F8CF 740 | NvAPI_Stereo_GetStereoCaps 0xDFC063B7 741 | NvAPI_Stereo_GetVertexShaderConstantB 0x712BAA5B 742 | NvAPI_Stereo_GetVertexShaderConstantF 0x622FDC87 743 | NvAPI_Stereo_GetVertexShaderConstantI 0x5A60613A 744 | NvAPI_Stereo_HandShake_Message_Control 0x315E0EF0 745 | NvAPI_Stereo_HandShake_Trigger_Activation 0xB30CD1A7 746 | NvAPI_Stereo_Is3DCursorSupported 0xD7C9EC09 747 | NvAPI_Stereo_SetCursorSeparation 0xFBC08FC1 748 | NvAPI_Stereo_SetPixelShaderConstantB 0xBA6109EE 749 | NvAPI_Stereo_SetPixelShaderConstantF 0xA9657F32 750 | NvAPI_Stereo_SetPixelShaderConstantI 0x912AC28F 751 | NvAPI_Stereo_SetVertexShaderConstantB 0x5268716F 752 | NvAPI_Stereo_SetVertexShaderConstantF 0x416C07B3 753 | NvAPI_Stereo_SetVertexShaderConstantI 0x7923BA0E 754 | NvAPI_SYS_GetChipSetTopologyStatus 0x8A50F126 755 | NvAPI_SYS_VenturaGetCoolingBudget 0xC9D86E33 756 | NvAPI_SYS_VenturaGetPowerReading 0x63685979 757 | NvAPI_SYS_VenturaGetState 0xCB7C208D 758 | NvAPI_SYS_VenturaSetCoolingBudget 0x85FF5A15 759 | NvAPI_SYS_VenturaSetState 0x0CE2E9D9 760 | NvAPI_TryCustomDisplay 0xBF6C1762 761 | NvAPI_VideoGetStereoInfo 0x8E1F8CFE 762 | NvAPI_VideoSetStereoInfo 0x97063269 -------------------------------------------------------------------------------- /info/NvAPI_Status.txt: -------------------------------------------------------------------------------- 1 | // ==================================================== 2 | //! NvAPI Status Values 3 | //! All NvAPI functions return one of these codes. 4 | //! \ingroup nvapistatus 5 | // ==================================================== 6 | 7 | 8 | typedef enum _NvAPI_Status 9 | { 10 | NVAPI_OK = 0, //!< Success. Request is completed. 11 | NVAPI_ERROR = -1, //!< Generic error 12 | NVAPI_LIBRARY_NOT_FOUND = -2, //!< NVAPI support library cannot be loaded. 13 | NVAPI_NO_IMPLEMENTATION = -3, //!< not implemented in current driver installation 14 | NVAPI_API_NOT_INITIALIZED = -4, //!< NvAPI_Initialize has not been called (successfully) 15 | NVAPI_INVALID_ARGUMENT = -5, //!< The argument/parameter value is not valid or NULL. 16 | NVAPI_NVIDIA_DEVICE_NOT_FOUND = -6, //!< No NVIDIA display driver, or NVIDIA GPU driving a display, was found. 17 | NVAPI_END_ENUMERATION = -7, //!< No more items to enumerate 18 | NVAPI_INVALID_HANDLE = -8, //!< Invalid handle 19 | NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9, //!< An argument's structure version is not supported 20 | NVAPI_HANDLE_INVALIDATED = -10, //!< The handle is no longer valid (likely due to GPU or display re-configuration) 21 | NVAPI_OPENGL_CONTEXT_NOT_CURRENT = -11, //!< No NVIDIA OpenGL context is current (but needs to be) 22 | NVAPI_INVALID_POINTER = -14, //!< An invalid pointer, usually NULL, was passed as a parameter 23 | NVAPI_NO_GL_EXPERT = -12, //!< OpenGL Expert is not supported by the current drivers 24 | NVAPI_INSTRUMENTATION_DISABLED = -13, //!< OpenGL Expert is supported, but driver instrumentation is currently disabled 25 | NVAPI_NO_GL_NSIGHT = -15, //!< OpenGL does not support Nsight 26 | 27 | NVAPI_EXPECTED_LOGICAL_GPU_HANDLE = -100, //!< Expected a logical GPU handle for one or more parameters 28 | NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE = -101, //!< Expected a physical GPU handle for one or more parameters 29 | NVAPI_EXPECTED_DISPLAY_HANDLE = -102, //!< Expected an NV display handle for one or more parameters 30 | NVAPI_INVALID_COMBINATION = -103, //!< The combination of parameters is not valid. 31 | NVAPI_NOT_SUPPORTED = -104, //!< Requested feature is not supported in the selected GPU 32 | NVAPI_PORTID_NOT_FOUND = -105, //!< No port ID was found for the I2C transaction 33 | NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE = -106, //!< Expected an unattached display handle as one of the input parameters. 34 | NVAPI_INVALID_PERF_LEVEL = -107, //!< Invalid perf level 35 | NVAPI_DEVICE_BUSY = -108, //!< Device is busy; request not fulfilled 36 | NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109, //!< NV persist file is not found 37 | NVAPI_PERSIST_DATA_NOT_FOUND = -110, //!< NV persist data is not found 38 | NVAPI_EXPECTED_TV_DISPLAY = -111, //!< Expected a TV output display 39 | NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR = -112, //!< Expected a TV output on the D Connector - HDTV_EIAJ4120. 40 | NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113, //!< SLI is not active on this device. 41 | NVAPI_SLI_RENDERING_MODE_NOTALLOWED = -114, //!< Setup of SLI rendering mode is not possible right now. 42 | NVAPI_EXPECTED_DIGITAL_FLAT_PANEL = -115, //!< Expected a digital flat panel. 43 | NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116, //!< Argument exceeds the expected size. 44 | NVAPI_DEVICE_SWITCHING_NOT_ALLOWED = -117, //!< Inhibit is ON due to one of the flags in NV_GPU_DISPLAY_CHANGE_INHIBIT or SLI active. 45 | NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118, //!< Testing of clocks is not supported. 46 | NVAPI_UNKNOWN_UNDERSCAN_CONFIG = -119, //!< The specified underscan config is from an unknown source (e.g. INF) 47 | NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120, //!< Timeout while reconfiguring GPUs 48 | NVAPI_DATA_NOT_FOUND = -121, //!< Requested data was not found 49 | NVAPI_EXPECTED_ANALOG_DISPLAY = -122, //!< Expected an analog display 50 | NVAPI_NO_VIDLINK = -123, //!< No SLI video bridge is present 51 | NVAPI_REQUIRES_REBOOT = -124, //!< NVAPI requires a reboot for the settings to take effect 52 | NVAPI_INVALID_HYBRID_MODE = -125, //!< The function is not supported with the current Hybrid mode. 53 | NVAPI_MIXED_TARGET_TYPES = -126, //!< The target types are not all the same 54 | NVAPI_SYSWOW64_NOT_SUPPORTED = -127, //!< The function is not supported from 32-bit on a 64-bit system. 55 | NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED = -128, //!< There is no implicit GPU topology active. Use NVAPI_SetHybridMode to change topology. 56 | NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS = -129, //!< Prompt the user to close all non-migratable applications. 57 | NVAPI_OUT_OF_MEMORY = -130, //!< Could not allocate sufficient memory to complete the call. 58 | NVAPI_WAS_STILL_DRAWING = -131, //!< The previous operation that is transferring information to or from this surface is incomplete. 59 | NVAPI_FILE_NOT_FOUND = -132, //!< The file was not found. 60 | NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS = -133, //!< There are too many unique instances of a particular type of state object. 61 | NVAPI_INVALID_CALL = -134, //!< The method call is invalid. For example, a method's parameter may not be a valid pointer. 62 | NVAPI_D3D10_1_LIBRARY_NOT_FOUND = -135, //!< d3d10_1.dll cannot be loaded. 63 | NVAPI_FUNCTION_NOT_FOUND = -136, //!< Couldn't find the function in the loaded DLL. 64 | NVAPI_INVALID_USER_PRIVILEGE = -137, //!< The application will require Administrator privileges to access this API. The application can be elevated to a higher permission level by selecting "Run as Administrator". 65 | NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138, //!< The handle corresponds to GDIPrimary. 66 | NVAPI_EXPECTED_COMPUTE_GPU_HANDLE = -139, //!< Setting Physx GPU requires that the GPU is compute-capable. 67 | NVAPI_STEREO_NOT_INITIALIZED = -140, //!< The Stereo part of NVAPI failed to initialize completely. Check if the stereo driver is installed. 68 | NVAPI_STEREO_REGISTRY_ACCESS_FAILED = -141, //!< Access to stereo-related registry keys or values has failed. 69 | NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED = -142, //!< The given registry profile type is not supported. 70 | NVAPI_STEREO_REGISTRY_VALUE_NOT_SUPPORTED = -143, //!< The given registry value is not supported. 71 | NVAPI_STEREO_NOT_ENABLED = -144, //!< Stereo is not enabled and the function needed it to execute completely. 72 | NVAPI_STEREO_NOT_TURNED_ON = -145, //!< Stereo is not turned on and the function needed it to execute completely. 73 | NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146, //!< Invalid device interface. 74 | NVAPI_STEREO_PARAMETER_OUT_OF_RANGE = -147, //!< Separation percentage or JPEG image capture quality is out of [0-100] range. 75 | NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED = -148, //!< The given frustum adjust mode is not supported. 76 | NVAPI_TOPO_NOT_POSSIBLE = -149, //!< The mosaic topology is not possible given the current state of the hardware. 77 | NVAPI_MODE_CHANGE_FAILED = -150, //!< An attempt to do a display resolution mode change has failed. 78 | NVAPI_D3D11_LIBRARY_NOT_FOUND = -151, //!< d3d11.dll/d3d11_beta.dll cannot be loaded. 79 | NVAPI_INVALID_ADDRESS = -152, //!< Address is outside of valid range. 80 | NVAPI_STRING_TOO_SMALL = -153, //!< The pre-allocated string is too small to hold the result. 81 | NVAPI_MATCHING_DEVICE_NOT_FOUND = -154, //!< The input does not match any of the available devices. 82 | NVAPI_DRIVER_RUNNING = -155, //!< Driver is running. 83 | NVAPI_DRIVER_NOTRUNNING = -156, //!< Driver is not running. 84 | NVAPI_ERROR_DRIVER_RELOAD_REQUIRED = -157, //!< A driver reload is required to apply these settings. 85 | NVAPI_SET_NOT_ALLOWED = -158, //!< Intended setting is not allowed. 86 | NVAPI_ADVANCED_DISPLAY_TOPOLOGY_REQUIRED = -159, //!< Information can't be returned due to "advanced display topology". 87 | NVAPI_SETTING_NOT_FOUND = -160, //!< Setting is not found. 88 | NVAPI_SETTING_SIZE_TOO_LARGE = -161, //!< Setting size is too large. 89 | NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162, //!< There are too many settings for a profile. 90 | NVAPI_PROFILE_NOT_FOUND = -163, //!< Profile is not found. 91 | NVAPI_PROFILE_NAME_IN_USE = -164, //!< Profile name is duplicated. 92 | NVAPI_PROFILE_NAME_EMPTY = -165, //!< Profile name is empty. 93 | NVAPI_EXECUTABLE_NOT_FOUND = -166, //!< Application not found in the Profile. 94 | NVAPI_EXECUTABLE_ALREADY_IN_USE = -167, //!< Application already exists in the other profile. 95 | NVAPI_DATATYPE_MISMATCH = -168, //!< Data Type mismatch 96 | NVAPI_PROFILE_REMOVED = -169, //!< The profile passed as parameter has been removed and is no longer valid. 97 | NVAPI_UNREGISTERED_RESOURCE = -170, //!< An unregistered resource was passed as a parameter. 98 | NVAPI_ID_OUT_OF_RANGE = -171, //!< The DisplayId corresponds to a display which is not within the normal outputId range. 99 | NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172, //!< Display topology is not valid so the driver cannot do a mode set on this configuration. 100 | NVAPI_DPMST_CHANGED = -173, //!< Display Port Multi-Stream topology has been changed. 101 | NVAPI_INSUFFICIENT_BUFFER = -174, //!< Input buffer is insufficient to hold the contents. 102 | NVAPI_ACCESS_DENIED = -175, //!< No access to the caller. 103 | NVAPI_MOSAIC_NOT_ACTIVE = -176, //!< The requested action cannot be performed without Mosaic being enabled. 104 | NVAPI_SHARE_RESOURCE_RELOCATED = -177, //!< The surface is relocated away from video memory. 105 | NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178, //!< The user should disable DWM before calling NvAPI. 106 | NVAPI_D3D_DEVICE_LOST = -179, //!< D3D device status is D3DERR_DEVICELOST or D3DERR_DEVICENOTRESET - the user has to reset the device. 107 | NVAPI_INVALID_CONFIGURATION = -180, //!< The requested action cannot be performed in the current state. 108 | NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181, //!< Call failed as stereo handshake not completed. 109 | NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS = -182, //!< The path provided was too short to determine the correct NVDRS_APPLICATION 110 | NVAPI_DEFAULT_STEREO_PROFILE_IS_NOT_DEFINED = -183, //!< Default stereo profile is not currently defined 111 | NVAPI_DEFAULT_STEREO_PROFILE_DOES_NOT_EXIST = -184, //!< Default stereo profile does not exist 112 | NVAPI_CLUSTER_ALREADY_EXISTS = -185, //!< A cluster is already defined with the given configuration. 113 | NVAPI_DPMST_DISPLAY_ID_EXPECTED = -186, //!< The input display id is not that of a multi stream enabled connector or a display device in a multi stream topology 114 | NVAPI_INVALID_DISPLAY_ID = -187, //!< The input display id is not valid or the monitor associated to it does not support the current operation 115 | NVAPI_STREAM_IS_OUT_OF_SYNC = -188, //!< While playing secure audio stream, stream goes out of sync 116 | NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189, //!< Older audio driver version than required 117 | NVAPI_VALUE_ALREADY_SET = -190, //!< Value already set, setting again not allowed. 118 | NVAPI_TIMEOUT = -191, //!< Requested operation timed out 119 | NVAPI_GPU_WORKSTATION_FEATURE_INCOMPLETE = -192, //!< The requested workstation feature set has incomplete driver internal allocation resources 120 | NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE = -193, //!< Call failed because InitActivation was not called. 121 | NVAPI_SYNC_NOT_ACTIVE = -194, //!< The requested action cannot be performed without Sync being enabled. 122 | NVAPI_SYNC_MASTER_NOT_FOUND = -195, //!< The requested action cannot be performed without Sync Master being enabled. 123 | NVAPI_INVALID_SYNC_TOPOLOGY = -196, //!< Invalid displays passed in the NV_GSYNC_DISPLAY pointer. 124 | NVAPI_ECID_SIGN_ALGO_UNSUPPORTED = -197, //!< The specified signing algorithm is not supported. Either an incorrect value was entered or the current installed driver/hardware does not support the input value. 125 | NVAPI_ECID_KEY_VERIFICATION_FAILED = -198, //!< The encrypted public key verification has failed. 126 | NVAPI_FIRMWARE_OUT_OF_DATE = -199, //!< The device's firmware is out of date. 127 | NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200, //!< The device's firmware is not supported. 128 | NVAPI_LICENSE_CALLER_AUTHENTICATION_FAILED = -201, //!< The caller is not authorized to modify the License. 129 | NVAPI_D3D_DEVICE_NOT_REGISTERED = -202, //!< The user tried to use a deferred context without registering the device first 130 | NVAPI_RESOURCE_NOT_ACQUIRED = -203, //!< Head or SourceId was not reserved for the VR Display before doing the Modeset or the dedicated display. 131 | NVAPI_TIMING_NOT_SUPPORTED = -204, //!< Provided timing is not supported. 132 | NVAPI_HDCP_ENCRYPTION_FAILED = -205, //!< HDCP Encryption Failed for the device. Would be applicable when the device is HDCP Capable. 133 | NVAPI_PCLK_LIMITATION_FAILED = -206, //!< Provided mode is over sink device pclk limitation. 134 | NVAPI_NO_CONNECTOR_FOUND = -207, //!< No connector on GPU found. 135 | NVAPI_HDCP_DISABLED = -208, //!< When a non-HDCP capable HMD is connected, we would inform user by this code. 136 | NVAPI_API_IN_USE = -209, //!< Atleast an API is still being called 137 | NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210, //!< No display found on Nvidia GPU(s). 138 | NVAPI_PRIV_SEC_VIOLATION = -211, //!< Priv security violation, improper access to a secured register. 139 | NVAPI_INCORRECT_VENDOR = -212, //!< NVAPI cannot be called by this vendor 140 | NVAPI_DISPLAY_IN_USE = -213, //!< DirectMode Display is already in use 141 | NVAPI_UNSUPPORTED_CONFIG_NON_HDCP_HMD = -214, //!< The Config is having Non-NVidia GPU with Non-HDCP HMD connected 142 | NVAPI_MAX_DISPLAY_LIMIT_REACHED = -215, //!< GPU's Max Display Limit has Reached 143 | NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216, //!< DirectMode not Enabled on the Display 144 | NVAPI_GPU_IN_DEBUG_MODE = -217, //!< GPU is in debug mode, OC is NOT allowed. 145 | NVAPI_D3D_CONTEXT_NOT_FOUND = -218, //!< No NvAPI context was found for this D3D object 146 | NVAPI_STEREO_VERSION_MISMATCH = -219, //!< there is version mismatch between stereo driver and dx driver 147 | NVAPI_GPU_NOT_POWERED = -220, //!< GPU is not powered and so the request cannot be completed. 148 | NVAPI_ERROR_DRIVER_RELOAD_IN_PROGRESS = -221, //!< The display driver update in progress. 149 | NVAPI_WAIT_FOR_HW_RESOURCE = -222, //!< Wait for HW resources allocation 150 | NVAPI_REQUIRE_FURTHER_HDCP_ACTION = -223, //!< operation requires further HDCP action 151 | NVAPI_DISPLAY_MUX_TRANSITION_FAILED = -224, //!< Dynamic Mux transition failure 152 | NVAPI_INVALID_DSC_VERSION = -225, //!< Invalid DSC version 153 | NVAPI_INVALID_DSC_SLICECOUNT = -226, //!< Invalid DSC slice count 154 | NVAPI_INVALID_DSC_OUTPUT_BPP = -227, //!< Invalid DSC output BPP 155 | NVAPI_FAILED_TO_LOAD_FROM_DRIVER_STORE = -228, //!< There was an error while loading nvapi.dll from the driver store. 156 | NVAPI_NO_VULKAN = -229, //!< OpenGL does not export Vulkan fake extensions 157 | NVAPI_REQUEST_PENDING = -230, //!< A request for NvTOPPs telemetry CData has already been made and is pending a response. 158 | NVAPI_RESOURCE_IN_USE = -231, //!< Operation cannot be performed because the resource is in use. 159 | NVAPI_INVALID_IMAGE = -232, //!< Device kernel image is invalid 160 | NVAPI_INVALID_PTX = -233, //!< PTX JIT compilation failed 161 | NVAPI_NVLINK_UNCORRECTABLE = -234, //!< Uncorrectable NVLink error was detected during the execution 162 | NVAPI_JIT_COMPILER_NOT_FOUND = -235, //!< PTX JIT compiler library was not found. 163 | NVAPI_INVALID_SOURCE = -236, //!< Device kernel source is invalid. 164 | NVAPI_ILLEGAL_INSTRUCTION = -237, //!< While executing a kernel, the device encountered an illegal instruction. 165 | NVAPI_INVALID_PC = -238, //!< While executing a kernel, the device program counter wrapped its address space 166 | NVAPI_LAUNCH_FAILED = -239, //!< An exception occurred on the device while executing a kernel 167 | NVAPI_NOT_PERMITTED = -240, //!< Attempted operation is not permitted. 168 | NVAPI_CALLBACK_ALREADY_REGISTERED = -241, //!< The callback function has already been registered. 169 | NVAPI_CALLBACK_NOT_FOUND = -242, //!< The callback function is not found or not registered. 170 | } NvAPI_Status; -------------------------------------------------------------------------------- /src/Class_NvAPI.ahk: -------------------------------------------------------------------------------- 1 | ; =========================================================================================================================================================================== 2 | 3 | /* 4 | AutoHotkey wrapper for NVIDIA NvAPI 5 | 6 | Author ....: jNizM 7 | Released ..: 2014-12-29 8 | Modified ..: 2020-09-30 9 | License ...: MIT 10 | GitHub ....: https://github.com/jNizM/AHK_NVIDIA_NvAPI 11 | Forum .....: https://www.autohotkey.com/boards/viewtopic.php?t=95112 12 | */ 13 | 14 | ; SCRIPT DIRECTIVES ========================================================================================================================================================= 15 | 16 | #Requires AutoHotkey v2.0- 17 | 18 | 19 | ; ===== NvAPI CORE FUNCTIONS ================================================================================================================================================ 20 | 21 | class NvAPI 22 | { 23 | static NvDLL := (A_PtrSize = 8) ? "nvapi64.dll" : "nvapi.dll" 24 | static _Init := NvAPI.__Initialize() 25 | 26 | 27 | static __Initialize() 28 | { 29 | if !(this.hModule := DllCall("LoadLibrary", "Str", this.NvDLL, "Ptr")) 30 | { 31 | MsgBox("NvAPI could not be startet!`n`nThe program will exit!", A_ThisFunc) 32 | ExitApp 33 | } 34 | if (NvStatus := DllCall(DllCall(this.NvDLL "\nvapi_QueryInterface", "UInt", 0x0150E828, "CDecl UPtr"), "CDecl") != 0) 35 | { 36 | MsgBox("NvAPI initialization failed: [ " NvStatus " ]`n`nThe program will exit!", A_ThisFunc) 37 | ExitApp 38 | } 39 | } 40 | 41 | 42 | 43 | static __Delete() 44 | { 45 | DllCall(DllCall(this.NvDLL "\nvapi_QueryInterface", "UInt", 0xD22BDD7E, "CDecl UPtr"), "CDecl") 46 | if (this.hModule) 47 | DllCall("FreeLibrary", "Ptr", this.hModule) 48 | } 49 | 50 | 51 | 52 | static QueryInterface(NvID) 53 | { 54 | return DllCall(this.NvDLL "\nvapi_QueryInterface", "UInt", NvID, "CDecl UPtr") 55 | } 56 | 57 | 58 | 59 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 60 | ; // 61 | ; // FUNCTION NAME: NvAPI.EnumLogicalGPUs 62 | ; // 63 | ; // This function returns an array of logical GPU handles. 64 | ; // Each handle represents one or more GPUs acting in concert as a single graphics device. 65 | ; // 66 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 67 | static EnumLogicalGPUs() 68 | { 69 | NvLogicalGpuHandle := Buffer(4 * Const.NVAPI_MAX_LOGICAL_GPUS, 0) 70 | if !(NvStatus := DllCall(this.QueryInterface(0x48B3EA59), "Ptr", NvLogicalGpuHandle, "UInt*", &GPUCount := 0, "CDecl")) 71 | { 72 | Enum := [] 73 | loop GPUCount 74 | { 75 | Enum.Push(NumGet(NvLogicalGpuHandle, 4 * (A_Index - 1), "UInt")) ; [OUT] One or more physical GPUs acting in concert (SLI) 76 | } 77 | return Enum 78 | } 79 | 80 | return this.GetErrorMessage(NvStatus) 81 | } 82 | 83 | 84 | 85 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 86 | ; // 87 | ; // FUNCTION NAME: NvAPI.EnumNvidiaDisplayHandle 88 | ; // 89 | ; // This function returns the handle of the NVIDIA display specified by the enum index (thisEnum). 90 | ; // The client should keep enumerating until it returns error. 91 | ; // 92 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 93 | static EnumNvidiaDisplayHandle(thisEnum := 0) 94 | { 95 | if !(NvStatus := DllCall(this.QueryInterface(0x9ABDD40D), "UInt", thisEnum, "Ptr*", &NvDisplayHandle := 0, "CDecl")) 96 | { 97 | return NvDisplayHandle ; [OUT] Display Device driven by NVIDIA GPU(s) (an attached display) 98 | } 99 | 100 | return this.GetErrorMessage(NvStatus) 101 | } 102 | 103 | 104 | 105 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 106 | ; // 107 | ; // FUNCTION NAME: NvAPI.EnumNvidiaUnAttachedDisplayHandle 108 | ; // 109 | ; // This function returns the handle of the NVIDIA unattached display specified by the enum index (thisEnum). 110 | ; // The client should keep enumerating until it returns error. 111 | ; // 112 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 113 | static EnumNvidiaUnAttachedDisplayHandle(thisEnum := 0) 114 | { 115 | if !(NvStatus := DllCall(this.QueryInterface(0x20DE9260), "UInt", thisEnum, "Ptr*", &NvUnAttachedDisplayHandle := 0, "CDecl")) 116 | { 117 | return NvUnAttachedDisplayHandle ; [OUT] Unattached Display Device driven by NVIDIA GPU(s) 118 | } 119 | 120 | return this.GetErrorMessage(NvStatus) 121 | } 122 | 123 | 124 | 125 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 126 | ; // 127 | ; // FUNCTION NAME: NvAPI.EnumPhysicalGPUs 128 | ; // 129 | ; // This function returns an array of physical GPU handles. 130 | ; // Each handle represents a physical GPU present in the system. 131 | ; // 132 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 133 | static EnumPhysicalGPUs() 134 | { 135 | NvPhysicalGpuHandle := Buffer(4 * Const.NVAPI_MAX_PHYSICAL_GPUS, 0) 136 | if !(NvStatus := DllCall(this.QueryInterface(0xE5AC921F), "Ptr", NvPhysicalGpuHandle, "UInt*", &GPUCount := 0, "CDecl")) 137 | { 138 | Enum := [] 139 | loop GPUCount 140 | { 141 | Enum.Push(NumGet(NvPhysicalGpuHandle, 4 * (A_Index - 1), "UInt")) ; [OUT] A single physical GPU 142 | } 143 | return Enum 144 | } 145 | 146 | return this.GetErrorMessage(NvStatus) 147 | } 148 | 149 | 150 | 151 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 152 | ; // 153 | ; // FUNCTION NAME: NvAPI.EnumTCCPhysicalGPUs 154 | ; // 155 | ; // This function returns an array of physical GPU handles that are in TCC Mode. 156 | ; // Each handle represents a physical GPU present in the system in TCC Mode. 157 | ; // 158 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 159 | static EnumTCCPhysicalGPUs() 160 | { 161 | NvPhysicalGpuHandle := Buffer(4 * Const.NVAPI_MAX_PHYSICAL_GPUS, 0) 162 | if !(NvStatus := DllCall(this.QueryInterface(0xD9930B07), "Ptr", NvPhysicalGpuHandle, "UInt*", &GPUCount := 0, "CDecl")) 163 | { 164 | Enum := [] 165 | loop GPUCount 166 | { 167 | Enum.Push(NumGet(NvPhysicalGpuHandle, 4 * (A_Index - 1), "UInt")) ; [OUT] A single physical GPU 168 | } 169 | return Enum 170 | } 171 | 172 | return this.GetErrorMessage(NvStatus) 173 | } 174 | 175 | 176 | 177 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 178 | ; // 179 | ; // FUNCTION NAME: NvAPI.GetDisplayDriverMemoryInfo 180 | ; // 181 | ; // This function retrieves the display driver memory information for the active display handle. 182 | ; // In a multi-GPU scenario, the physical framebuffer information is obtained for the GPU associated with active display handle. 183 | ; // In an SLI-mode scenario, the physical framebuffer information is obtained only from the display owner GPU. 184 | ; // 185 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 186 | static GetDisplayDriverMemoryInfo(thisEnum := 0) 187 | { 188 | static NV_DISPLAY_DRIVER_MEMORY_INFO := (6 * 4) 189 | 190 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 191 | MemoryInfo := Buffer(NV_DISPLAY_DRIVER_MEMORY_INFO, 0) 192 | NumPut("UInt", NV_DISPLAY_DRIVER_MEMORY_INFO | 0x20000, MemoryInfo, 0) ; [IN] version info 193 | if !(NvStatus := DllCall(this.QueryInterface(0x774AA982), "Ptr", hNvDisplay, "Ptr", MemoryInfo, "CDecl")) 194 | { 195 | DRIVER_MEMORY_INFO := Map() 196 | DRIVER_MEMORY_INFO["dedicatedVideoMemory"] := NumGet(MemoryInfo, 4, "UInt") ; [OUT] physical framebuffer (in kb) 197 | DRIVER_MEMORY_INFO["availableDedicatedVideoMemory"] := NumGet(MemoryInfo, 8, "UInt") ; [OUT] available physical framebuffer for allocating video memory surfaces (in kb) 198 | DRIVER_MEMORY_INFO["systemVideoMemory"] := NumGet(MemoryInfo, 12, "UInt") ; [OUT] system memory the driver allocates at load time (in kb) 199 | DRIVER_MEMORY_INFO["sharedSystemMemory"] := NumGet(MemoryInfo, 12, "UInt") ; [OUT] shared system memory that driver is allowed to commit for surfaces across all allocations (in kb) 200 | DRIVER_MEMORY_INFO["curAvailableDedicatedVideoMemory"] := NumGet(MemoryInfo, 12, "UInt") ; [OUT] current available physical framebuffer for allocating video memory surfaces (in kb) 201 | return DRIVER_MEMORY_INFO 202 | } 203 | 204 | return this.GetErrorMessage(NvStatus) 205 | } 206 | 207 | 208 | 209 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 210 | ; // 211 | ; // FUNCTION NAME: NvAPI.GetDisplayDriverVersion 212 | ; // 213 | ; // This function returns a struct that describes aspects of the display driver build. 214 | ; // Do not use this function - it is deprecated in release 290. Instead, use NvAPI_SYS_GetDriverAndBranchVersion. 215 | ; // 216 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 217 | static GetDisplayDriverVersion(thisEnum := 0) 218 | { 219 | static NV_DISPLAY_DRIVER_VERSION := (3 * 4) + (2 * Const.NVAPI_SHORT_STRING_MAX) 220 | 221 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 222 | Version := Buffer(NV_DISPLAY_DRIVER_VERSION, 0) 223 | NumPut("UInt", NV_DISPLAY_DRIVER_VERSION | 0x10000, Version, 0) ; [IN] version info 224 | if !(NvStatus := DllCall(this.QueryInterface(0xF951A4D1), "Ptr", hNvDisplay, "Ptr", Version, "CDecl")) 225 | { 226 | DRIVER_VERSION := Map() 227 | DRIVER_VERSION["drvVersion"] := NumGet(Version, 4, "UInt") ; [OUT] 228 | DRIVER_VERSION["bldChangeListNum"] := NumGet(Version, 8, "UInt") ; [OUT] 229 | DRIVER_VERSION["BuildBranchString"] := StrGet(Version.Ptr + 12, Const.NVAPI_SHORT_STRING_MAX, "CP0") ; [OUT] 230 | DRIVER_VERSION["AdapterString"] := StrGet(Version.Ptr + 76, Const.NVAPI_SHORT_STRING_MAX, "CP0") ; [OUT] 231 | return DRIVER_VERSION 232 | } 233 | 234 | return this.GetErrorMessage(NvStatus) 235 | } 236 | 237 | 238 | 239 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 240 | ; // 241 | ; // FUNCTION NAME: NvAPI.GetDriverMemoryInfo 242 | ; // 243 | ; // This function retrieves the display driver memory information for the active display handle. 244 | ; // In case of a multi-GPU scenario the physical framebuffer information is obtained for the GPU associated with the active display handle. 245 | ; // In the case of SLI, the physical framebuffer information is obtained only from the display owner GPU. 246 | ; // 247 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 248 | static GetDriverMemoryInfo(thisEnum := 0) 249 | { 250 | static NV_DRIVER_MEMORY_INFO := (4 * 4) 251 | 252 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 253 | MemoryInfo := Buffer(NV_DRIVER_MEMORY_INFO, 0) 254 | NumPut("UInt", NV_DRIVER_MEMORY_INFO | 0x10000, MemoryInfo, 0) ; [IN] version info 255 | if !(NvStatus := DllCall(this.QueryInterface(0x2DC95125), "Ptr", hNvDisplay, "Ptr", MemoryInfo, "CDecl")) 256 | { 257 | MEMORY_INFO := Map() 258 | MEMORY_INFO["dedicatedVideoMemory"] := NumGet(MemoryInfo, 4, "UInt") ; [OUT] physical framebuffer (in kb) 259 | MEMORY_INFO["systemVideoMemory"] := NumGet(MemoryInfo, 8, "UInt") ; [OUT] system memory the driver allocates at load time (in kb) 260 | MEMORY_INFO["sharedSystemMemory"] := NumGet(MemoryInfo, 12, "UInt") ; [OUT] shared system memory that driver is allowed to commit for surfaces across all allocations (in kb) 261 | return MEMORY_INFO 262 | } 263 | 264 | return this.GetErrorMessage(NvStatus) 265 | } 266 | 267 | 268 | 269 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 270 | ; // 271 | ; // FUNCTION NAME: NvAPI.GetDVCInfo 272 | ; // 273 | ; // This function retrieves the Digital Vibrance Control (DVC) information of the selected display. 274 | ; // 275 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 276 | static GetDVCInfo(thisEnum := 0) 277 | { 278 | static NV_DISPLAY_DVC_INFO := (4 * 4) 279 | 280 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 281 | DVCInfo := Buffer(NV_DISPLAY_DVC_INFO, 0) 282 | NumPut("UInt", NV_DISPLAY_DVC_INFO | 0x10000, DVCInfo, 0) ; [IN] version info 283 | if !(NvStatus := DllCall(this.QueryInterface(0x4085DE45), "Ptr", hNvDisplay, "UInt", outputId := 0, "Ptr", DVCInfo, "CDecl")) 284 | { 285 | DVC_INFO := Map() 286 | DVC_INFO["currentLevel"] := NumGet(DVCInfo, 4, "UInt") ; [OUT] current DVC level 287 | DVC_INFO["minLevel"] := NumGet(DVCInfo, 8, "UInt") ; [OUT] min range level 288 | DVC_INFO["maxLevel"] := NumGet(DVCInfo, 12, "UInt") ; [OUT] max range level 289 | return DVC_INFO 290 | } 291 | 292 | return this.GetErrorMessage(NvStatus) 293 | } 294 | 295 | 296 | 297 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 298 | ; // 299 | ; // FUNCTION NAME: NvAPI.GetDVCInfoEx 300 | ; // 301 | ; // This API retrieves the Digital Vibrance Control(DVC) information of the selected display. 302 | ; // 303 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 304 | static GetDVCInfoEx(thisEnum := 0) 305 | { 306 | static NV_DISPLAY_DVC_INFO_EX := (5 * 4) 307 | 308 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 309 | DVCInfo := Buffer(NV_DISPLAY_DVC_INFO_EX, 0) 310 | NumPut("UInt", NV_DISPLAY_DVC_INFO_EX | 0x10000, DVCInfo, 0) ; [IN] version info 311 | if !(NvStatus := DllCall(this.QueryInterface(0x0E45002D), "Ptr", hNvDisplay, "UInt", outputId := 0, "Ptr", DVCInfo, "CDecl")) 312 | { 313 | DVC_INFO_EX := Map() 314 | DVC_INFO_EX["currentLevel"] := NumGet(DVCInfo, 4, "Int") ; [OUT] current DVC level 315 | DVC_INFO_EX["minLevel"] := NumGet(DVCInfo, 8, "Int") ; [OUT] min range level 316 | DVC_INFO_EX["maxLevel"] := NumGet(DVCInfo, 12, "Int") ; [OUT] max range level 317 | DVC_INFO_EX["defaultLevel"] := NumGet(DVCInfo, 16, "Int") ; [OUT] default DVC level 318 | return DVC_INFO_EX 319 | } 320 | 321 | return this.GetErrorMessage(NvStatus) 322 | } 323 | 324 | 325 | 326 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 327 | ; // 328 | ; // FUNCTION NAME: NvAPI.GetErrorMessage 329 | ; // 330 | ; // This function converts an NvAPI error code into a null terminated string. 331 | ; // 332 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 333 | static GetErrorMessage(ErrorCode) 334 | { 335 | Desc := Buffer(Const.NVAPI_SHORT_STRING_MAX, 0) 336 | DllCall(this.QueryInterface(0x6C2D048C), "Ptr", ErrorCode, "Ptr", Desc, "CDecl") 337 | return "Error: " StrGet(Desc, "CP0") 338 | } 339 | 340 | 341 | 342 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 343 | ; // 344 | ; // FUNCTION NAME: NvAPI.GetHUEInfo 345 | ; // 346 | ; // This API retrieves the HUE information of the selected display. 347 | ; // 348 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 349 | static GetHUEInfo(thisEnum := 0) 350 | { 351 | static NV_DISPLAY_HUE_INFO := (3 * 4) 352 | 353 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 354 | HUEInfo := Buffer(NV_DISPLAY_HUE_INFO, 0) 355 | NumPut("UInt", NV_DISPLAY_HUE_INFO | 0x10000, HUEInfo, 0) ; [IN] version info 356 | if !(NvStatus := DllCall(this.QueryInterface(0x95B64341), "Ptr", hNvDisplay, "UInt", outputId := 0, "Ptr", HUEInfo, "CDecl")) 357 | { 358 | HUE_INFO := Map() 359 | HUE_INFO["currentHueAngle"] := NumGet(HUEInfo, 4, "UInt") ; [OUT] current HUE Angle. typically between 0 - 360 degrees 360 | HUE_INFO["defaultHueAngle"] := NumGet(HUEInfo, 8, "UInt") ; [OUT] default HUE Angle 361 | return HUE_INFO 362 | } 363 | 364 | return this.GetErrorMessage(NvStatus) 365 | } 366 | 367 | 368 | 369 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 370 | ; // 371 | ; // FUNCTION NAME: NvAPI.GetInterfaceVersionString 372 | ; // 373 | ; // This function returns a string describing the version of the NvAPI library. 374 | ; // The contents of the string are human readable. Do not assume a fixed format. 375 | ; // 376 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 377 | static GetInterfaceVersionString() 378 | { 379 | Desc := Buffer(Const.NVAPI_SHORT_STRING_MAX, 0) 380 | if !(NvStatus := DllCall(this.QueryInterface(0x01053FA5), "Ptr", Desc, "CDecl")) 381 | { 382 | return StrGet(Desc, "CP0") 383 | } 384 | 385 | return this.GetErrorMessage(NvStatus) 386 | } 387 | 388 | 389 | 390 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 391 | ; // 392 | ; // FUNCTION NAME: NvAPI.SetDVCLevel 393 | ; // 394 | ; // This function sets the DVC level for the selected display. 395 | ; // 396 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 397 | static SetDVCLevel(level, thisEnum := 0) 398 | { 399 | DVC := this.GetDVCInfo(thisEnum) 400 | if (level < DVC["minLevel"]) || (level > DVC["maxLevel"]) 401 | { 402 | MsgBox("DVCLevel should be within the range of min [" DVC["minLevel"] "] and max [" DVC["maxLevel"] "].", A_ThisFunc) 403 | return 0 404 | } 405 | 406 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 407 | if !(NvStatus := DllCall(this.QueryInterface(0x172409B4), "Ptr", hNvDisplay, "UInt", outputId := 0, "UInt", level, "CDECL")) 408 | { 409 | return level 410 | } 411 | 412 | return NvAPI.GetErrorMessage(NvStatus) 413 | } 414 | 415 | 416 | 417 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 418 | ; // 419 | ; // FUNCTION NAME: NvAPI.SetDVCLevelEx 420 | ; // 421 | ; // This API retrieves the Digital Vibrance Control(DVC) information of the selected display. 422 | ; // 423 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 424 | static SetDVCLevelEx(currentLevel, thisEnum := 0) 425 | { 426 | static NV_DISPLAY_DVC_INFO_EX := (5 * 4) 427 | 428 | DVC := this.GetDVCInfoEx(thisEnum) 429 | if (currentLevel < DVC["minLevel"]) || (currentLevel > DVC["maxLevel"]) 430 | { 431 | MsgBox("DVCLevel should be within the range of min [" DVC["minLevel"] "] and max [" DVC["maxLevel"] "].", A_ThisFunc) 432 | return 0 433 | } 434 | 435 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 436 | DVCInfo := Buffer(NV_DISPLAY_DVC_INFO_EX, 0) 437 | NumPut("UInt", NV_DISPLAY_DVC_INFO_EX | 0x10000, DVCInfo, 0) ; [IN] version info 438 | NumPut("Int", currentLevel, DVCInfo, 4) ; [IN] current DVC level 439 | if !(NvStatus := DllCall(this.QueryInterface(0x4A82C2B1), "Ptr", hNvDisplay, "UInt", outputId := 0, "Ptr", DVCInfo, "CDECL")) 440 | { 441 | return currentLevel 442 | } 443 | 444 | return NvAPI.GetErrorMessage(NvStatus) 445 | } 446 | 447 | 448 | 449 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 450 | ; // 451 | ; // FUNCTION NAME: NvAPI.SetHUEAngle 452 | ; // 453 | ; // This API sets the HUE level for the selected display. 454 | ; // 455 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 456 | static SetHUEAngle(hueAngle, thisEnum := 0) 457 | { 458 | if (hueAngle < 0) || (hueAngle > 360) 459 | { 460 | MsgBox("HUEAngle should be within the range of min [" 0 "] and max [" 360 "].", A_ThisFunc) 461 | return 0 462 | } 463 | 464 | hNvDisplay := this.EnumNvidiaDisplayHandle(thisEnum) 465 | if !(NvStatus := DllCall(this.QueryInterface(0xF5A0F22C), "Ptr", hNvDisplay, "UInt", outputId := 0, "UInt", hueAngle, "CDECL")) 466 | { 467 | return hueAngle 468 | } 469 | 470 | return NvAPI.GetErrorMessage(NvStatus) 471 | } 472 | 473 | } 474 | 475 | 476 | 477 | ; ===== NvAPI GPU FUNCTIONS ================================================================================================================================================= 478 | 479 | class GPU extends NvAPI 480 | { 481 | 482 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 483 | ; // 484 | ; // FUNCTION NAME: GPU.GetAllClockFrequencies 485 | ; // 486 | ; // This function retrieves the NV_GPU_CLOCK_FREQUENCIES structure for the specified physical GPU 487 | ; // 488 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 489 | static GetAllClockFrequencies(hPhysicalGpu := 0, ClockType := 0) 490 | { 491 | static NV_GPU_CLOCK_FREQUENCIES := (2 * 4) + (2 * 4 * Const.NVAPI_MAX_GPU_PUBLIC_CLOCKS) 492 | static NV_GPU_PUBLIC_CLOCK_ID := Map("GRAPHICS", 0, "MEMORY", 4, "PROCESSOR", 7, "VIDEO", 8) 493 | static NV_GPU_CLOCK_FREQUENCIES_CLOCK_TYPE := Map(0, "CURRENT_FREQ", 1, "BASE_CLOCK", 2, "BOOST_CLOCK", 3, "TYPE_NUM") 494 | 495 | if !(hPhysicalGpu) 496 | { 497 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 498 | } 499 | if !(NV_GPU_CLOCK_FREQUENCIES_CLOCK_TYPE.Has(ClockType)) 500 | { 501 | ClockType := 0 502 | } 503 | ClkFreqs := Buffer(NV_GPU_CLOCK_FREQUENCIES, 0) 504 | NumPut("UInt", NV_GPU_CLOCK_FREQUENCIES | 0x20000, ClkFreqs, 0) ; [IN] structure version 505 | NumPut("UInt", ClockType, ClkFreqs, 4) ; [IN] one of NV_GPU_CLOCK_FREQUENCIES_CLOCK_TYPE 506 | if !(NvStatus := DllCall(this.QueryInterface(0xDCB616C3), "Ptr", hPhysicalGpu, "Ptr", ClkFreqs, "CDecl")) 507 | { 508 | CLOCK_FREQUENCIES := Map() 509 | CLOCK_FREQUENCIES["enabled"] := NumGet(ClkFreqs, 4, "UInt") & 0x1 ; [OUT] bit 0 indicates if the dynamic Pstate is enabled or not 510 | 511 | for key, value in NV_GPU_PUBLIC_CLOCK_ID 512 | { 513 | Offset := 8 + (value * 8) 514 | CLOCK := Map() 515 | CLOCK["IsPresent"] := NumGet(ClkFreqs, Offset, "UInt") & 0x1 ; [OUT] set if this domain is present on this GPU 516 | CLOCK["frequency"] := NumGet(ClkFreqs, Offset + 4, "UInt") ; [OUT] clock frequency (kHz) 517 | 518 | CLOCK_FREQUENCIES[key] := CLOCK 519 | } 520 | return CLOCK_FREQUENCIES 521 | } 522 | 523 | return this.GetErrorMessage(NvStatus) 524 | } 525 | 526 | 527 | 528 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 529 | ; // 530 | ; // FUNCTION NAME: GPU.GetCoolerSettings 531 | ; // 532 | ; // This function retrieves the cooler information of all coolers or a specific cooler associated with the selected GPU. 533 | ; // Coolers are indexed 0 to NVAPI_MAX_COOLERS_PER_GPU-1. 534 | ; // 535 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 536 | static GetCoolerSettings(hPhysicalGpu := 0) 537 | { 538 | static NV_GPU_GETCOOLER_SETTINGS := (2 * 4) + (16 * 4 * Const.NVAPI_MAX_COOLERS_PER_GPU) 539 | static NV_COOLER_TYPE := Map(0, "NONE", 1, "FAN", 2, "WATER", 3, "LIQUID_NO2") 540 | static NV_COOLER_CONTROLLER := Map(0, "NONE", 1, "ADI", 2, "INTERNAL") 541 | static NV_COOLER_POLICY := Map(0, "NONE", 1, "MANUAL", 2, "PERF", 4, "DISCRETE", 8, "CONTINUOUS", 16, "CONTINUOUS_SW", 32, "DEFAULT") 542 | static NV_COOLER_TARGET := Map(0, "NONE", 1, "GPU", 2, "MEMORY", 4, "POWER_SUPPLY", 7, "ALL", 8, "COOLER1", 9, "COOLER2", 10, "COOLER3") 543 | static NV_COOLER_CONTROL := Map(0, "NONE", 1, "TOGGLE", 2, "VARIABLE") 544 | 545 | if !(hPhysicalGpu) 546 | { 547 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 548 | } 549 | CoolerInfo := Buffer(NV_GPU_GETCOOLER_SETTINGS, 0) 550 | NumPut("UInt", NV_GPU_GETCOOLER_SETTINGS | 0x30000, CoolerInfo, 0) ; [IN] structure version 551 | if !(NvStatus := DllCall(this.QueryInterface(0xDA141340), "Ptr", hPhysicalGpu, "UInt", Const.NVAPI_COOLER_TARGET_ALL, "Ptr", CoolerInfo, "CDecl")) 552 | { 553 | COOLER_SETTINGS := Map() 554 | COOLER_SETTINGS["count"] := NumGet(CoolerInfo, 4, "UInt") ; [OUT] number of associated coolers with the selected GPU 555 | loop COOLER_SETTINGS["count"] 556 | { 557 | Offset := 8 + ((A_Index - 1) * 64) 558 | COOLER := Map() 559 | COOLER["type"] := NV_COOLER_TYPE[NumGet(CoolerInfo, Offset, "UInt")] ; [OUT] type of cooler - FAN, WATER, LIQUID_NO2... 560 | COOLER["controller"] := NV_COOLER_CONTROLLER[NumGet(CoolerInfo, Offset + 4, "UInt")] ; [OUT] internal, ADI... 561 | COOLER["defaultMinLevel"] := NumGet(CoolerInfo, Offset + 8, "UInt") ; [OUT] the min default value % of the cooler 562 | COOLER["defaultMaxLevel"] := NumGet(CoolerInfo, Offset + 12, "UInt") ; [OUT] the max default value % of the cooler 563 | COOLER["currentMinLevel"] := NumGet(CoolerInfo, Offset + 16, "UInt") ; [OUT] the current allowed min value % of the cooler 564 | COOLER["currentMaxLevel"] := NumGet(CoolerInfo, Offset + 20, "UInt") ; [OUT] the current allowed max value % of the cooler 565 | COOLER["currentLevel"] := NumGet(CoolerInfo, Offset + 24, "UInt") ; [OUT] the current value % of the cooler 566 | COOLER["defaultPolicy"] := NV_COOLER_POLICY[NumGet(CoolerInfo, Offset + 28, "UInt")] ; [OUT] cooler control policy - auto-perf, auto-thermal, manual, hybrid... 567 | COOLER["currentPolicy"] := NV_COOLER_POLICY[NumGet(CoolerInfo, Offset + 32, "UInt")] ; [OUT] cooler control policy - auto-perf, auto-thermal, manual, hybrid... 568 | COOLER["target"] := NV_COOLER_TARGET[NumGet(CoolerInfo, Offset + 36, "UInt")] ; [OUT] cooling target - GPU, memory, chipset, powersupply, Visual Computing Device... 569 | COOLER["controlType"] := NV_COOLER_CONTROL[NumGet(CoolerInfo, Offset + 40, "UInt")] ; [OUT] toggle or variable 570 | COOLER["active"] := NumGet(CoolerInfo, Offset + 44, "UInt") ; [OUT] is the cooler active - fan spinning... 571 | COOLER["speedRPM"] := NumGet(CoolerInfo, Offset + 48, "UInt") ; [OUT] current tachometer reading in RPM 572 | COOLER["bSupported"] := NumGet(CoolerInfo, Offset + 52, "UChar") ; [OUT] cooler supports tach function? 573 | COOLER["maxSpeedRPM"] := NumGet(CoolerInfo, Offset + 56, "UInt") ; [OUT] maximum RPM corresponding to 100% defaultMaxLevel 574 | COOLER["minSpeedRPM"] := NumGet(CoolerInfo, Offset + 60, "UInt") ; [OUT] minimum RPM corresponding to 100% defaultMinLevel 575 | 576 | COOLER_SETTINGS[A_Index] := COOLER 577 | } 578 | return COOLER_SETTINGS 579 | } 580 | 581 | return this.GetErrorMessage(NvStatus) 582 | } 583 | 584 | 585 | 586 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 587 | ; // 588 | ; // FUNCTION NAME: GPU.GetCurrentFanSpeedLevel 589 | ; // 590 | ; // This API returns the current fan speed Level (Normal, Medium or Critical). 591 | ; // 592 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 593 | static GetCurrentFanSpeedLevel(hPhysicalGpu := 0) 594 | { 595 | static NV_EVENT_LEVEL := Map(0, "UNKNOWN", 1, "NORMAL", 2, "WARNING", 3, "CRITICAL") 596 | 597 | if !(hPhysicalGpu) 598 | { 599 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 600 | } 601 | if !(NvStatus := DllCall(this.QueryInterface(0xBD71F0C9), "Ptr", hPhysicalGpu, "Int*", &FanSpeedLevel := 0, "CDecl")) 602 | { 603 | return NV_EVENT_LEVEL[FanSpeedLevel] 604 | } 605 | 606 | return this.GetErrorMessage(NvStatus) 607 | } 608 | 609 | 610 | 611 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 612 | ; // 613 | ; // FUNCTION NAME: GPU.GetCurrentThermalLevel 614 | ; // 615 | ; // This API returns the current Level (Normal, Medium or Critical) of the thermal sensor. 616 | ; // 617 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 618 | static GetCurrentThermalLevel(hPhysicalGpu := 0) 619 | { 620 | static NV_EVENT_LEVEL := Map(0, "UNKNOWN", 1, "NORMAL", 2, "WARNING", 3, "CRITICAL") 621 | 622 | if !(hPhysicalGpu) 623 | { 624 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 625 | } 626 | if !(NvStatus := DllCall(this.QueryInterface(0xD2488B79), "Ptr", hPhysicalGpu, "Int*", &ThermalLevel := 0, "CDecl")) 627 | { 628 | return NV_EVENT_LEVEL[ThermalLevel] 629 | } 630 | 631 | return this.GetErrorMessage(NvStatus) 632 | } 633 | 634 | 635 | 636 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 637 | ; // 638 | ; // FUNCTION NAME: GPU.GetDynamicPstatesInfoEx 639 | ; // 640 | ; // This API retrieves the NV_GPU_DYNAMIC_PSTATES_INFO_EX structure for the specified physical GPU. 641 | ; // 642 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 643 | static GetDynamicPstatesInfoEx(hPhysicalGpu := 0) 644 | { 645 | static NV_GPU_DYNAMIC_PSTATES_INFO_EX := (2 * 4) + (2 * 4 * Const.NVAPI_MAX_GPU_UTILIZATIONS) 646 | static NVAPI_GPU_UTILIZATION_DOMAIN_ID := ["GPU", "FB", "VID", "BUS"] 647 | 648 | if !(hPhysicalGpu) 649 | { 650 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 651 | } 652 | DynamicPstatesInfoEx := Buffer(NV_GPU_DYNAMIC_PSTATES_INFO_EX, 0) 653 | NumPut("UInt", NV_GPU_DYNAMIC_PSTATES_INFO_EX | 0x10000, DynamicPstatesInfoEx, 0) ; [IN] structure version 654 | if !(NvStatus := DllCall(this.QueryInterface(0x60DED2ED), "Ptr", hPhysicalGpu, "Ptr", DynamicPstatesInfoEx, "CDecl")) 655 | { 656 | PSTATES_INFO_EX := Map() 657 | PSTATES_INFO_EX["enabled"] := NumGet(DynamicPstatesInfoEx, 4, "UInt") & 0x1 ; [OUT] bit 0 indicates if the dynamic Pstate is enabled or not 658 | 659 | for index, value in NVAPI_GPU_UTILIZATION_DOMAIN_ID 660 | { 661 | Offset := 8 + ((index - 1) * 8) 662 | PSTATES := Map() 663 | PSTATES["IsPresent"] := NumGet(DynamicPstatesInfoEx, Offset, "UInt") & 0x1 ; [OUT] set if this utilization domain is present on this GPU 664 | PSTATES["percentage"] := NumGet(DynamicPstatesInfoEx, Offset + 4, "UInt") ; [OUT] percentage of time where the domain is considered busy in the last 1 second interval 665 | 666 | PSTATES_INFO_EX[value] := PSTATES 667 | } 668 | return PSTATES_INFO_EX 669 | } 670 | 671 | return this.GetErrorMessage(NvStatus) 672 | } 673 | 674 | 675 | 676 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 677 | ; // 678 | ; // FUNCTION NAME: GPU.GetFullName 679 | ; // 680 | ; // This function retrieves the full GPU name as an ASCII string - for example, "Quadro FX 1400". 681 | ; // 682 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 683 | static GetFullName(hPhysicalGpu := 0) 684 | { 685 | if !(hPhysicalGpu) 686 | { 687 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 688 | } 689 | Name := Buffer(Const.NVAPI_SHORT_STRING_MAX, 0) 690 | if !(NvStatus := DllCall(this.QueryInterface(0xCEEE8E9F), "Ptr", hPhysicalGpu, "Ptr", Name, "CDecl")) 691 | { 692 | return StrGet(Name, "CP0") 693 | } 694 | 695 | return this.GetErrorMessage(NvStatus) 696 | } 697 | 698 | 699 | 700 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 701 | ; // 702 | ; // FUNCTION NAME: GPU.GetGpuCoreCount 703 | ; // 704 | ; // Retrieves the total number of cores defined for a GPU. 705 | ; // 706 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 707 | static GetGpuCoreCount(hPhysicalGpu := 0) 708 | { 709 | if !(hPhysicalGpu) 710 | { 711 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 712 | } 713 | if !(NvStatus := DllCall(this.QueryInterface(0xC7026A87), "Ptr", hPhysicalGpu, "UInt*", &Count := 0, "CDecl")) 714 | { 715 | return Count 716 | } 717 | 718 | return this.GetErrorMessage(NvStatus) 719 | } 720 | 721 | 722 | 723 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 724 | ; // 725 | ; // FUNCTION NAME: GPU.GetMemoryInfo 726 | ; // 727 | ; // This function retrieves the available driver memory footprint for the specified GPU. 728 | ; // If the GPU is in TCC Mode, only dedicatedVideoMemory will be returned. 729 | ; // 730 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 731 | static GetMemoryInfo(hPhysicalGpu := 0) 732 | { 733 | static NV_DISPLAY_DRIVER_MEMORY_INFO := (8 * 4) 734 | 735 | if !(hPhysicalGpu) 736 | { 737 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 738 | } 739 | MemoryInfo := Buffer(NV_DISPLAY_DRIVER_MEMORY_INFO, 0) 740 | NumPut("UInt", NV_DISPLAY_DRIVER_MEMORY_INFO | 0x30000, MemoryInfo, 0) ; [IN] version info 741 | if !(NvStatus := DllCall(this.QueryInterface(0x07F9B368), "Ptr", hPhysicalGpu, "Ptr", MemoryInfo, "CDecl")) 742 | { 743 | MEMORY_INFO := Map() 744 | MEMORY_INFO["dedicatedVideoMemory"] := NumGet(MemoryInfo, 4, "UInt") ; [OUT] physical framebuffer (in kb) 745 | MEMORY_INFO["availableDedicatedVideoMemory"] := NumGet(MemoryInfo, 8, "UInt") ; [OUT] available physical framebuffer for allocating video memory surfaces (in kb) 746 | MEMORY_INFO["systemVideoMemory"] := NumGet(MemoryInfo, 12, "UInt") ; [OUT] system memory the driver allocates at load time (in kb) 747 | MEMORY_INFO["sharedSystemMemory"] := NumGet(MemoryInfo, 16, "UInt") ; [OUT] shared system memory that driver is allowed to commit for surfaces across all allocations (in kb) 748 | MEMORY_INFO["curAvailableDedicatedVideoMemory"] := NumGet(MemoryInfo, 20, "UInt") ; [OUT] current available physical framebuffer for allocating video memory surfaces (in kb) 749 | MEMORY_INFO["dedicatedVideoMemoryEvictionsSize"] := NumGet(MemoryInfo, 24, "UInt") ; [OUT] total size of memory released as a result of the evictions (in kb) 750 | MEMORY_INFO["dedicatedVideoMemoryEvictionCount"] := NumGet(MemoryInfo, 28, "UInt") ; [OUT] number of eviction events that caused an allocation to be removed from dedicated video memory to free GPU video memory to make room for other allocations. 751 | return MEMORY_INFO 752 | } 753 | 754 | return this.GetErrorMessage(NvStatus) 755 | } 756 | 757 | 758 | 759 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 760 | ; // 761 | ; // FUNCTION NAME: GPU.GetRamMaker 762 | ; // 763 | ; // This function retrieves the RAM maker associated with this GPU. 764 | ; // 765 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 766 | static GetRamMaker(hPhysicalGpu := 0) 767 | { 768 | static NV_RAM_MAKER := Map(0, "UNKNOWN", 1, "SAMSUNG", 2, "QIMONDA", 3, "ELPIDA", 4, "ETRON", 5, "NANYA", 6, "HYNIX", 7, "MOSEL", 8, "WINBOND", 9, "ELITE", 10, "MICRON") 769 | 770 | if !(hPhysicalGpu) 771 | { 772 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 773 | } 774 | if !(NvStatus := DllCall(this.QueryInterface(0x42AEA16A), "Ptr", hPhysicalGpu, "Int*", &RamType := 0, "CDecl")) 775 | { 776 | return NV_RAM_MAKER[RamType] 777 | } 778 | 779 | return this.GetErrorMessage(NvStatus) 780 | } 781 | 782 | 783 | 784 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 785 | ; // 786 | ; // FUNCTION NAME: GPU.GetRamType 787 | ; // 788 | ; // This function retrieves the type of VRAM associated with this GPU. 789 | ; // 790 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 791 | static GetRamType(hPhysicalGpu := 0) 792 | { 793 | static NV_GPU_RAM_TYPE := Map(0, "UNKNOWN", 1, "SDRAM", 2, "DDR1", 3, "DDR2", 4, "GDDR2", 5, "GDDR3", 6, "GDDR4", 7, "DDR3", 8, "GDDR5", 9, "LPDDR2") 794 | 795 | if !(hPhysicalGpu) 796 | { 797 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 798 | } 799 | if !(NvStatus := DllCall(this.QueryInterface(0x57F7CAAC), "Ptr", hPhysicalGpu, "Int*", &RamType := 0, "CDecl")) 800 | { 801 | return NV_GPU_RAM_TYPE[RamType] 802 | } 803 | 804 | return this.GetErrorMessage(NvStatus) 805 | } 806 | 807 | 808 | 809 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 810 | ; // 811 | ; // FUNCTION NAME: GPU.GetTachReading 812 | ; // 813 | ; // This API retrieves the fan speed tachometer reading for the specified physical GPU. 814 | ; // 815 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 816 | static GetTachReading(hPhysicalGpu := 0) 817 | { 818 | if !(hPhysicalGpu) 819 | { 820 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 821 | } 822 | if !(NvStatus := DllCall(this.QueryInterface(0x5F608315), "Ptr", hPhysicalGpu, "UInt*", &Value := 0, "CDecl")) 823 | { 824 | return Value 825 | } 826 | 827 | return this.GetErrorMessage(NvStatus) 828 | } 829 | 830 | 831 | 832 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 833 | ; // 834 | ; // FUNCTION NAME: GPU.GetThermalSettings 835 | ; // 836 | ; // This function retrieves the thermal information of all thermal sensors or specific thermal sensor associated with the selected GPU. 837 | ; // Thermal sensors are indexed 0 to NVAPI_MAX_THERMAL_SENSORS_PER_GPU-1. 838 | ; // 839 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 840 | static GetThermalSettings(hPhysicalGpu := 0) 841 | { 842 | static NV_GPU_THERMAL_SETTINGS := (2 * 4) + (5 * 4 * Const.NVAPI_MAX_THERMAL_SENSORS_PER_GPU) 843 | static NV_THERMAL_CONTROLLER := Map(-1, "UNKNOWN", 0, "NONE", 1, "GPU_INTERNAL", 2, "ADM1032", 3, "MAX6649", 4, "MAX1617", 5, "LM99", 6, "LM89", 7, "LM64" 844 | , 8, "ADT7473", 9, "SBMAX6649", 10, "VBIOSEVT", 11, "OS") 845 | static NV_THERMAL_TARGET := Map(-1, "UNKNOWN", 0, "NONE", 1, "GPU", 2, "MEMORY", 4, "POWER_SUPPLY", 8, "BOARD", 9, "VCD_BOARD", 10, "VCD_INLET", 11, "VCD_OUTLET", 15, "ALL") 846 | 847 | if !(hPhysicalGpu) 848 | { 849 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 850 | } 851 | ThermalSettings := Buffer(NV_GPU_THERMAL_SETTINGS, 0) 852 | NumPut("UInt", NV_GPU_THERMAL_SETTINGS | 0x20000, ThermalSettings, 0) ; [IN] structure version 853 | if !(NvStatus := DllCall(this.QueryInterface(0xE3640A56), "Ptr", hPhysicalGpu, "UInt", Const.NVAPI_THERMAL_TARGET_ALL, "Ptr", ThermalSettings, "CDecl")) 854 | { 855 | THERMAL_SETTINGS := Map() 856 | THERMAL_SETTINGS["count"] := NumGet(ThermalSettings, 4, "UInt") ; [OUT] number of associated thermal sensors 857 | loop THERMAL_SETTINGS["count"] 858 | { 859 | Offset := 8 + ((A_Index - 1) * 20) 860 | THERMAL := Map() 861 | THERMAL["controller"] := NV_THERMAL_CONTROLLER[NumGet(ThermalSettings, Offset, "UInt")] ; [OUT] internal, ADM1032, MAX6649... 862 | THERMAL["defaultMinTemp"] := NumGet(ThermalSettings, Offset + 4, "Int") ; [OUT] min default temperature value of the thermal sensor in degree Celsius 863 | THERMAL["defaultMaxTemp"] := NumGet(ThermalSettings, Offset + 8, "Int") ; [OUT] max default temperature value of the thermal sensor in degree Celsius 864 | THERMAL["currentTemp"] := NumGet(ThermalSettings, Offset + 12, "Int") ; [OUT] current temperature value of the thermal sensor in degree Celsius 865 | THERMAL["target"] := NV_THERMAL_TARGET[NumGet(ThermalSettings, Offset + 16, "UInt")] ; [OUT] thermal sensor targeted @ GPU, memory, chipset, powersupply, Visual Computing Device, etc. 866 | 867 | THERMAL_SETTINGS[A_Index] := THERMAL 868 | } 869 | return THERMAL_SETTINGS 870 | } 871 | 872 | return this.GetErrorMessage(NvStatus) 873 | } 874 | 875 | 876 | 877 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 878 | ; // 879 | ; // FUNCTION NAME: GPU.GetUsages 880 | ; // 881 | ; // This function retrieves the usage associated with this GPU. 882 | ; // 883 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 884 | static GetUsages(hPhysicalGpu := 0) 885 | { 886 | static NV_USAGES_INFO := 4 + (4 * Const.NVAPI_MAX_USAGES_PER_GPU) 887 | 888 | if !(hPhysicalGpu) 889 | { 890 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 891 | } 892 | UsagesInfo := Buffer(NV_USAGES_INFO, 0) 893 | NumPut("UInt", NV_USAGES_INFO | 0x10000, UsagesInfo, 0) ; [IN] version info 894 | if !(NvStatus := DllCall(this.QueryInterface(0x189A1FDF), "Ptr", hPhysicalGpu, "Ptr", UsagesInfo, "CDecl")) 895 | { 896 | return NumGet(UsagesInfo, 12, "UInt") ; [OUT] GPU usage 897 | } 898 | 899 | return this.GetErrorMessage(NvStatus) 900 | } 901 | 902 | 903 | 904 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 905 | ; // 906 | ; // FUNCTION NAME: GPU.GetQuadroStatus 907 | ; // 908 | ; // This function retrieves the Quadro status for the GPU (1 if Quadro, 0 if GeForce). 909 | ; // Do not use this function - it is deprecated in release 460. 910 | ; // 911 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 912 | static GetQuadroStatus(hPhysicalGpu := 0) 913 | { 914 | if !(hPhysicalGpu) 915 | { 916 | hPhysicalGpu := this.EnumPhysicalGPUs()[1] 917 | } 918 | if !(NvStatus := DllCall(this.QueryInterface(0xE332FA47), "Ptr", hPhysicalGpu, "UInt*", &Status := 0, "CDecl")) 919 | { 920 | return (Status) ? "Quadro" : "GeForce" 921 | } 922 | 923 | return this.GetErrorMessage(NvStatus) 924 | } 925 | 926 | } 927 | 928 | 929 | 930 | ; ===== NvAPI SYS FUNCTIONS ================================================================================================================================================= 931 | 932 | class SYS extends NvAPI 933 | { 934 | 935 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 936 | ; // 937 | ; // FUNCTION NAME: SYS.GetChipSetInfo 938 | ; // 939 | ; // This function returns information about the system's chipset. 940 | ; // 941 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 942 | static GetChipSetInfo() 943 | { 944 | static NV_CHIPSET_INFO := (10 * 4) + (3 * Const.NVAPI_SHORT_STRING_MAX) 945 | 946 | ChipSetInfo := Buffer(NV_CHIPSET_INFO, 0) 947 | NumPut("UInt", NV_CHIPSET_INFO | 0x40000, ChipSetInfo, 0) ; [IN] version info 948 | if !(NvStatus := DllCall(this.QueryInterface(0x53DABBCA), "Ptr", ChipSetInfo, "CDecl")) 949 | { 950 | CHIPSET_INFO := Map() 951 | CHIPSET_INFO["vendorId"] := NumGet(ChipSetInfo, 4, "UInt") ; [OUT] chipset vendor identification 952 | CHIPSET_INFO["deviceId"] := NumGet(ChipSetInfo, 8, "UInt") ; [OUT] chipset device identification 953 | CHIPSET_INFO["VendorName"] := StrGet(ChipSetInfo.Ptr + 12, Const.NVAPI_SHORT_STRING_MAX, "CP0") ; [OUT] chipset vendor Name 954 | CHIPSET_INFO["ChipsetName"] := StrGet(ChipSetInfo.Ptr + 76, Const.NVAPI_SHORT_STRING_MAX, "CP0") ; [OUT] chipset device Name 955 | CHIPSET_INFO["flags"] := NumGet(ChipSetInfo, 140, "UInt") ; [OUT] chipset info flags - obsolete 956 | CHIPSET_INFO["subSysVendorId"] := NumGet(ChipSetInfo, 144, "UInt") ; [OUT] chipset subsystem vendor identification 957 | CHIPSET_INFO["subSysDeviceId"] := NumGet(ChipSetInfo, 148, "UInt") ; [OUT] chipset subsystem device identification 958 | CHIPSET_INFO["SubSysVendorName"] := StrGet(ChipSetInfo.Ptr + 152, Const.NVAPI_SHORT_STRING_MAX, "CP0") ; [OUT] subsystem vendor Name 959 | CHIPSET_INFO["HBvendorId"] := NumGet(ChipSetInfo, 216, "UInt") ; [OUT] host bridge vendor identification 960 | CHIPSET_INFO["HBdeviceId"] := NumGet(ChipSetInfo, 220, "UInt") ; [OUT] host bridge device identification 961 | CHIPSET_INFO["HBsubSysVendorId"] := NumGet(ChipSetInfo, 224, "UInt") ; [OUT] host bridge subsystem vendor identification 962 | CHIPSET_INFO["HBsubSysDeviceId"] := NumGet(ChipSetInfo, 228, "UInt") ; [OUT] host bridge subsystem device identification 963 | return CHIPSET_INFO 964 | } 965 | 966 | return this.GetErrorMessage(NvStatus) 967 | } 968 | 969 | 970 | 971 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 972 | ; // 973 | ; // FUNCTION NAME: SYS.GetDisplayDriverInfo 974 | ; // 975 | ; // This API will return information related to the NVIDIA Display Driver. 976 | ; // Note that out of the driver types - Studio, Game Ready, RTX Production Branch, RTX New Feature Branch - only one driver type can be available in system. 977 | ; // 978 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 979 | static GetDisplayDriverInfo() 980 | { 981 | static NV_DISPLAY_DRIVER_INFO := (2 * 4) + (Const.NVAPI_SHORT_STRING_MAX) + 4 982 | static NvCaps := Map("IsDCHDriver", 1, "IsNVIDIAStudioPackage", 2, "IsNVIDIAGameReadyPackage", 4, "IsNVIDIARTXProductionBranchPackage", 8, "IsNVIDIARTXNewFeatureBranchPackage", 16) 983 | 984 | DriverInfo := Buffer(NV_DISPLAY_DRIVER_INFO, 0) 985 | NumPut("UInt", NV_DISPLAY_DRIVER_INFO | 0x10000, DriverInfo, 0) ; [IN] version info 986 | if !(NvStatus := DllCall(this.QueryInterface(0x721FACEB), "Ptr", DriverInfo, "CDecl")) 987 | { 988 | DRIVER_INFO := Map() 989 | DRIVER_INFO["driverVersion"] := NumGet(DriverInfo, 4, "UInt") ; [OUT] driver version 990 | DRIVER_INFO["BuildBranch"] := StrGet(DriverInfo.Ptr + 8, Const.NVAPI_SHORT_STRING_MAX, "CP0") ; [OUT] driver-branch string 991 | bitfield := NumGet(DriverInfo, 72, "UInt") 992 | for NvCap, mask in NvCaps 993 | DRIVER_INFO[NvCap] := !!(bitfield & mask) 994 | return DRIVER_INFO 995 | } 996 | 997 | return this.GetErrorMessage(NvStatus) 998 | } 999 | 1000 | 1001 | 1002 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1003 | ; // 1004 | ; // FUNCTION NAME: SYS.GetDriverAndBranchVersion 1005 | ; // 1006 | ; // This API returns display driver version and driver-branch string. 1007 | ; // 1008 | ; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1009 | static GetDriverAndBranchVersion() 1010 | { 1011 | BuildBranchString := Buffer(Const.NVAPI_SHORT_STRING_MAX, 0) 1012 | if !(NvStatus := DllCall(this.QueryInterface(0x2926AAAD), "UInt*", &DriverVersion := 0, "Ptr", BuildBranchString, "CDecl")) 1013 | { 1014 | DriverAndBranchVersion := Map() 1015 | DriverAndBranchVersion["DriverVersion"] := DriverVersion ; [OUT] driver version 1016 | DriverAndBranchVersion["BuildBranchString"] := StrGet(BuildBranchString, "CP0") ; [OUT] driver-branch string 1017 | return DriverAndBranchVersion 1018 | } 1019 | 1020 | return this.GetErrorMessage(NvStatus) 1021 | } 1022 | 1023 | } 1024 | 1025 | 1026 | 1027 | ; ===== NvAPI CONSTANTS ===================================================================================================================================================== 1028 | 1029 | class Const extends NvAPI 1030 | { 1031 | static NVAPI_COOLER_TARGET_ALL := 7 1032 | static NVAPI_THERMAL_TARGET_ALL := 15 1033 | static NVAPI_SHORT_STRING_MAX := 64 1034 | static NVAPI_MAX_COOLERS_PER_GPU := 20 1035 | static NVAPI_MAX_GPU_PUBLIC_CLOCKS := 32 1036 | static NVAPI_MAX_GPU_UTILIZATIONS := 8 1037 | static NVAPI_MAX_LOGICAL_GPUS := 64 1038 | static NVAPI_MAX_PHYSICAL_GPUS := 64 1039 | static NVAPI_MAX_THERMAL_SENSORS_PER_GPU := 3 1040 | static NVAPI_MAX_USAGES_PER_GPU := 33 1041 | } 1042 | 1043 | 1044 | 1045 | ; =========================================================================================================================================================================== 1046 | 1047 | class MapX extends Map { 1048 | CaseSense := "Off" ; should be dafault. change my mind. 1049 | Default := "" 1050 | } 1051 | 1052 | 1053 | 1054 | ; =========================================================================================================================================================================== -------------------------------------------------------------------------------- /src/Class_NvAPI_Example.ahk: -------------------------------------------------------------------------------- 1 | ; =========================================================================================================================================================================== 2 | 3 | /* 4 | AutoHotkey wrapper for NVIDIA NvAPI (Example Script) 5 | 6 | Author ....: jNizM 7 | Released ..: 2014-12-29 8 | Modified ..: 2020-09-30 9 | License ...: MIT 10 | GitHub ....: https://github.com/jNizM/AHK_NVIDIA_NvAPI 11 | Forum .....: https://www.autohotkey.com/boards/viewtopic.php?t=95112 12 | */ 13 | 14 | ; SCRIPT DIRECTIVES ========================================================================================================================================================= 15 | 16 | #Requires AutoHotkey v2.0- 17 | 18 | 19 | ; GUI ======================================================================================================================================================================= 20 | 21 | OnMessage 0x0111, EN_SETFOCUS 22 | 23 | Main := Gui() 24 | Main.MarginX := 10 25 | Main.MarginY := 10 26 | 27 | Main.SetFont("s16 w700", "Segoe UI") 28 | Main.AddText("xm ym w270 0x201", StrReplace(GPU.GetFullName(), "NVIDIA ")) 29 | Main.SetFont("s10 w400", "Segoe UI") 30 | 31 | 32 | Main.AddGroupBox("xm y+10 w270 h121 Section", "Clocks") 33 | Main.AddText("xs+10 ys+25 w148 h25 0x202", "GPU Core") 34 | MainEdt01 := Main.AddEdit("x+4 yp w60 0x802") 35 | Main.AddText("x+4 yp w40 h25 0x200", "MHz") 36 | Main.AddText("xs+10 y+5 w148 h25 0x202", "GPU Memory") 37 | MainEdt02 := Main.AddEdit("x+4 yp w60 0x802") 38 | Main.AddText("x+4 yp w40 h25 0x200", "MHz") 39 | Main.AddText("xs+10 y+5 w148 h25 0x202", "GPU Shader") 40 | MainEdt03 := Main.AddEdit("x+4 yp w60 0x802") 41 | Main.AddText("x+4 yp w40 h25 0x200", "MHz") 42 | 43 | 44 | Main.AddGroupBox("xs+0 y+20 w270 h151 Section", "Load") 45 | Main.AddText("xs+10 ys+25 w148 h25 0x202", "GPU Core") 46 | MainEdt04 := Main.AddEdit("x+4 yp w60 0x802") 47 | Main.AddText("x+4 yp w40 h25 0x200", "%") 48 | Main.AddText("xs+10 y+5 w148 h25 0x202", "GPU Memory Controller") 49 | MainEdt05 := Main.AddEdit("x+4 yp w60 0x802") 50 | Main.AddText("x+4 yp w40 h25 0x200", "%") 51 | Main.AddText("xs+10 y+5 w148 h25 0x202", "GPU Video Engine") 52 | MainEdt06 := Main.AddEdit("x+4 yp w60 0x802") 53 | Main.AddText("x+4 yp w40 h25 0x200", "%") 54 | Main.AddText("xs+10 y+5 w148 h25 0x202", "GPU Memory") 55 | MainEdt07 := Main.AddEdit("x+4 yp w60 0x802") 56 | Main.AddText("x+4 yp w40 h25 0x200", "%") 57 | 58 | 59 | Main.AddGroupBox("xs+0 y+20 w270 h91 Section", "Fans") 60 | Main.AddText("xs+10 ys+25 w148 h25 0x202", "GPU Fan") 61 | MainEdt08 := Main.AddEdit("x+4 yp w60 0x802") 62 | Main.AddText("x+4 yp w40 h25 0x200", "RPM") 63 | Main.AddText("xs+10 y+5 w148 h25 0x202", "GPU Fan") 64 | MainEdt09 := Main.AddEdit("x+4 yp w60 0x802") 65 | Main.AddText("x+4 yp w40 h25 0x200", "%") 66 | 67 | 68 | Main.AddGroupBox("xs+0 y+20 w270 h61 Section", "Temperature") 69 | Main.AddText("xs+10 ys+25 w148 h25 0x202", "GPU Core") 70 | MainEdt10 := Main.AddEdit("x+4 yp w60 0x802") 71 | Main.AddText("x+4 yp w40 h25 0x200", "°C") 72 | 73 | 74 | Main.Show() 75 | SetTimer NVIDIA, -1000 76 | 77 | 78 | ; FUNCTIONS ================================================================================================================================================================= 79 | 80 | EN_SETFOCUS(wParam, lParam, *) 81 | { 82 | static EM_SETSEL := 0x00B1 83 | static EN_SETFOCUS := 0x0100 84 | if ((wParam >> 16) = EN_SETFOCUS) 85 | { 86 | DllCall("user32\HideCaret", "Ptr", lParam) 87 | PostMessage EM_SETSEL, -1, 0,, "ahk_id " lParam 88 | } 89 | } 90 | 91 | 92 | NVIDIA() 93 | { 94 | ClockFrequencies := GPU.GetAllClockFrequencies() 95 | MainEdt01.Text := Round(ClockFrequencies["GRAPHICS"]["frequency"] / 1000, 0) 96 | MainEdt02.Text := Round(ClockFrequencies["MEMORY"]["frequency"] / 1000, 0) 97 | MainEdt03.Text := Round(ClockFrequencies["PROCESSOR"]["frequency"] / 1000, 0) 98 | PstatesInfoEx := GPU.GetDynamicPstatesInfoEx() 99 | MainEdt04.Text := PstatesInfoEx["GPU"]["percentage"] 100 | MainEdt05.Text := PstatesInfoEx["FB"]["percentage"] 101 | MainEdt06.Text := PstatesInfoEx["VID"]["percentage"] 102 | MemoryInfo := GPU.GetMemoryInfo() 103 | MainEdt07.Text := Round((MemoryInfo["dedicatedVideoMemory"] - MemoryInfo["curAvailableDedicatedVideoMemory"]) / MemoryInfo["dedicatedVideoMemory"] * 100, 2) 104 | MainEdt08.Text := GPU.GetTachReading() 105 | MainEdt10.Text := GPU.GetCoolerSettings()[1]["currentLevel"] 106 | MainEdt10.Text := GPU.GetThermalSettings()[1]["currentTemp"] 107 | } 108 | 109 | 110 | ; INCLUDES ================================================================================================================================================================== 111 | 112 | #Include Class_NvAPI.ahk 113 | 114 | 115 | ; =========================================================================================================================================================================== -------------------------------------------------------------------------------- /src/DigitalVibrance.ahk: -------------------------------------------------------------------------------- 1 | ; =========================================================================================================================================================================== 2 | 3 | /* 4 | Nvidia Hue Control (written in AutoHotkey) 5 | Author ....: jNizM 6 | Released ..: 2014-12-29 7 | Modified ..: 2022-02-22 8 | License ...: MIT 9 | GitHub ....: https://github.com/jNizM/NVIDIA_NvAPI 10 | Forum .....: https://www.autohotkey.com/boards/viewtopic.php?t=95112 11 | */ 12 | 13 | 14 | ; COMPILER DIRECTIVES ======================================================================================================================================================= 15 | 16 | ;@Ahk2Exe-SetDescription Digital Vibrance Control (x64) 17 | ;@Ahk2Exe-SetFileVersion 0.3 18 | ;@Ahk2Exe-SetProductName Digital Vibrance Control 19 | ;@Ahk2Exe-SetProductVersion 2.0-beta.3 20 | ;@Ahk2Exe-SetCopyright (c) 2014-2022 jNizM 21 | ;@Ahk2Exe-SetLanguage 0x0407 22 | 23 | 24 | ; SCRIPT DIRECTIVES ========================================================================================================================================================= 25 | 26 | #Requires AutoHotkey v2.0- 27 | 28 | 29 | 30 | ; RUN ======================================================================================================================================================================= 31 | 32 | NvAPI_Hue() 33 | 34 | 35 | 36 | ; NvAPI_Hue ================================================================================================================================================================= 37 | 38 | NvAPI_Hue() 39 | { 40 | App := Map("name", "Digital Vibrance Control", "version", "0.3", "release", "2022-02-22", "author", "jNizM", "licence", "MIT") 41 | 42 | ; INIT ============================================================================================================================================================== 43 | 44 | Enum := 0, Displays := Map() 45 | while !(InStr(NvAPI.EnumNvidiaDisplayHandle(Enum), "Error")) 46 | { 47 | DVC := NvAPI.GetDVCInfoEx(Enum) 48 | Display := Map() 49 | Display["current"] := DVC["currentLevel"] 50 | Display["min"] := DVC["minLevel"] 51 | Display["max"] := DVC["maxLevel"] 52 | Display["default"] := DVC["defaultLevel"] 53 | Displays[A_Index] := Display 54 | Enum++ 55 | } 56 | 57 | 58 | ; GUI =============================================================================================================================================================== 59 | 60 | Main := Gui(, App["name"]) 61 | Main.MarginX := 10 62 | Main.MarginY := 10 63 | Main.SetFont("s16 w700 c76B900", "Segoe UI") 64 | Main.AddText("xm ym w250", "Digital Vibrance Control") 65 | Main.SetFont() 66 | Main.SetFont("s10 w400", "Segoe UI") 67 | for i in Displays 68 | { 69 | Main.AddText("xm y+" (A_Index = 1 ? 15 : 3) " w80 h25 0x200", "Display #" A_Index) 70 | Main.AddSlider("x+8 yp w200 AltSubmit Range" Displays[i]["min"] "-" Displays[i]["max"] " ToolTip vSL" A_Index, Displays[i]["current"]).OnEvent("Change", ChangeDV) 71 | } 72 | Main.AddButton("xm-1 y+9 w80", "Reset").OnEvent("Click", ResetDV) 73 | 74 | Main.OnEvent("Close", (*) => ExitApp) 75 | Main.Show("AutoSize") 76 | 77 | 78 | ; WINDOW EVENTS ===================================================================================================================================================== 79 | 80 | ChangeDV(GuiCtrlObj, *) 81 | { 82 | NvAPI.SetDVCLevelEx(GuiCtrlObj.Value, SubStr(GuiCtrlObj.Name, -1) - 1) 83 | } 84 | 85 | ResetDV(*) 86 | { 87 | for i in Displays 88 | { 89 | NvAPI.SetDVCLevelEx(Displays[i]["default"], A_Index - 1) 90 | Main["SL" A_Index].Value := Displays[i]["default"] 91 | } 92 | } 93 | } 94 | 95 | 96 | ; INCLUDES ================================================================================================================================================================== 97 | 98 | #Include Class_NvAPI.ahk 99 | 100 | 101 | ; =========================================================================================================================================================================== -------------------------------------------------------------------------------- /src/NvidiaHueControl.ahk: -------------------------------------------------------------------------------- 1 | ; =========================================================================================================================================================================== 2 | 3 | /* 4 | Nvidia Hue Control (written in AutoHotkey) 5 | Author ....: jNizM 6 | Released ..: 2022-02-22 7 | Modified ..: 2022-02-22 8 | License ...: MIT 9 | GitHub ....: https://github.com/jNizM/NVIDIA_NvAPI 10 | Forum .....: https://www.autohotkey.com/boards/viewtopic.php?t=95112 11 | */ 12 | 13 | 14 | ; COMPILER DIRECTIVES ======================================================================================================================================================= 15 | 16 | ;@Ahk2Exe-SetDescription Nvidia Hue Control (x64) 17 | ;@Ahk2Exe-SetFileVersion 0.1 18 | ;@Ahk2Exe-SetProductName Nvidia Hue Control 19 | ;@Ahk2Exe-SetProductVersion 2.0-beta.3 20 | ;@Ahk2Exe-SetCopyright (c) 2022-2022 jNizM 21 | ;@Ahk2Exe-SetLanguage 0x0407 22 | 23 | 24 | ; SCRIPT DIRECTIVES ========================================================================================================================================================= 25 | 26 | #Requires AutoHotkey v2.0- 27 | 28 | 29 | 30 | ; RUN ======================================================================================================================================================================= 31 | 32 | NvAPI_Hue() 33 | 34 | 35 | 36 | ; NvAPI_Hue ================================================================================================================================================================= 37 | 38 | NvAPI_Hue() 39 | { 40 | App := Map("name", "Nvidia Hue Control", "version", "0.1", "release", "2022-02-22", "author", "jNizM", "licence", "MIT") 41 | 42 | ; INIT ============================================================================================================================================================== 43 | 44 | Enum := 0, Displays := Map() 45 | while !(InStr(NvAPI.EnumNvidiaDisplayHandle(Enum), "Error")) 46 | { 47 | HUE := NvAPI.GetHUEInfo(Enum) 48 | Display := Map() 49 | Display["current"] := HUE["currentHueAngle"] 50 | Display["default"] := HUE["defaultHueAngle"] 51 | Displays[A_Index] := Display 52 | Enum++ 53 | } 54 | 55 | 56 | ; GUI =============================================================================================================================================================== 57 | 58 | Main := Gui(, App["name"]) 59 | Main.MarginX := 10 60 | Main.MarginY := 10 61 | Main.SetFont("s16 w700 c76B900", "Segoe UI") 62 | Main.AddText("xm ym w250", "NVIDIA Hue Control") 63 | Main.SetFont() 64 | Main.SetFont("s10 w400", "Segoe UI") 65 | for i in Displays 66 | { 67 | Main.AddText("xm y+" (A_Index = 1 ? 15 : 3) " w80 h25 0x200", "Display #" A_Index) 68 | Main.AddSlider("x+8 yp w200 AltSubmit Range0-360 ToolTip vSL" A_Index, Displays[i]["current"]).OnEvent("Change", ChangeHue) 69 | } 70 | Main.AddButton("xm-1 y+9 w80", "Reset").OnEvent("Click", ResetHue) 71 | 72 | Main.OnEvent("Close", (*) => ExitApp) 73 | Main.Show("AutoSize") 74 | 75 | 76 | ; WINDOW EVENTS ===================================================================================================================================================== 77 | 78 | ChangeHue(GuiCtrlObj, *) 79 | { 80 | NvAPI.SetHUEAngle(GuiCtrlObj.Value, SubStr(GuiCtrlObj.Name, -1) - 1) 81 | } 82 | 83 | ResetHue(*) 84 | { 85 | for i in Displays 86 | { 87 | NvAPI.SetHUEAngle(Displays[i]["default"], A_Index - 1) 88 | Main["SL" A_Index].Value := Displays[i]["default"] 89 | } 90 | } 91 | } 92 | 93 | 94 | ; INCLUDES ================================================================================================================================================================== 95 | 96 | #Include Class_NvAPI.ahk 97 | 98 | 99 | ; =========================================================================================================================================================================== -------------------------------------------------------------------------------- /src/v1.1_deprecated/Class_NvAPI_GUI_Classic.ahk: -------------------------------------------------------------------------------- 1 | ; =============================================================================================================================== 2 | ; Title .........: NvAPI GUI Classic 3 | ; AHK Version ...: 1.1.22.09 x64 Unicode 4 | ; Win Version ...: Windows 7 Ultimate 64-bit SP1 5 | ; Description ...: NvAPI GUI Classic 6 | ; Version .......: v1.02 7 | ; Modified ......: 2015.12.01-2037 8 | ; Author(s) .....: jNizM 9 | ; =============================================================================================================================== 10 | ;@Ahk2Exe-SetName NvAPI GUI Classic 11 | ;@Ahk2Exe-SetDescription NvAPI GUI Classic 12 | ;@Ahk2Exe-SetVersion v1.02 13 | ;@Ahk2Exe-SetCopyright Copyright (c) 2014-2015`, jNizM 14 | ;@Ahk2Exe-SetOrigFilename Class_NvAPI_GUI_Classic.ahk 15 | ; =============================================================================================================================== 16 | 17 | ; GLOBAL SETTINGS =============================================================================================================== 18 | 19 | ;#Warn 20 | #NoEnv 21 | #SingleInstance Force 22 | SetBatchLines -1 23 | 24 | #Include Class_NvAPI.ahk 25 | 26 | ; GUI =========================================================================================================================== 27 | 28 | OnMessage(0x0111, "ON_EN_SETFOCUS") ; WM_COMMAND := 0x0111 29 | Gui, Margin, 4, 4 30 | 31 | Gui, Font, s16 w800 q4, MS Shell Dlg 2 32 | Gui, Add, Text, xm ym w240 0x201, % NvAPI.GPU_GetFullName() 33 | 34 | Gui, Font, s9 w400 q1 c000000, MS Shell Dlg 2 35 | Gui, Add, GroupBox, xm y+8 w241 h100, % "Clocks" 36 | Gui, Add, GroupBox, xm y+5 w241 h123, % "Load" 37 | Gui, Add, GroupBox, xm y+5 w241 h77, % "Fans" 38 | Gui, Add, GroupBox, xm y+5 w241 h51, % "Temperature" 39 | 40 | 41 | Gui, Add, Text, xm+4 ym+53 w130 h20 0x0202, % "GPU Core" 42 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvC1 43 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "MHz" 44 | 45 | Gui, Add, Text, xm+4 y+4 w130 h20 0x0202, % "GPU Memory" 46 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvC2 47 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "MHz" 48 | 49 | Gui, Add, Text, xm+4 y+4 w130 h20 0x0202, % "GPU Shader" 50 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvC3 51 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "MHz" 52 | 53 | 54 | Gui, Add, Text, xm+4 y+37 w130 h20 0x0202, % "GPU Core" 55 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvL1 56 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "%" 57 | 58 | Gui, Add, Text, xm+4 y+4 w130 h20 0x0202, % "GPU Memory Controller" 59 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvL2 60 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "%" 61 | 62 | Gui, Add, Text, xm+4 y+4 w130 h20 0x0202, % "GPU Video Engine" 63 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvL3 64 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "%" 65 | 66 | Gui, Add, Text, xm+4 y+4 w130 h20 0x0202, % "GPU Memory" 67 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvL4 68 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "%" 69 | 70 | 71 | Gui, Add, Text, xm+4 y+37 w130 h20 0x0202, % "GPU Fan" 72 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvF1 73 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "RPM" 74 | 75 | Gui, Add, Text, xm+4 y+4 w130 h20 0x0202, % "GPU Fan" 76 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvF2 77 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "%" 78 | 79 | 80 | Gui, Add, Text, xm+4 y+37 w130 h20 0x0202, % "GPU Core" 81 | Gui, Add, Edit, x+5 yp w60 h20 0x0A02 vNvT1 82 | Gui, Add, Text, x+3 yp w30 h20 0x0200, % "°C" 83 | 84 | Gui, Show, AutoSize 85 | SetTimer, NvAPI_NEW, 2000 86 | return 87 | 88 | ; UPDATE ======================================================================================================================== 89 | 90 | NvAPI_NEW: 91 | GuiControl,, NvC1, % Round(NvAPI.GPU_GetAllClockFrequencies().GRAPHICS.frequency / 1000, 0) 92 | GuiControl,, NvC2, % Round(NvAPI.GPU_GetAllClockFrequencies().MEMORY.frequency / 1000, 0) 93 | GuiControl,, NvC3, % Round(NvAPI.GPU_GetAllClockFrequencies().PROCESSOR.frequency / 1000, 0) 94 | 95 | GuiControl,, NvL1, % NvAPI.GPU_GetDynamicPstatesInfoEx().GPU.percentage 96 | GuiControl,, NvL2, % NvAPI.GPU_GetDynamicPstatesInfoEx().FB.percentage 97 | GuiControl,, NvL3, % NvAPI.GPU_GetDynamicPstatesInfoEx().VID.percentage 98 | GuiControl,, NvL4, % Round((NvAPI.GPU_GetMemoryInfo().dedicatedVideoMemory - NvAPI.GPU_GetMemoryInfo().curAvailableDedicatedVideoMemory) / NvAPI.GPU_GetMemoryInfo().dedicatedVideoMemory * 100, 2) 99 | 100 | GuiControl,, NvF1, % NvAPI.GPU_GetTachReading() 101 | GuiControl,, NvF2, % NvAPI.GPU_GetCoolerSettings().1.currentLevel 102 | 103 | GuiControl,, NvT1, % NvAPI.GPU_GetThermalSettings().1.currentTemp 104 | return 105 | 106 | ; FUNCTIONS ===================================================================================================================== 107 | 108 | ON_EN_SETFOCUS(wParam, lParam) 109 | { 110 | static EM_SETSEL := 0x00B1 111 | static EN_SETFOCUS := 0x0100 112 | Critical 113 | if ((wParam >> 16) = EN_SETFOCUS) 114 | { 115 | DllCall("user32.dll\HideCaret", "Ptr", lParam) 116 | DllCall("user32.dll\PostMessage", "Ptr", lParam, "UInt", EM_SETSEL, "Ptr", -1, "Ptr" , 0) 117 | } 118 | } 119 | 120 | ; EXIT ========================================================================================================================== 121 | 122 | GuiClose: 123 | GuiEscape: 124 | ExitApp -------------------------------------------------------------------------------- /src/v1.1_deprecated/Class_NvAPI_GUI_ListViewTest.ahk: -------------------------------------------------------------------------------- 1 | ; =============================================================================================================================== 2 | ; Title .........: NvAPI GUI ListView Test 3 | ; AHK Version ...: 1.1.22.09 x64 Unicode 4 | ; Win Version ...: Windows 7 Ultimate 64-bit SP1 5 | ; Description ...: NvAPI GUI ListView Test 6 | ; Version .......: v1.02 7 | ; Modified ......: 2015.12.01-2037 8 | ; Author(s) .....: jNizM 9 | ; =============================================================================================================================== 10 | ;@Ahk2Exe-SetName NvAPI GUI ListView Test 11 | ;@Ahk2Exe-SetDescription NvAPI GUI ListView Test 12 | ;@Ahk2Exe-SetVersion v1.02 13 | ;@Ahk2Exe-SetCopyright Copyright (c) 2014-2015`, jNizM 14 | ;@Ahk2Exe-SetOrigFilename Class_NvAPI_GUI_ListViewTest.ahk 15 | ; =============================================================================================================================== 16 | 17 | ; GLOBAL SETTINGS =============================================================================================================== 18 | 19 | ;#Warn 20 | #NoEnv 21 | #SingleInstance Force 22 | SetBatchLines -1 23 | 24 | #Include Class_NvAPI.ahk 25 | 26 | NvAPI.ErrorMessage := True 27 | 28 | ; TEST SCRIPT =================================================================================================================== 29 | 30 | cENDH := cENUADH := 0 31 | 32 | while (NvAPI.EnumNvidiaDisplayHandle(cENDH) != "*-7") 33 | ++cENDH 34 | cENDH := !cENDH ? 1 : cENDH 35 | while (NvAPI.EnumNvidiaUnAttachedDisplayHandle(cENUADH) != "*-7") 36 | ++cENUADH 37 | cENUADH := !cENUADH ? 1 : cENUADH 38 | 39 | 40 | Gui, Margin, 5, 5 41 | Gui, Add, ListView, xm ym w600 h400, Functions|Returns 42 | LV_ModifyCol(1, 330) 43 | LV_ModifyCol(2, 220) 44 | 45 | LV_Add( "", "", "") 46 | LV_Add( "", "DISP_GetGDIPrimaryDisplayId()", NvAPI.DISP_GetGDIPrimaryDisplayId() ) 47 | LV_Add( "", "", "") 48 | LV_Add( "", "EnumLogicalGPUs()[1]", NvAPI.EnumLogicalGPUs()[1] ) 49 | LV_Add( "", "", "") 50 | loop % cENDH 51 | LV_Add( "", "EnumNvidiaDisplayHandle(" A_Index - 1 ")", NvAPI.EnumNvidiaDisplayHandle(A_Index - 1) ) 52 | LV_Add( "", "", "") 53 | loop % cENUADH 54 | LV_Add( "", "EnumNvidiaUnAttachedDisplayHandle(" A_Index - 1 ")", NvAPI.EnumNvidiaUnAttachedDisplayHandle(A_Index - 1) ) 55 | LV_Add( "", "", "") 56 | LV_Add( "", "EnumPhysicalGPUs()[1]", NvAPI.EnumPhysicalGPUs()[1] ) 57 | LV_Add( "", "", "") 58 | loop % cENDH 59 | LV_Add( "", "GetAssociatedDisplayOutputId(" A_Index - 1 ")", NvAPI.GetAssociatedDisplayOutputId(A_Index - 1) ) 60 | LV_Add( "", "", "") 61 | loop % cENDH 62 | LV_Add( "", "GetAssociatedNvidiaDisplayHandle(" A_Index - 1 ")", NvAPI.GetAssociatedNvidiaDisplayHandle(A_Index - 1) ) 63 | LV_Add( "", "", "") 64 | loop % cENDH 65 | LV_Add( "", "GetAssociatedNvidiaDisplayName(" A_Index - 1 ")", NvAPI.GetAssociatedNvidiaDisplayName(A_Index - 1) ) 66 | LV_Add( "", "", "") 67 | LV_Add( "", "GetDisplayDriverMemoryInfo().version", NvAPI.GetDisplayDriverMemoryInfo().version ) 68 | LV_Add( "", "GetDisplayDriverMemoryInfo().dedicatedVideoMemory", NvAPI.GetDisplayDriverMemoryInfo().dedicatedVideoMemory ) 69 | LV_Add( "", "GetDisplayDriverMemoryInfo().availableDedicatedVideoMemory", NvAPI.GetDisplayDriverMemoryInfo().availableDedicatedVideoMemory ) 70 | LV_Add( "", "GetDisplayDriverMemoryInfo().systemVideoMemory", NvAPI.GetDisplayDriverMemoryInfo().systemVideoMemory ) 71 | LV_Add( "", "GetDisplayDriverMemoryInfo().sharedSystemMemory", NvAPI.GetDisplayDriverMemoryInfo().sharedSystemMemory ) 72 | LV_Add( "", "GetDisplayDriverMemoryInfo().curAvailableDedicatedVideoMemory", NvAPI.GetDisplayDriverMemoryInfo().curAvailableDedicatedVideoMemory ) 73 | LV_Add( "", "", "") 74 | LV_Add( "", "GetDisplayDriverVersion().version", NvAPI.GetDisplayDriverVersion().version ) 75 | LV_Add( "", "GetDisplayDriverVersion().drvVersion", NvAPI.GetDisplayDriverVersion().drvVersion ) 76 | LV_Add( "", "GetDisplayDriverVersion().bldChangeListNum", NvAPI.GetDisplayDriverVersion().bldChangeListNum ) 77 | LV_Add( "", "GetDisplayDriverVersion().szBuildBranchString", NvAPI.GetDisplayDriverVersion().szBuildBranchString ) 78 | LV_Add( "", "GetDisplayDriverVersion().szAdapterString", NvAPI.GetDisplayDriverVersion().szAdapterString ) 79 | LV_Add( "", "", "") 80 | LV_Add( "", "GetDisplayPortInfo().version", NvAPI.GetDisplayPortInfo().version ) 81 | LV_Add( "", "GetDisplayPortInfo().dpcd_ver", NvAPI.GetDisplayPortInfo().dpcd_ver ) 82 | LV_Add( "", "GetDisplayPortInfo().maxLinkRate", NvAPI.GetDisplayPortInfo().maxLinkRate ) 83 | LV_Add( "", "GetDisplayPortInfo().maxLaneCount", NvAPI.GetDisplayPortInfo().maxLaneCount ) 84 | LV_Add( "", "GetDisplayPortInfo().curLinkRate", NvAPI.GetDisplayPortInfo().curLinkRate ) 85 | LV_Add( "", "GetDisplayPortInfo().curLaneCount", NvAPI.GetDisplayPortInfo().curLaneCount ) 86 | LV_Add( "", "GetDisplayPortInfo().colorFormat", NvAPI.GetDisplayPortInfo().colorFormat ) 87 | LV_Add( "", "GetDisplayPortInfo().dynamicRange", NvAPI.GetDisplayPortInfo().dynamicRange ) 88 | LV_Add( "", "GetDisplayPortInfo().colorimetry", NvAPI.GetDisplayPortInfo().colorimetry ) 89 | LV_Add( "", "GetDisplayPortInfo().bpc", NvAPI.GetDisplayPortInfo().bpc ) 90 | LV_Add( "", "GetDisplayPortInfo().isDp", NvAPI.GetDisplayPortInfo().isDp ) 91 | LV_Add( "", "GetDisplayPortInfo().isInternalDp", NvAPI.GetDisplayPortInfo().isInternalDp ) 92 | LV_Add( "", "GetDisplayPortInfo().isColorCtrlSupported", NvAPI.GetDisplayPortInfo().isColorCtrlSupported ) 93 | LV_Add( "", "GetDisplayPortInfo().is6BPCSupported", NvAPI.GetDisplayPortInfo().is6BPCSupported ) 94 | LV_Add( "", "GetDisplayPortInfo().is8BPCSupported", NvAPI.GetDisplayPortInfo().is8BPCSupported ) 95 | LV_Add( "", "GetDisplayPortInfo().is10BPCSupported", NvAPI.GetDisplayPortInfo().is10BPCSupported ) 96 | LV_Add( "", "GetDisplayPortInfo().is12BPCSupported", NvAPI.GetDisplayPortInfo().is12BPCSupported ) 97 | LV_Add( "", "GetDisplayPortInfo().is16BPCSupported", NvAPI.GetDisplayPortInfo().is16BPCSupported ) 98 | LV_Add( "", "GetDisplayPortInfo().isYCrCb422Supported", NvAPI.GetDisplayPortInfo().isYCrCb422Supported ) 99 | LV_Add( "", "GetDisplayPortInfo().isYCrCb444Supported", NvAPI.GetDisplayPortInfo().isYCrCb444Supported ) 100 | LV_Add( "", "GetDisplayPortInfo().isRgb444SupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().isRgb444SupportedOnCurrentMode ) 101 | LV_Add( "", "GetDisplayPortInfo().isYCbCr444SupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().isYCbCr444SupportedOnCurrentMode ) 102 | LV_Add( "", "GetDisplayPortInfo().isYCbCr422SupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().isYCbCr422SupportedOnCurrentMode ) 103 | LV_Add( "", "GetDisplayPortInfo().is6BPCSupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().is6BPCSupportedOnCurrentMode ) 104 | LV_Add( "", "GetDisplayPortInfo().is8BPCSupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().is8BPCSupportedOnCurrentMode ) 105 | LV_Add( "", "GetDisplayPortInfo().is10BPCSupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().is10BPCSupportedOnCurrentMode ) 106 | LV_Add( "", "GetDisplayPortInfo().is12BPCSupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().is12BPCSupportedOnCurrentMode ) 107 | LV_Add( "", "GetDisplayPortInfo().is16BPCSupportedOnCurrentMode", NvAPI.GetDisplayPortInfo().is16BPCSupportedOnCurrentMode ) 108 | LV_Add( "", "", "") 109 | LV_Add( "", "GetDVCInfo().version", NvAPI.GetDVCInfo().version ) 110 | LV_Add( "", "GetDVCInfo().currentLevel", NvAPI.GetDVCInfo().currentLevel ) 111 | LV_Add( "", "GetDVCInfo().minLevel", NvAPI.GetDVCInfo().minLevel ) 112 | LV_Add( "", "GetDVCInfo().maxLevel", NvAPI.GetDVCInfo().maxLevel ) 113 | LV_Add( "", "", "") 114 | loop % cENDH 115 | { 116 | LV_Add( "", "GetDVCInfoEx(" A_Index - 1 ").version", NvAPI.GetDVCInfoEx(A_Index - 1).version ) 117 | LV_Add( "", "GetDVCInfoEx(" A_Index - 1 ").currentLevel", NvAPI.GetDVCInfoEx(A_Index - 1).currentLevel ) 118 | LV_Add( "", "GetDVCInfoEx(" A_Index - 1 ").minLevel", NvAPI.GetDVCInfoEx(A_Index - 1).minLevel ) 119 | LV_Add( "", "GetDVCInfoEx(" A_Index - 1 ").maxLevel", NvAPI.GetDVCInfoEx(A_Index - 1).maxLevel ) 120 | LV_Add( "", "GetDVCInfoEx(" A_Index - 1 ").defaultLevel", NvAPI.GetDVCInfoEx(A_Index - 1).defaultLevel ) 121 | } 122 | LV_Add( "", "", "") 123 | LV_Add( "", "GetHDMISupportInfo().version", NvAPI.GetHDMISupportInfo().version ) 124 | LV_Add( "", "GetHDMISupportInfo().isGpuHDMICapable", NvAPI.GetHDMISupportInfo().isGpuHDMICapable ) 125 | LV_Add( "", "GetHDMISupportInfo().isMonUnderscanCapable", NvAPI.GetHDMISupportInfo().isMonUnderscanCapable ) 126 | LV_Add( "", "GetHDMISupportInfo().isMonBasicAudioCapable", NvAPI.GetHDMISupportInfo().isMonBasicAudioCapable ) 127 | LV_Add( "", "GetHDMISupportInfo().isMonYCbCr444Capable", NvAPI.GetHDMISupportInfo().isMonYCbCr444Capable ) 128 | LV_Add( "", "GetHDMISupportInfo().isMonYCbCr422Capable", NvAPI.GetHDMISupportInfo().isMonYCbCr422Capable ) 129 | LV_Add( "", "GetHDMISupportInfo().isMonxvYCC601Capable", NvAPI.GetHDMISupportInfo().isMonxvYCC601Capable ) 130 | LV_Add( "", "GetHDMISupportInfo().isMonxvYCC709Capable", NvAPI.GetHDMISupportInfo().isMonxvYCC709Capable ) 131 | LV_Add( "", "GetHDMISupportInfo().isMonHDMI", NvAPI.GetHDMISupportInfo().isMonHDMI ) 132 | LV_Add( "", "GetHDMISupportInfo().isMonsYCC601Capable", NvAPI.GetHDMISupportInfo().isMonsYCC601Capable ) 133 | LV_Add( "", "GetHDMISupportInfo().isMonAdobeYCC601Capable", NvAPI.GetHDMISupportInfo().isMonAdobeYCC601Capable ) 134 | LV_Add( "", "GetHDMISupportInfo().isMonAdobeRGBCapable", NvAPI.GetHDMISupportInfo().isMonAdobeRGBCapable ) 135 | LV_Add( "", "GetHDMISupportInfo().EDID861ExtRev", NvAPI.GetHDMISupportInfo().EDID861ExtRev ) 136 | LV_Add( "", "", "") 137 | LV_Add( "", "GetHUEInfo().version", NvAPI.GetHUEInfo().version ) 138 | LV_Add( "", "GetHUEInfo().currentHueAngle", NvAPI.GetHUEInfo().currentHueAngle ) 139 | LV_Add( "", "GetHUEInfo().defaultHueAngle", NvAPI.GetHUEInfo().defaultHueAngle ) 140 | LV_Add( "", "", "") 141 | LV_Add( "", "GetInterfaceVersionString()", NvAPI.GetInterfaceVersionString() ) 142 | LV_Add( "", "", "") 143 | loop % cENUADH 144 | LV_Add( "", "GetUnAttachedAssociatedDisplayName(" A_Index - 1 ")", NvAPI.GetUnAttachedAssociatedDisplayName(A_Index - 1) ) 145 | LV_Add( "", "", "") 146 | LV_Add( "", "GetVBlankCounter()", NvAPI.GetVBlankCounter() ) 147 | LV_Add( "", "", "") 148 | LV_Add( "", "GPU_GetAGPAperture()", NvAPI.GPU_GetAGPAperture() ) 149 | LV_Add( "", "", "") 150 | LV_Add( "", "GPU_GetAllClockFrequencies().version", NvAPI.GPU_GetAllClockFrequencies().version ) 151 | LV_Add( "", "GPU_GetAllClockFrequencies().Type", NvAPI.GPU_GetAllClockFrequencies().Type ) 152 | LV_Add( "", "GPU_GetAllClockFrequencies().GRAPHICS.bIsPresent", NvAPI.GPU_GetAllClockFrequencies().GRAPHICS.bIsPresent ) 153 | LV_Add( "", "GPU_GetAllClockFrequencies().GRAPHICS.frequency", NvAPI.GPU_GetAllClockFrequencies().GRAPHICS.frequency ) 154 | LV_Add( "", "GPU_GetAllClockFrequencies().MEMORY.bIsPresent", NvAPI.GPU_GetAllClockFrequencies().MEMORY.bIsPresent ) 155 | LV_Add( "", "GPU_GetAllClockFrequencies().MEMORY.frequency", NvAPI.GPU_GetAllClockFrequencies().MEMORY.frequency ) 156 | LV_Add( "", "GPU_GetAllClockFrequencies().PROCESSOR.bIsPresent", NvAPI.GPU_GetAllClockFrequencies().PROCESSOR.bIsPresent ) 157 | LV_Add( "", "GPU_GetAllClockFrequencies().PROCESSOR.frequency", NvAPI.GPU_GetAllClockFrequencies().PROCESSOR.frequency ) 158 | LV_Add( "", "", "") 159 | LV_Add( "", "GPU_GetBoardInfo()", NvAPI.GPU_GetBoardInfo() ) 160 | LV_Add( "", "", "") 161 | LV_Add( "", "GPU_GetBusId()", NvAPI.GPU_GetBusId() ) 162 | LV_Add( "", "", "") 163 | LV_Add( "", "GPU_GetBusSlotId()", NvAPI.GPU_GetBusSlotId() ) 164 | LV_Add( "", "", "") 165 | LV_Add( "", "GPU_GetBusType()", NvAPI.GPU_GetBusType() ) 166 | LV_Add( "", "", "") 167 | LV_Add( "", "GPU_GetCoolerSettings().version", NvAPI.GPU_GetCoolerSettings().version ) 168 | LV_Add( "", "GPU_GetCoolerSettings().count", NvAPI.GPU_GetCoolerSettings().count ) 169 | loop % NvAPI.GPU_GetCoolerSettings().count 170 | { 171 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].type", NvAPI.GPU_GetCoolerSettings()[A_Index].type ) 172 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].controller", NvAPI.GPU_GetCoolerSettings()[A_Index].controller ) 173 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].defaultMinLevel", NvAPI.GPU_GetCoolerSettings()[A_Index].defaultMinLevel ) 174 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].defaultMaxLevel", NvAPI.GPU_GetCoolerSettings()[A_Index].defaultMaxLevel ) 175 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].currentMinLevel", NvAPI.GPU_GetCoolerSettings()[A_Index].currentMinLevel ) 176 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].currentMaxLevel", NvAPI.GPU_GetCoolerSettings()[A_Index].currentMaxLevel ) 177 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].currentLevel", NvAPI.GPU_GetCoolerSettings()[A_Index].currentLevel ) 178 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].defaultPolicy", NvAPI.GPU_GetCoolerSettings()[A_Index].defaultPolicy ) 179 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].currentPolicy", NvAPI.GPU_GetCoolerSettings()[A_Index].currentPolicy ) 180 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].target", NvAPI.GPU_GetCoolerSettings()[A_Index].target ) 181 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].controlType", NvAPI.GPU_GetCoolerSettings()[A_Index].controlType ) 182 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].active", NvAPI.GPU_GetCoolerSettings()[A_Index].active ) 183 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].speedRPM", NvAPI.GPU_GetCoolerSettings()[A_Index].speedRPM ) 184 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].bSupported", NvAPI.GPU_GetCoolerSettings()[A_Index].bSupported ) 185 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].maxSpeedRPM", NvAPI.GPU_GetCoolerSettings()[A_Index].maxSpeedRPM ) 186 | LV_Add( "", "GPU_GetCoolerSettings()[" A_Index "].minSpeedRPM", NvAPI.GPU_GetCoolerSettings()[A_Index].minSpeedRPM ) 187 | } 188 | LV_Add( "", "", "") 189 | LV_Add( "", "GPU_GetCurrentAGPRate()", NvAPI.GPU_GetCurrentAGPRate() ) 190 | LV_Add( "", "", "") 191 | LV_Add( "", "GPU_GetCurrentPCIEDownstreamWidth()", NvAPI.GPU_GetCurrentPCIEDownstreamWidth() ) 192 | LV_Add( "", "", "") 193 | LV_Add( "", "GPU_GetCurrentPstate()", NvAPI.GPU_GetCurrentPstate() ) 194 | LV_Add( "", "", "") 195 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().version", NvAPI.GPU_GetDynamicPstatesInfoEx().version ) 196 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().Enabled", NvAPI.GPU_GetDynamicPstatesInfoEx().Enabled ) 197 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().GPU.bIsPresent", NvAPI.GPU_GetDynamicPstatesInfoEx().GPU.bIsPresent ) 198 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().GPU.percentage", NvAPI.GPU_GetDynamicPstatesInfoEx().GPU.percentage ) 199 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().FB.bIsPresent", NvAPI.GPU_GetDynamicPstatesInfoEx().FB.bIsPresent ) 200 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().FB.percentage", NvAPI.GPU_GetDynamicPstatesInfoEx().FB.percentage ) 201 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().VID.bIsPresent", NvAPI.GPU_GetDynamicPstatesInfoEx().VID.bIsPresent ) 202 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().VID.percentage", NvAPI.GPU_GetDynamicPstatesInfoEx().VID.percentage ) 203 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().BUS.bIsPresent", NvAPI.GPU_GetDynamicPstatesInfoEx().BUS.bIsPresent ) 204 | LV_Add( "", "GPU_GetDynamicPstatesInfoEx().BUS.percentage", NvAPI.GPU_GetDynamicPstatesInfoEx().BUS.percentage ) 205 | LV_Add( "", "", "") 206 | LV_Add( "", "GPU_GetFullName()", NvAPI.GPU_GetFullName() ) 207 | LV_Add( "", "", "") 208 | LV_Add( "", "GPU_GetGpuCoreCount()", NvAPI.GPU_GetGpuCoreCount() ) 209 | LV_Add( "", "", "") 210 | LV_Add( "", "GPU_GetGPUType()", NvAPI.GPU_GetGPUType() ) 211 | LV_Add( "", "", "") 212 | LV_Add( "", "GPU_GetHDCPSupportStatus().version", NvAPI.GPU_GetHDCPSupportStatus().version ) 213 | LV_Add( "", "GPU_GetHDCPSupportStatus().hdcpFuseState", NvAPI.GPU_GetHDCPSupportStatus().hdcpFuseState ) 214 | LV_Add( "", "GPU_GetHDCPSupportStatus().hdcpKeySource", NvAPI.GPU_GetHDCPSupportStatus().hdcpKeySource ) 215 | LV_Add( "", "GPU_GetHDCPSupportStatus().hdcpKeySourceState", NvAPI.GPU_GetHDCPSupportStatus().hdcpKeySourceState ) 216 | LV_Add( "", "", "") 217 | LV_Add( "", "GPU_GetIRQ()", NvAPI.GPU_GetIRQ() ) 218 | LV_Add( "", "", "") 219 | LV_Add( "", "GPU_GetMemoryInfo().version", NvAPI.GPU_GetMemoryInfo().version ) 220 | LV_Add( "", "GPU_GetMemoryInfo().dedicatedVideoMemory", NvAPI.GPU_GetMemoryInfo().dedicatedVideoMemory ) 221 | LV_Add( "", "GPU_GetMemoryInfo().availableDedicatedVideoMemory", NvAPI.GPU_GetMemoryInfo().availableDedicatedVideoMemory ) 222 | LV_Add( "", "GPU_GetMemoryInfo().systemVideoMemory", NvAPI.GPU_GetMemoryInfo().systemVideoMemory ) 223 | LV_Add( "", "GPU_GetMemoryInfo().sharedSystemMemory", NvAPI.GPU_GetMemoryInfo().sharedSystemMemory ) 224 | LV_Add( "", "GPU_GetMemoryInfo().curAvailableDedicatedVideoMemory", NvAPI.GPU_GetMemoryInfo().curAvailableDedicatedVideoMemory ) 225 | LV_Add( "", "", "") 226 | loop % cENDH 227 | LV_Add( "", "GPU_GetOutputType(" A_Index ")", NvAPI.GPU_GetOutputType(A_Index) ) 228 | LV_Add( "", "", "") 229 | LV_Add( "", "GPU_GetPerfDecreaseInfo()", NvAPI.GPU_GetPerfDecreaseInfo() ) 230 | LV_Add( "", "", "") 231 | LV_Add( "", "GPU_GetPhysicalFrameBufferSize()", NvAPI.GPU_GetPhysicalFrameBufferSize() ) 232 | LV_Add( "", "", "") 233 | LV_Add( "", "GPU_GetSystemType()", NvAPI.GPU_GetSystemType() ) 234 | LV_Add( "", "", "") 235 | LV_Add( "", "GPU_GetTachReading()", NvAPI.GPU_GetTachReading() ) 236 | LV_Add( "", "", "") 237 | LV_Add( "", "GPU_GetThermalSettings().version", NvAPI.GPU_GetThermalSettings().version ) 238 | LV_Add( "", "GPU_GetThermalSettings().count", NvAPI.GPU_GetThermalSettings().count ) 239 | loop % NvAPI.GPU_GetThermalSettings().count 240 | { 241 | LV_Add( "", "GPU_GetThermalSettings()[" A_Index "].controller", NvAPI.GPU_GetThermalSettings()[A_Index].controller ) 242 | LV_Add( "", "GPU_GetThermalSettings()[" A_Index "].defaultMinTemp", NvAPI.GPU_GetThermalSettings()[A_Index].defaultMinTemp ) 243 | LV_Add( "", "GPU_GetThermalSettings()[" A_Index "].defaultMaxTemp", NvAPI.GPU_GetThermalSettings()[A_Index].defaultMaxTemp ) 244 | LV_Add( "", "GPU_GetThermalSettings()[" A_Index "].currentTemp", NvAPI.GPU_GetThermalSettings()[A_Index].currentTemp ) 245 | LV_Add( "", "GPU_GetThermalSettings()[" A_Index "].target", NvAPI.GPU_GetThermalSettings()[A_Index].target ) 246 | } 247 | LV_Add( "", "", "") 248 | LV_Add( "", "GPU_GetUsages()", NvAPI.GPU_GetUsages() ) 249 | LV_Add( "", "", "") 250 | LV_Add( "", "GPU_GetVbiosOEMRevision()", NvAPI.GPU_GetVbiosOEMRevision() ) 251 | LV_Add( "", "", "") 252 | LV_Add( "", "GPU_GetVbiosRevision()", NvAPI.GPU_GetVbiosRevision() ) 253 | LV_Add( "", "", "") 254 | LV_Add( "", "GPU_GetVbiosVersionString()", NvAPI.GPU_GetVbiosVersionString() ) 255 | LV_Add( "", "", "") 256 | LV_Add( "", "GPU_GetVirtualFrameBufferSize()", NvAPI.GPU_GetVirtualFrameBufferSize() ) 257 | LV_Add( "", "", "") 258 | LV_Add( "", "Stereo_IsEnabled()", NvAPI.Stereo_IsEnabled() ) 259 | LV_Add( "", "", "") 260 | LV_Add( "", "Stereo_IsWindowedModeSupported()", NvAPI.Stereo_IsWindowedModeSupported() ) 261 | LV_Add( "", "", "") 262 | LV_Add( "", "SYS_GetChipSetInfo().version", NvAPI.SYS_GetChipSetInfo().version ) 263 | LV_Add( "", "SYS_GetChipSetInfo().vendorId", NvAPI.SYS_GetChipSetInfo().vendorId ) 264 | LV_Add( "", "SYS_GetChipSetInfo().deviceId", NvAPI.SYS_GetChipSetInfo().deviceId ) 265 | LV_Add( "", "SYS_GetChipSetInfo().szVendorName", NvAPI.SYS_GetChipSetInfo().szVendorName ) 266 | LV_Add( "", "SYS_GetChipSetInfo().szChipsetName", NvAPI.SYS_GetChipSetInfo().szChipsetName ) 267 | LV_Add( "", "SYS_GetChipSetInfo().flags", NvAPI.SYS_GetChipSetInfo().flags ) 268 | LV_Add( "", "SYS_GetChipSetInfo().subSysVendorId", NvAPI.SYS_GetChipSetInfo().subSysVendorId ) 269 | LV_Add( "", "SYS_GetChipSetInfo().subSysDeviceId", NvAPI.SYS_GetChipSetInfo().subSysDeviceId ) 270 | LV_Add( "", "SYS_GetChipSetInfo().szSubSysVendorName", NvAPI.SYS_GetChipSetInfo().szSubSysVendorName ) 271 | LV_Add( "", "SYS_GetChipSetInfo().HBvendorId", NvAPI.SYS_GetChipSetInfo().HBvendorId ) 272 | LV_Add( "", "SYS_GetChipSetInfo().HBdeviceId", NvAPI.SYS_GetChipSetInfo().HBdeviceId ) 273 | LV_Add( "", "SYS_GetChipSetInfo().HBsubSysVendorId", NvAPI.SYS_GetChipSetInfo().HBsubSysVendorId ) 274 | LV_Add( "", "SYS_GetChipSetInfo().HBsubSysDeviceId", NvAPI.SYS_GetChipSetInfo().HBsubSysDeviceId ) 275 | LV_Add( "", "", "") 276 | LV_Add( "", "SYS_GetDriverAndBranchVersion().pDriverVersion", NvAPI.SYS_GetDriverAndBranchVersion().pDriverVersion ) 277 | LV_Add( "", "SYS_GetDriverAndBranchVersion().szBuildBranchString", NvAPI.SYS_GetDriverAndBranchVersion().szBuildBranchString ) 278 | 279 | Gui, Show, AutoSize 280 | return 281 | 282 | ; EXIT ========================================================================================================================== 283 | 284 | GuiClose: 285 | GuiEscape: 286 | ExitApp -------------------------------------------------------------------------------- /src/v1.1_deprecated/Class_NvAPI_GUI_SetDVC.ahk: -------------------------------------------------------------------------------- 1 | ; =============================================================================================================================== 2 | ; Title .........: NvAPI GUI SetDVC 3 | ; AHK Version ...: 1.1.22.09 x64 Unicode 4 | ; Win Version ...: Windows 7 Ultimate 64-bit SP1 5 | ; Description ...: NvAPI GUI SetDVC 6 | ; Version .......: v1.02 7 | ; Modified ......: 2015.12.01-2037 8 | ; Author(s) .....: jNizM 9 | ; =============================================================================================================================== 10 | ;@Ahk2Exe-SetName NvAPI GUI SetDVC 11 | ;@Ahk2Exe-SetDescription NvAPI GUI SetDVC 12 | ;@Ahk2Exe-SetVersion v1.02 13 | ;@Ahk2Exe-SetCopyright Copyright (c) 2014-2015`, jNizM 14 | ;@Ahk2Exe-SetOrigFilename Class_NvAPI_GUI_SetDVC.ahk 15 | ; =============================================================================================================================== 16 | 17 | ; GLOBAL SETTINGS =============================================================================================================== 18 | 19 | ;#Warn 20 | #NoEnv 21 | #SingleInstance Force 22 | SetBatchLines -1 23 | 24 | #Include Class_NvAPI.ahk 25 | 26 | ; GUI =========================================================================================================================== 27 | 28 | cnt := 0, arrCur := [], arrDef := [] 29 | 30 | while (NvAPI.EnumNvidiaDisplayHandle(cnt) != "*-7") 31 | { 32 | arrCur.Insert(NvAPI.GetDVCInfoEx(cnt).currentLevel) 33 | arrDef.Insert(NvAPI.GetDVCInfoEx(cnt).defaultLevel) 34 | ++cnt 35 | } 36 | 37 | gbh := 93 + 27 * (cnt - 1) 38 | 39 | Gui, Margin, 5, 5 40 | Gui, Font, s16 w800 q4 c76B900, MS Shell Dlg 2 41 | Gui, Add, Text, xm ym w240 0x201, % NvAPI.GPU_GetFullName() 42 | 43 | Gui, Font, s9 w400 q1 c000000, MS Shell Dlg 2 44 | Gui, Add, GroupBox, xm y+10 w240 h%gbh%, % "Digital Vibrance Control (DVC)" 45 | 46 | Gui, Add, Text, xm+11 ym+60 w60 h22 0x0200, % "Display #1" 47 | Gui, Add, Edit, x+10 yp w80 h22 0x2002 Limit3 vDVCS1, % arrCur[1] 48 | Gui, Font, s9 w400 q1 csilver, MS Shell Dlg 2 49 | Gui, Add, Text, x+10 yp w60 h22 0x0200, % "(0 - 100)" 50 | 51 | loop % arrCur.MaxIndex() - 1 52 | { 53 | cur := A_Index + 1 54 | Gui, Font, s9 w400 q1 c000000, MS Shell Dlg 2 55 | Gui, Add, Text, xm+11 y+5 w60 h22 0x0200, % "Display #" cur 56 | Gui, Add, Edit, x+10 yp w80 h22 0x2002 Limit3 vDVCS%cur%, % arrCur[cur] 57 | Gui, Font, s9 w400 q1 csilver, MS Shell Dlg 2 58 | Gui, Add, Text, x+10 yp w60 h22 0x0200, % "(0 - 100)" 59 | } 60 | 61 | Gui, Add, Button, xm+10 y+10 w60 gDVCSet, % "Set" 62 | Gui, Add, Button, x+10 yp w60 gDVCReset, % "Reset" 63 | 64 | Gui, Show, AutoSize 65 | 66 | return 67 | 68 | ; UPDATE ======================================================================================================================== 69 | 70 | DVCSet: 71 | Gui, Submit, NoHide 72 | loop % arrCur.MaxIndex() 73 | { 74 | DVCS := DVCS%A_Index% > 100 ? 100 : DVCS%A_Index% < 0 ? 0 : DVCS%A_Index% 75 | NvAPI.SetDVCLevelEx(DVCS, A_Index - 1) 76 | GuiControl,, DVCS%A_Index%, % DVCS 77 | } 78 | return 79 | 80 | DVCReset: 81 | loop % arrDef.MaxIndex() 82 | { 83 | NvAPI.SetDVCLevelEx(arrDef[A_Index], A_Index - 1) 84 | GuiControl,, DVCS%A_Index%, % arrCur[A_Index] 85 | } 86 | return 87 | 88 | ; EXIT ========================================================================================================================== 89 | 90 | GuiClose: 91 | GuiEscape: 92 | ExitApp --------------------------------------------------------------------------------