Why PC Game Ports STILL SUCK?

    Even though arguments between console and pc gamers still happen all the time consoles are more pc-like than ever before the Xbox series x and series s are based on AMD's Zen 2 architecture and you can even buy off-the-shelf SSD to expand the storage of your PlayStation 5.



 But if consoles are so similar to pcs now why the heck do ports of console games still have all sorts of performance issues when you try to run them on a regular desktop to find out we reached out to our friends over at digital foundry if you played horizon zero dawn at launch or final fantasy 7 remastered problems with how pcs handle the game's shader a shader is a code that handles how to illuminate and color each pixel on the screen on a console the shader is just a file that the console loads when the game starts up and because each model of the console has exactly the same hardware in each unit programmers know how to write the shader for that specific hardware configuration.

But because pcs can have nearly endless combinations of processors memory graphics cards etc the shaders in pc ports are instead recompiled as you play the game so each time you encounter a new area or object there's a good chance that the game will stutter while the shader recompiles and renders the scene but the good news is that once a shader gets recompiled it is saved to your ssd or to your hard drive so your cpu won't have to do that extra work ever again however there are other problems that can appear over and over again because of differences in how memory works on a console versus on a pc modern gaming pcs tend to have more memory than consoles it's not uncommon to find 16 gigs of system ram plus 8 or more gigs of vram in a gaming computer but modern consoles have a shared pool of typically between 10 and 16 gigs of memory in total meaning that games written for consoles often work by constantly streaming the necessary data into ram since there just isn't as much of it to work with now pcs could give you better performance simply by loading in more assets ahead of time thanks to their extra ram but games have to be recoded to take advantage of this and that would be a lot of extra work that publisher timetables may not allow for and while this might not create graphical glitches it does mean that you're leaving performance on the table even if your gpu is more powerful than what you would find in a console god of war is a great example of a title where this limitation is visible with the game becoming dramatically slower at dedicated loading portals and the fact that pcs have separate system ram and video memory also means that data like textures and geometry information is getting shuttled between those two ram pools quite often which takes time generally speaking the cpu has to handle this information including decompressing all this visual data consoles on the other hand have just one pool of memory where the data goes and they usually have a dedicated decompression chip that just handles this visual data lessening the load on the CPU. 

The fact that pc cpus have to do this extra legwork can you guessed it cost you performance though hopefully the new direct storage api for windows will help alleviate this burden since it offloads decompression work to the gpu which wouldn't tax your performance very much due to the way that gpus are designed we're just waiting for developers to take advantage of this feature in newer titles we'll tell you more right after we thank ifixit for sponsoring this video all month long ifixit is challenging our youtube community to fix or make something instead of buying new for fixit february ifixit is giving away a protect toolkit to one lucky fixer every week all you have to do is share photos or videos of your repairs with the hashtag fixitfeb for a chance to win so save yourself money by fixing your tech while entering for a chance to win with fixit feb get your ifixit kits today using the link in the video description now it isn't uncommon anymore to see pc processors with 12 16 or even more threads but console games are written with fewer threads in mind even though the new xbox series x has 16 threads the previous generation of consoles which many games are still being made in mind for didn't have nearly that many and because it would be a massive amount of effort to re-code these games to scale to higher numbers of threads most developers don't bother and the gameplay experience suffers as a result far cry 6 is a good example of a recent game that suffers from this problem although it can definitely take advantage of high-end modern gpus it can still stutter if you're getting a high frame rate because the cpu is trying to load assets and it can't use all of its threads to do so because developers have been so used to coding mostly for a single thread until about the mid-2010s this paradigm shift is taking a long time now how games use or don't use multi-threading leads us into our last topic the directx api on the surface you might think that the fact that both the xbox and windows use directx might make it easier to port games between them but the problem is that both directx 11 and directx 12 are widely used in game development and they are very different from each other under the hood directx 12 gives developers more granular control over their games and it's become especially popular with xbox titles because as we mentioned before everybody already knows exactly what's inside of an xbox so programming specifically for that fixed set of hardware isn't too difficult but when those titles get ported over to pc many games instead use directx 11 like assassin's creed odyssey. 

For example directx 11 doesn't provide as much granular control and instead takes care of more tasks automagically that's important because pcs can have such a wide range of hardware but it isn't always a good thing more specifically directx 11 by default uses only one thread for rendering meaning that games that get a direct x11 port released for pc often have poorer cpu performance especially on amd with its directx 11 driver being slower on the cpu using directx 12 for pc ports could solve this issue but again because of all the different hardware configurations possible on a pc that would necessitate a great deal of coding maintenance from the developer directx 11 also does not support a feature called asynchronous compute this feature allows one part of the gpu to render a scene's geometry while another takes care of compute tasks like physics or ambient occlusion consoles rely heavily on asynchronous compute to increase performance but since so many pc ports are written with directx 11 the result is that many games released in the mid-2010s have lower than expected performance especially on amd gpus which historically tend to be designed more with compute tasks in mind compared to their counterparts from nvidia in fact there were a number of games where a gtx 1060 and an rx 580 performed similarly under directx 11 even though the rx 580 from amd is a more powerful gpu on paper the lack of asynchronous compute is probably playing a big role there so yeah there's a lot that prevents our pc ports from playing the way that we expect but hopefully as time goes on developers will be able to take advantage of new tools to make coding for both platforms far less tedious i would say to just try and exercise some patience until then but i do think we used up a lot of that on cyberpunk 2077 and the gpu shortage and this darn pandemic.

Post a Comment

0 Comments