Cyberpunk 2077 Gimps AMD Ryzen Processor Multithreading But Here’s A Fix
When Cyberpunk 2077 launched earlier this week we knew it would not be a lightweight game, simply by looking at the vast number of available graphics settings and impressive visuals. Moreover, with the sheer NPC and texture density of Night City, frame rates are not always the greatest unless you have the most powerful of graphics cards. However, what’s also surprising is that AMD Ryzen CPU owners may not have noticed the extra performance hit they are taking because Cyberpunk 2077 is not correctly utilizing all core resources of their CPU. Fortunately, there is an easy fix, thanks to some reddit sleuths, so let’s optimize Cyberpunk 2077 for Ryzen processors shall we?
First, we need to understand a little bit about what is happening under the hood of Cyberpunk 2077 on AMD-based systems. According to redditor CookiePLMonster, Cyberpunk 2077 uses GPUOpen, a software suite originally developed by AMD’s Radeon group for in-game effects and other tools. Inside the code for GPUOpen is a function that can determine how many cores to utilize, depending on the CPU family that's running as the system's host processor.
In this case, the check "effectively grants non-Bulldozer AMD processors less scheduler threads.” Thus, systems with AMD Ryzen processors might be seeing less than optimal performance versus their Intel brethren, as you can see in the screen shot we captured above. However, thankfully, this can be fairly easily remedied.
The Cyberpunk 2077 program executable is located here for Steam users: \steamapps\common\Cyberpunk 2077\bin\x64. Or in the case of a GOG installation, see the path on the top of the window in the screen shot above.
Users can then open the Cyberpunk 2077 EXE file with a hex editor and track down the following bit of hexadecimal information:
75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08
That line then needs to be changed to this:EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08
This change seemingly circumvents the function that checks for the CPU family, so all CPUs are effectively treated equally. As CookiePLMonster points out, the code snippet that performs the CPU check has a comment above it, ironically advising developers to use caution with it as it is not “general guidance for all processor manufacturers.”
We actually briefly tested this fix, and while we did not notice massive framerate improvements on our test system (a Ryzen 9 5950X and NVIDIA GeForce RTX 3080 beast with ray tracing and DLSS enabled), we did see significantly better CPU utilization in task manager. You can see our pre-fix CPU usage in the image above and post-fix CPU usage in this image below...
At the end of the day, for people with high-end hardware, you are less likely to notice framerate loss. However, this could be a game-changer for people with older or less performant AMD Ryzen hardware. We will have to see how this plays though out in detailed benchmark analysis. So stay tuned to HotHardware, as we plan on looking at actual framerates with and without in our full review of Cyberpunk 2077, coming early this week.
Performance Update - 12/13/20, 11:01PM ETBen Funk from our team is working on a Cyberpunk 2077 performance review and decided to dig into this issue himself as well. His results were more significant than we expected, actually.
Looking at frame rates, with a system powered by an 8-core AMD Ryzen 7 3700X, we see roughly an 11% gain in frame rate post patch, and with better SMT handling at play when the workload is less GPU-bound (performance DLSS setting). Min frame rates are also generally better with this improved thread handling as well. In short, we see no reason why CDPR shouldn't release an update to Cyberpunk's executable that will remove this needless limitation on AMD Ryzen processors.