-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Advanced Users only] CPU AutoTDP #2151
Open
IceStormNG
wants to merge
145
commits into
seerge:main
Choose a base branch
from
IceStormNG:cpu-auto-tdp
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+3,051
−1
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…Environment.Exit(0) do though.
…the framerate source
# Conflicts: # app/Settings.cs
Hey @seerge, any chance to get this merged once rebased and updated to the latest base version of g-helper? |
@RobinBeismann hello, eventually - may be. But currently my idea is to keep app as simple as possible. As it already has too much features as for me. There are couple of other niche branches (for example Experimenal manual fan control) that are separate as well :) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an experimental implementation of AutoTDP for the CPU. Right now it works with Intel CPUs directly (requires the Winring0 drivers), and all ASUS laptops through the ASUS driver.
To work, RTSS (Riva Tuner Statistics Server) is required! If you don't have it, the feature will not be available to you.
If you have MSI Afterburner installed, you already have RTSS installed. Afterburner and GHelper AutoTDP can run at the same time without issues (so you can have the overlay from Afterburner and let AutoTDP do the magic).
Otherwise, you can install it from https://www.guru3d.com/download/rtss-rivatuner-statistics-server-download/
This feature is currently disabled on the ROG Ally... as there will be a special implementation for it at some point.
If your system meets all requirements, the AutoTDP button will show up below the GPU buttons.
![image](https://private-user-images.githubusercontent.com/12786283/309487263-280604cd-e13f-40e1-b4bf-b4048f310b43.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxMTQwMTgsIm5iZiI6MTcyNDExMzcxOCwicGF0aCI6Ii8xMjc4NjI4My8zMDk0ODcyNjMtMjgwNjA0Y2QtZTEzZi00MGUxLWI0YmYtYjQwNDhmMzEwYjQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDAwMjgzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZkZWI4NTE0NDAwMWZjMGQxNzMwNDAzNTk2ZDdmNGYwOTQwMmY0Yzc3ZTI1Y2UyMDE3NmUxNmRiMTNlMDBjZWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.SVUyOQtvw6HGoOD5WhAaHejer4RYjimcwhglELey-X8)
This is an advanced feature for people that have some knowledge about this. If you don't know what "TDP" is or how to figure out how much power your CPU currently draws, then it might be the best to not touch it. It won't damage your computer and also not make it run hotter, but wrong values can and will cause lower game performance.
Important: The AutoTDP system will restore your power limits after the game is stopped or when you exist GHelper. However, if GHelper crashes or you kill it via Taskmanager, it will not do that (because it can't) and you have to reset the values manually in GHelper (by changing the power mode once). In worst case you have to reboot your computer.
What is it?
First of all, this is NOT a framerate limiter. Instead, you should set a framelimiter for the games you want to use it for in your GPU driver, either Nvidia Control Panel or AMD Radeon Software.
Modern GPU drivers already have a AutoTDP like feature for their GPUs if you configure a framelimiter in the driver compared to using an external framelimiter or the one integrated into the game.
So, what is it then?
It's an algorithm that constantly adjusts your CPU's power limits to be just as high as needed to run your game at the intended framerate. Especially on Intel CPUs, this can cut the CPU power usage down significantly, depending on CPU and game.
This will allow you to run the game at very similar performance but with less heat and less power draw.
This is great if you want to game on battery, or want to reduce fan noise or are stuck with a USB-C charger that can not fully power your device.
This is not intended for games where you need/want the absolute best performance, like competitive games.
Do not use this feature and complain that your game is sometimes dropping FPS.
How to set it up
If you click on the AutoTDP button, a new windows will open which allows you to configure it.
The first drop downs allow you to do some general configuration, like what method to use to limit CPU power or what way to use to get the game's framerate. Right now, only RTSS can be used as source.
If enabled, it will still do nothing yet. You have to add the games that you want to use it for. It will not engage for any other application.
Click on the "Add Game" button and select the .exe file of your game that you want to use AutoTDP for. Keep in mind that some games have different exe, for example for dx12 or vulkan, or one is a launcher and the other the game (Fallout 4 does that). Make sure to use the one that is running your game.
Afterwards you can configure the settings for the game.
Select the same framerate, as the one that you configured your framerate limiter to. Btw: if you use this feature without a framelimiter, it will still work and will try to cut power to the CPU, trying to limit the game's framerate. However, this is not going to be smooth, so you really should set up a framelimiter.
The min and max TDP settings define the range that AutoTDP is allowed to adjust in. It will never exceed those values.
If you know how your CPU behaves, you can find those values rather quickly. Otherwise, you might have to experiment with it a bit. An overlay like Afterburner can be of help here to check how much power your CPU is consuming to get an idea of what is a useful range.
Won't this cause stuttering?
Yes and no. There will be some slight framedrops when CPU load increases suddenly or when the algorithm tries to find the lowest stable power levels. Loading times can also be slower than usual. This heavily depends on the game though. Some games work without big issues, some will have performance issues. You can resolve those by increasing the min TDP by a few watts.
Again: if you play competitive games with super high framerates and need the best possible performance, do not configure AutoTDP for those games. You can still do if you wish and we won't stop you, but your right to complain is gone.
@seerge if you want to, you can use this text as a "readme" to document the feature if you are going to merge it... and as a warning to users that should not touch it.
You might wanna check whether it works nicely on AMD devices, as I only have an Intel laptop for testing.