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 ssds
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 and we'd like to thank alex battaglia and richard ledbetter for
their assistance with this deeper dive as well as some of the footage you're
about to see one issue might be familiar to you 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 the 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
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 subscribe