Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
milkru authored May 28, 2022
1 parent 1a4fcac commit 28ebf8e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## About
A simple *DirectX 12* based *GPU clock stabilizer* used for consistent *GPU* profiling on *Windows*. It can be used for profiling applications made with other modern graphics APIs as well. It utilizes *DirectX 12's* `SetStablePowerState` device method in order to achieve this. This allowes more deterministic timestamp query results used for calculating elapsed GPU time for any given range of render calls for at the expense of lower performance.
A simple *DirectX 12* based *GPU clock stabilizer* used for consistent *GPU* profiling on *Windows*. It can be used for profiling applications made with other modern graphics APIs as well. It utilizes *DirectX 12's* `SetStablePowerState` device method in order to achieve this. This allowes more deterministic timestamp query results used for calculating elapsed GPU time for any given range of render calls for at the expense of lower performance. You can read more about it [here](https://developer.nvidia.com/dx12-dos-and-donts#powerstate).

## Installation
The *DirectX 12 SDK* comes included with the *Windows 10 SDK* which is part of the *Visual Studio* installation. Just make sure you install the *Game Development with C++* in the *Visual Studio Installer*.
Expand All @@ -10,7 +10,7 @@ Run cmd `cmake . -B bin -A x64` in the project's root.
If not specified in the command line, the first available *GPU* will be chosen. You can also specifiy the GPU explicitly by passing the name of the preferred GPU, for example "*NVIDIA GeForce RTX 3070*". Names of your *GPUs* can be found in *Device Manager*, *Display Adapters* tab. This way the application can work on *multi GPU system*. In order for *GPU clock* to remain stable, the application should remain running at all times. After exiting the application, clock stabilization will stop working. For testing the *GPU clock* I recommend using the [TechPowerUp GPU-Z](https://www.techpowerup.com/download/techpowerup-gpu-z/). Observe the *Sensors/GPU Core Clock's* behavior with and without the application running.

## Results
Left image shows the usual GPU clock values on *NVidia GeForce RTX 3070* and the right one shows the clock with the *gpu_clock_stabilizer* running. This was captured using the [TechPowerUp GPU-Z](https://www.techpowerup.com/download/techpowerup-gpu-z/).<br/><br/>
First image shows the usual GPU clock values on *NVidia GeForce RTX 3070* and the second one shows the clock with the *gpu_clock_stabilizer* running. This was captured using the [TechPowerUp GPU-Z](https://www.techpowerup.com/download/techpowerup-gpu-z/).<br/><br/>
![Unstable](https://github.com/milkru/data_resources/blob/main/gpu_clock_stabilizer/UnstableClock.PNG "Unstable") ![Stable](https://github.com/milkru/data_resources/blob/main/gpu_clock_stabilizer/StableClock.PNG "Stable")

## Troubleshooting
Expand Down

0 comments on commit 28ebf8e

Please sign in to comment.