Monday, December 14th 2020
Cyberpunk 2077 Does Not Leverage SMT on AMD Ryzen, Lower Core-Count Variants take a Bigger Hit, Proof Included
Cyberpunk 2077 does not leverage simultaneous multi-threading (SMT) on AMD Ryzen processors, according to multiple technical reviews of the game that tested it with various processors. The game does leverage the analogous HyperThreading feature on rival Intel Core processors. While this doesn't adversely affect performance of higher core-count Ryzen chips, such as the 16-core Ryzen 9 5950X or to a lesser extent the 12-core 5900X, lower core-count variants such as the 6-core 5600X take a definite performance hit, with PCGH reporting that a Ryzen 5 5600X is now matched by a Core i5-10400F, as the game is able to take advantage of HyperThreading and deal with 12 logical processors on the Intel chip, while ignoring SMT on the AMD one.
CD Projekt RED may have bigger problems on its hands than performance optimization for a PC processor, such as the game being riddled with glaring performance issues on consoles; but in the meantime, the PC enthusiast community swung to action with a fix. Authored by chaosxk on Reddit, it involves manually editing the executable binaries of the game using a Hex Editor, which tricks the game into using logical processors as cores. This fix has been found to improve frame-rates on AMD Ryzen machines. Before attempting the hex edit, make sure you back up your original executables. The screenshot below provides a before & after-patch view of Cyberpunk 2077 loading a Ryzen 9 5950X. You can learn more about this fix, and a step-by-step guide here.Update 08:28 UTC: We have some technical details on what's happening.
A Reddit post by CookiePLMonster sheds light on what is possibly happening with the game. According to them, Cyberpunk 2077 reuses AMD GPUOpen pseudo-code to optimize its scheduler for the processor. It was originally designed to let an application use more threads when an AMD "Bulldozer" processor is used; but has the opposite effect when a non-Bulldozer AMD processor is detected. The game looks for "AuthenticAMD" processor brand, and "family = 0x15" (AMD K15 or Bulldozer/derivative), and only then engages "logical processors" (as identified by Windows OS scheduler as part of its Bulldozer-optimization). When any other, including a newer AMD processor is detected, the code makes the game scheduler only send traffic to the physical cores, and not to their logical processors.
Our own W1zzard dug into the binaries to verify these claims, find a commented decompilation below. The game indeed uses this archaic GPUOpen code from 2017 to identify AMD processors, and this is responsible for its sub-optimal performance with AMD Ryzen processors. This clearly looks like a bug or oversight, not like it's intentional.
Sources:
chaosxk (Reddit), BramblexD (Reddit), PCGH, VideoCardz, CookiePLMonster (Reddit)
CD Projekt RED may have bigger problems on its hands than performance optimization for a PC processor, such as the game being riddled with glaring performance issues on consoles; but in the meantime, the PC enthusiast community swung to action with a fix. Authored by chaosxk on Reddit, it involves manually editing the executable binaries of the game using a Hex Editor, which tricks the game into using logical processors as cores. This fix has been found to improve frame-rates on AMD Ryzen machines. Before attempting the hex edit, make sure you back up your original executables. The screenshot below provides a before & after-patch view of Cyberpunk 2077 loading a Ryzen 9 5950X. You can learn more about this fix, and a step-by-step guide here.Update 08:28 UTC: We have some technical details on what's happening.
A Reddit post by CookiePLMonster sheds light on what is possibly happening with the game. According to them, Cyberpunk 2077 reuses AMD GPUOpen pseudo-code to optimize its scheduler for the processor. It was originally designed to let an application use more threads when an AMD "Bulldozer" processor is used; but has the opposite effect when a non-Bulldozer AMD processor is detected. The game looks for "AuthenticAMD" processor brand, and "family = 0x15" (AMD K15 or Bulldozer/derivative), and only then engages "logical processors" (as identified by Windows OS scheduler as part of its Bulldozer-optimization). When any other, including a newer AMD processor is detected, the code makes the game scheduler only send traffic to the physical cores, and not to their logical processors.
Our own W1zzard dug into the binaries to verify these claims, find a commented decompilation below. The game indeed uses this archaic GPUOpen code from 2017 to identify AMD processors, and this is responsible for its sub-optimal performance with AMD Ryzen processors. This clearly looks like a bug or oversight, not like it's intentional.
84 Comments on Cyberpunk 2077 Does Not Leverage SMT on AMD Ryzen, Lower Core-Count Variants take a Bigger Hit, Proof Included
But I can also see where some might not dig it, so I get curious.
The problem is the AI is absolutely far below par, its as if we went back 10 - 15 years or so, and never before in a game has the AI been completely reworked.
Cops just spawn behind you and do not drive their cop cars, the world you are not looking at despawns instandly, AI pedestrians react...well again as if we are playing a game from a decade ago...and that will probably never get fixed.
More weapons, more cars, more cyberware, the ability to mod cars, the ability to ride the damn train...maybe...MAYBE that will be added but the core gameplay will remain the same and that is why the game is imo pretty much doomed.
So what exactly were they doing in those 4 years, aside from making a penis customizer?!
we know the hex manipulation and some other tweaks now, like turning on the "slow hdd mode" when having texture streaming issues etc.
i bought the game just a few moments ago and will fiddle around with it, hopefully enjoy it overall.
Applications were not aware of this, when they detect a new core, they expect it to be a full core which have both integer and FP logics, but when the application actually split it workloads into threads, while 2 threads will get full integer cores, but these 2 threads will be forced to share a single FP core, if the application is FP heavy, then being multi core will actually takes a hit in performance as things will get congested in the single FP core.
For example if you go to a bar to get a drink, you just buy it like you would be your gun...you can't sit down and drink it.
You can not interact with people, even the traffic lights switch to green for you. The AI does not exist...the whole game seems to be on rails.
And the police? GTA 1 from the 90s had better police.
I really like how the city is made, the vibe, the sounds and I still kind of hope they can change all this for this game to be not just good but great. But I somehow doubt that such vast and deep changes will be made.
This game would be fine 5 years ago, but in the meantime the bar was raised much higher (see RDR 2 - IMO it's the benchmark when it comes to OW, the attention to detail and the options you have there is just mind blowing).
The team that made the city deserve credit, the team responsible for what is in it....not so much
P.S: also, the numerous desperate attempts at downplaying this open source project just show that it has become a great alternative.
Either way, all the other stories seems to point to bad management
It raises questions, mostly towards AMD for totally forgetting to show some TLC to game developers - especially those that are about to release the biggest blockbuster in recent history.
Not the first time, still an ongoing trend. Still a major missed chance and still something Nvidia uses to its advantage. Complaining about green here has no place, and CDPR isn't responsible for Ryzen either, just for their game. We see this every. Single. Goddamn. Time.
AMD wants the mindshare they better start working for it. DXR is a similar major miss. I mean wtf. You have RT capable hardware. And if Green blocks your path, expose it and put CDPR and Nvidia to shame. I mean... you're either in business or in kindergarten.
Cyberpunk was 2020's highest exposure tech demo. If you have, which is highly plausible, current hardware that is all Intel, the urge to do so is very low, not in the least because the market penetration % for Ryzen is ALSO extremely low. You're literally testing for a niche at that point, especially during development when Ryzen was far from what it is today.
But to you I also ask... have you considered the role of AMD as well? Game development can be as much as some random guy sitting there drawing some concept art. I believe it as much as I believe Nvidia has been 10 years at work on RTX :D
Sure. We believe it. Why not?