Skip to content

Commit e1b429b

Browse files
committed
0.0.0.1
1 parent 6b7be16 commit e1b429b

41 files changed

Lines changed: 75846 additions & 44 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,17 @@
11
cmake_minimum_required(VERSION 3.20)
22
project(nvapi-cli LANGUAGES CXX RC)
33

4-
set(CMAKE_CXX_STANDARD 17)
5-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
6-
set(CMAKE_CXX_EXTENSIONS OFF)
7-
8-
file(GLOB CLI_SOURCES CONFIGURE_DEPENDS
9-
"${CMAKE_SOURCE_DIR}/src/cli/*.cpp"
10-
)
4+
file(GLOB CLI_SOURCES CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/src/cli/*.cpp")
115

126
add_executable(nvapi-cli
137
src/nvapi-cli.cpp
148
src/nvapi-cli.rc
159
${CLI_SOURCES}
1610
)
1711

18-
target_include_directories(nvapi-cli PRIVATE
19-
"${CMAKE_SOURCE_DIR}/include"
20-
)
21-
22-
target_compile_definitions(nvapi-cli PRIVATE
23-
WIN32
24-
NOMINMAX
25-
)
12+
target_compile_features(nvapi-cli PRIVATE cxx_std_17)
13+
target_include_directories(nvapi-cli PRIVATE "${CMAKE_SOURCE_DIR}/include")
14+
target_compile_definitions(nvapi-cli PRIVATE WIN32 NOMINMAX)
2615

2716
if(MSVC)
2817
target_compile_options(nvapi-cli PRIVATE /W4 /EHsc)

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
CLI wrapper around NVIDIA's NVAPI for querying and controlling GPU, display, and driver features on Windows. NVAPI is NVIDIA's proprietary driver API that exposes GPU and display capabilities beyond the standard OS interfaces. It's hardware and driver dependent, many functions are supported only on specific GPUs, drivers, or product lines. Expect `NVAPI_NOT_SUPPORTED` for unsupported features.
44

5-
Note that the documentation is partly parsed from official documentation partly rewritten by myself.
5+
Note that the documentation is partly parsed from official documentation partly rewritten by myself. The tool isn't yet in its final state, more useful APIs may be added.
66

77
> [!CAUTION]
88
> Use the tool with caution when applying control APIs, I'm not responsible for any damage/issues. This tool is in BETA state, bugs may exist. I didn't test each option on my own yet.
99
10-
[assets/supported_nvapi.txt](https://github.com/nohuto/nvapi-cli/blob/main/assets/supported_nvapi.txt) includes all NVAPI functions referenced by the current source code. [assets/unsupported_nvapi.txt](https://github.com/nohuto/nvapi-cli/blob/main/assets/unsupported_nvapi.txt) includes NVAPI functions present in `nvapi.h` but not used by the current version.
10+
[assets/supported_nvapi.txt](https://github.com/nohuto/nvapi-cli/blob/main/assets/supported_nvapi.txt) includes all NVAPI functions referenced by the current source code. [assets/unsupported_nvapi.txt](https://github.com/nohuto/nvapi-cli/blob/main/assets/unsupported_nvapi.txt) includes NVAPI functions present in the NVAPI SDK header (`nvapi.h`) but not used by the current version.
1111

1212
## Usage
1313

@@ -24,6 +24,13 @@ Use "nvapi-cli help <group>" or "nvapi-cli <group> help" for details.
2424
Use "nvapi-cli help all" for the full list.
2525
```
2626

27+
## Building
28+
29+
```powershell
30+
cmake -S . -B build
31+
cmake --build build --config Release
32+
```
33+
2734
## Documentation
2835

2936
Each group has a dedicated reference that lists commands, flags, and the underlying NVAPI calls.
@@ -42,4 +49,6 @@ Each group has a dedicated reference that lists commands, flags, and the underly
4249
- [docs/d3d.md](https://github.com/nohuto/nvapi-cli/blob/main/docs/d3d.md) - Direct3D toolchain helpers (VRR, Ansel...)
4350
- [docs/ogl.md](https://github.com/nohuto/nvapi-cli/blob/main/docs/ogl.md) - OpenGL expert mode settings
4451
- [docs/vr.md](https://github.com/nohuto/nvapi-cli/blob/main/docs/vr.md) - Direct mode display controls
45-
- [docs/stereo.md](https://github.com/nohuto/nvapi-cli/blob/main/docs/stereo.md) - Stereo 3D and driver registry controls
52+
- [docs/stereo.md](https://github.com/nohuto/nvapi-cli/blob/main/docs/stereo.md) - Stereo 3D and driver registry controls
53+
54+
Public NvAPI documentation: https://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/topics.html

assets/supported_nvapi.txt

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ NvAPI_GPU_ClientPowerPoliciesGetStatus
8585
NvAPI_GPU_ClientPowerPoliciesSetStatus
8686
NvAPI_GPU_ClientPowerTopologyGetInfo
8787
NvAPI_GPU_ClientPowerTopologyGetStatus
88+
NvAPI_GPU_ClientRevertOc
89+
NvAPI_GPU_ClientStartOcScanner
90+
NvAPI_GPU_ClientStopOcScanner
8891
NvAPI_GPU_ClientThermalPoliciesGetInfo
8992
NvAPI_GPU_ClientThermalPoliciesGetStatus
9093
NvAPI_GPU_ClientThermalPoliciesSetStatus
@@ -140,6 +143,8 @@ NvAPI_GPU_ClockNafllDevicesGetInfo
140143
NvAPI_GPU_ClockNafllDevicesGetStatus
141144
NvAPI_GPU_ClockNafllDevicesSetControl
142145
NvAPI_GPU_ClockPmumonClkDomainsGetSamples
146+
NvAPI_GPU_ControlASPM
147+
NvAPI_GPU_EnableDynamicPstates
143148
NvAPI_GPU_FanArbiterGetInfo
144149
NvAPI_GPU_FanArbiterGetStatus
145150
NvAPI_GPU_FanCoolerGetControl
@@ -152,6 +157,8 @@ NvAPI_GPU_FanPolicyGetInfo
152157
NvAPI_GPU_FanPolicyGetStatus
153158
NvAPI_GPU_FanPolicySetControl
154159
NvAPI_GPU_FanTestGetInfo
160+
NvAPI_GPU_ForceGC6Exit
161+
NvAPI_GPU_GC6Control
155162
NvAPI_GPU_GetAllClockFrequencies
156163
NvAPI_GPU_GetAllDisplayIds
157164
NvAPI_GPU_GetBarInfo
@@ -161,10 +168,14 @@ NvAPI_GPU_GetBusSlotId
161168
NvAPI_GPU_GetBusType
162169
NvAPI_GPU_GetConnectedDisplayIds
163170
NvAPI_GPU_GetConnectedSLIOutputs
171+
NvAPI_GPU_GetCoolerPolicyTable
164172
NvAPI_GPU_GetCoolerSettings
165173
NvAPI_GPU_GetCoreVoltage
166174
NvAPI_GPU_GetCoreVoltageControl
167175
NvAPI_GPU_GetCurrentPstate
176+
NvAPI_GPU_GetCurrentThermalLevel
177+
NvAPI_GPU_GetDeepIdleState
178+
NvAPI_GPU_GetDeepIdleStatistics
168179
NvAPI_GPU_GetDynamicPstatesInfoEx
169180
NvAPI_GPU_GetECCConfigurationInfo
170181
NvAPI_GPU_GetECCErrorInfo
@@ -231,9 +242,18 @@ NvAPI_GPU_PowerPolicyGetStatus
231242
NvAPI_GPU_PowerPolicySetControl
232243
NvAPI_GPU_QueryDPTopology
233244
NvAPI_GPU_ResetECCErrorInfo
245+
NvAPI_GPU_RestoreCoolerPolicyTable
234246
NvAPI_GPU_RestoreCoolerSettings
235247
NvAPI_GPU_SetCoolerLevels
248+
NvAPI_GPU_SetCoolerPolicyTable
236249
NvAPI_GPU_SetCoreVoltageControl
250+
NvAPI_GPU_SetCurrentPCIESpeed
251+
NvAPI_GPU_SetCurrentPCIEWidth
252+
NvAPI_GPU_SetDeepIdleState
253+
NvAPI_GPU_SetDeepIdleStatisticsMode
254+
NvAPI_GPU_SetECCConfiguration
255+
NvAPI_GPU_SetForcePstate
256+
NvAPI_GPU_SetForcePstateEx
237257
NvAPI_GPU_SetPerfLimit
238258
NvAPI_GPU_SetPstates20
239259
NvAPI_GPU_SetPstates20Private
@@ -254,6 +274,8 @@ NvAPI_GPU_ThermalPolicyGetControl
254274
NvAPI_GPU_ThermalPolicyGetInfo
255275
NvAPI_GPU_ThermalPolicyGetStatus
256276
NvAPI_GPU_ThermalPolicySetControl
277+
NvAPI_GSync_DisableSync
278+
NvAPI_GSync_EnableSync
257279
NvAPI_GSync_EnumSyncDevices
258280
NvAPI_GSync_GetControlParameters
259281
NvAPI_GSync_GetStatusParameters
@@ -367,4 +389,4 @@ NvAPI_Stereo_Trigger_Activation
367389
NvAPI_UnloadEx
368390
NvAPI_Video_ColorControl_Get
369391
NvAPI_Video_ColorControl_GetDefault
370-
NvAPI_Video_ColorControl_Set
392+
NvAPI_Video_ColorControl_Set

assets/unsupported_nvapi.txt

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -856,28 +856,21 @@ NvAPI_GPU_ClientRegisterForPowerSampleUpdates
856856
NvAPI_GPU_ClientRegisterForThermalSampleUpdates
857857
NvAPI_GPU_ClientRegisterForUtilizationSampleUpdates
858858
NvAPI_GPU_ClientRegisterForVoltageSampleUpdates
859-
NvAPI_GPU_ClientRevertOc
860-
NvAPI_GPU_ClientStartOcScanner
861-
NvAPI_GPU_ClientStopOcScanner
862859
NvAPI_GPU_ClientVoltRailsGetControl
863860
NvAPI_GPU_ClientVoltRailsGetStatus
864861
NvAPI_GPU_ClientVoltRailsSetControl
865-
NvAPI_GPU_ControlASPM
866862
NvAPI_GPU_ConvertStringHashToPhysicalGpu
867863
NvAPI_GPU_CreateStringHashFromPhysicalGpu
868864
NvAPI_GPU_CudaEnumComputeCapableGpus
869865
NvAPI_GPU_DisableD3ColdSupportOnStopDevice
870866
NvAPI_GPU_DisableLicensedFeature
871-
NvAPI_GPU_EnableDynamicPstates
872867
NvAPI_GPU_EnableLicensedFeature
873868
NvAPI_GPU_EnableOverclockedPstates
874869
NvAPI_GPU_EnumClusterTopologies
875870
NvAPI_GPU_FbPatchPbrForMining
876871
NvAPI_GPU_FbSetReadLimit
877872
NvAPI_GPU_FbSetRrd
878873
NvAPI_GPU_FbSetWriteLimit
879-
NvAPI_GPU_ForceGC6Exit
880-
NvAPI_GPU_GC6Control
881874
NvAPI_GPU_GPIOQueryLegalPins
882875
NvAPI_GPU_GPIOReadFromPin
883876
NvAPI_GPU_GPIOWriteToPin
@@ -908,14 +901,10 @@ NvAPI_GPU_GetConnectedSLIOutputsWithLidStateEx
908901
NvAPI_GPU_GetConnectorInfo
909902
NvAPI_GPU_GetConnectorInfoEx
910903
NvAPI_GPU_GetConnectorState
911-
NvAPI_GPU_GetCoolerPolicyTable
912904
NvAPI_GPU_GetCurrentAGPRate
913905
NvAPI_GPU_GetCurrentFanSpeedLevel
914906
NvAPI_GPU_GetCurrentPCIEDownstreamWidth
915-
NvAPI_GPU_GetCurrentThermalLevel
916907
NvAPI_GPU_GetCyaAspmInfo
917-
NvAPI_GPU_GetDeepIdleState
918-
NvAPI_GPU_GetDeepIdleStatistics
919908
NvAPI_GPU_GetDeviceDisplayMode
920909
NvAPI_GPU_GetDisplayChangeInhibitState
921910
NvAPI_GPU_GetDisplayUnderflowStatus
@@ -1193,28 +1182,19 @@ NvAPI_GPU_QueryIsGRIDDisplayless
11931182
NvAPI_GPU_QueryNodeInfo
11941183
NvAPI_GPU_QueryWorkstationFeatureSupport
11951184
NvAPI_GPU_RegisterOp
1196-
NvAPI_GPU_RestoreCoolerPolicyTable
11971185
NvAPI_GPU_SetActivationState
11981186
NvAPI_GPU_SetAudioDeviceEntryPriorityList
11991187
NvAPI_GPU_SetAudioStreams
12001188
NvAPI_GPU_SetClocks
12011189
NvAPI_GPU_SetClocksShmoo
12021190
NvAPI_GPU_SetColorSpaceConversion
12031191
NvAPI_GPU_SetComputePrecision
1204-
NvAPI_GPU_SetCoolerPolicyTable
1205-
NvAPI_GPU_SetCurrentPCIESpeed
1206-
NvAPI_GPU_SetCurrentPCIEWidth
1207-
NvAPI_GPU_SetDeepIdleState
1208-
NvAPI_GPU_SetDeepIdleStatisticsMode
12091192
NvAPI_GPU_SetDisplayUnderflowMode
12101193
NvAPI_GPU_SetDitherControl
1211-
NvAPI_GPU_SetECCConfiguration
12121194
NvAPI_GPU_SetEDID
12131195
NvAPI_GPU_SetEDIDInternal
12141196
NvAPI_GPU_SetExtendedThermalSimulationMode
12151197
NvAPI_GPU_SetExternPowerState
1216-
NvAPI_GPU_SetForcePstate
1217-
NvAPI_GPU_SetForcePstateEx
12181198
NvAPI_GPU_SetIllumination
12191199
NvAPI_GPU_SetOptimizationData
12201200
NvAPI_GPU_SetPCIELtrInfo
@@ -1257,8 +1237,6 @@ NvAPI_GPU_WorkstationFeatureCommit
12571237
NvAPI_GPU_WorkstationFeatureQuery
12581238
NvAPI_GPU_WorkstationFeatureSetup
12591239
NvAPI_GSync_AdjustSyncDelay
1260-
NvAPI_GSync_DisableSync
1261-
NvAPI_GSync_EnableSync
12621240
NvAPI_GSync_FPGAFlashHelper
12631241
NvAPI_GSync_Get_DiagnosticSettings
12641242
NvAPI_GSync_QueryInterlaceMode
@@ -1679,4 +1657,4 @@ NvAPI_Xcode_GetDecodeInfo
16791657
NvAPI_Xcode_GetEncodeInfo
16801658
NvAPI_Xcode_GetNvapiDMAInfo
16811659
NvAPI_Xcode_SetDecodeInfo
1682-
NvAPI_Xcode_SetEncodeInfo
1660+
NvAPI_Xcode_SetEncodeInfo

0 commit comments

Comments
 (0)