The death of PC gaming. That’s been the topic at hand for the past several weeks, with port after port after port arriving on PC in disastrous states. PC gaming isn’t dead, but if this trend continues, it’s hard to recommend picking up any new release on PC, at least before it receives a string of inevitable patches.
I wish I could provide a single solution for the problems PC games face, but I can’t. The list is massive. But there’s one area of focus that could help the situation a lot, and it’s where consoles still have a lead over PC.
The source of stutter
When it comes down to it, there’s one thing that causes a stutter in your games: a spike in rendering time. Something has clogged up the pipe for a brief moment, and while that’s sorted out, there’s a gap in time between one frame showing up on your screen and the next. That’s a stutter.
But what’s clogging the pipes? In many cases on PC, we see shader compilation stutter. This is where the CPU needs to send instructions (shaders) to the GPU and translate them from software code to hardware code. This is the source of stutter in games like Gotham Knights in many cases.
We have a good solution for shader compilation stuttering. The first is pre-compiling shaders like Uncharted: Legacy of Thieves does on PC. Get the instructions stored in memory ahead of time so that you don’t need to fuss with compiling while the game is running. The other is asynchronous compilation. Modern CPUs like the Core i5-13600K have access to a ton of threads, so threads that aren’t doing much can handle compiling for upcoming sections while you play.
They’re not simple solutions, but they work. The other main source of stutter we see is traversal or loading stutter. This is the case for Star Wars Jedi: Survivor, a game that launched with a number of performance issues. Here, the spike in rendering time comes from the game loading in new data as you traverse through the world.
It’s important to distinguish between the two because they have far different solutions. Shader compilation stuttering happens when a new shader effect is introduced on screen. Shading a single pixel can have several layers of effects, so an explosion or an effect from picking up an item are the areas where you typically see shader compilation stutter.
Traversal stutter happens when your character passes a loading zone of some variety. If nothing particularly note-worthy is happening on screen, there’s a good chance you’re seeing a traversal stutter and not a shader compilation stutter.
Star Wars Jedi: Survivor is a good example of this dynamic. In the opening of the game on Coruscant, a large ship crashes into a platform and there’s a brief, minor shader compilation stutter. Later, on Koboh when you enter or exit Pyloon’s Saloon, however, there are around 10 seconds of intense stuttering. That’s a traversal stutter.
Developers have solutions for shader compilation stutter, even on engines like Unreal Engine 4 that are particularly hard to wrangle in that department. We have seen many of the shader-related stutters fixed in games like Hogwarts Legacy, and games like Atomic Heart have launched free of stutters due to an intense pre-compilation process. The situation for traversal stutter is more complex.
The Kraken of next-gen
Both the
Streaming in data from the SSD is where traversal stutter occurs, and it’s a much more challenging issue to solve on PC. Not only do PCs not have dedicated decompression hardware, but the range of specs of SSDs makes it hard to reliably scale streaming performance across multiple systems.
There are solutions for this problem on PC, but they just aren’t working yet.
On a PC, decompression is a task for the CPU. Data is streamed from the SSD, but it needs to be decompressed while in transit, oftentimes resulting in a traversal stutter. The dedicated decompression hardware on the
There are solutions for this problem on PC, but they just aren’t working yet. DirectStorage is available to PC users, and it helps improve loading times and streaming through GPU decompression. The problem is that we only have one game with DirectStorage right now, Forspoken, and it doesn’t leverage GPU decompression. It just improves loading times, slightly outpacing a
In every other game, the process is the same. Assets are brought from storage into system memory, the CPU decompresses them, and then they’re copied to GPU memory. This labor-intensive process is likely a reason why we’ve seen VRAM usage go up so high in recent releases, as the games are developed for consoles that don’t have a memory bottleneck that’s currently present on PC.
DirectStorage is one solution, but it’s not the only way to improve the major traversal stutter issues on PC. Proper CPU scaling is a solution that’s been underutilized, particularly for Unreal Engine 4 releases. This engine is built largely to run on two threads of the CPU, and as you can see in games like Star Wars Jedi: Survivor, the remaining threads aren’t doing much work, if any at all.
Despite the fact that consoles have less compute power than modern PCs, developers are designing games for platforms that don’t have a major asset streaming bottleneck. You can still achieve higher performance and visual quality on a high-end PC, for sure, but that comes at the cost of stuttering, lowered texture resolution, and VRAM limitations that aren’t present on console, or at the very least, are far less severe.
Nvidia’s answer
In early May, Nvidia submitted a research paper to Siggraph 2023 — an annual conference centered around advancements in computer graphics — titled “Random-Access Neural Compression of Material Textures.” The paper proposes a system where a neural network handles compression and decompression of textures, and according to it, the system can store 16 times the data in the same amount of space as a traditional block-based compression.
It’s called Neural Texture Compression (NTC). More detail in textures for the same storage space is definitely an attractive option — as we’ve seen with Forspoken and Resident Evil 4 Remake, texture quality can actually be much lower on PC than consoles in VRAM-constrained scenarios — but the real boon is that NTC is designed to decompress data at runtime.
DirectStorage hasn’t materialized in PC games in the way I would’ve hoped.
There is a slight overhead compared to dedicated decompression processors, according to Nvidia, but the researchers say they expect this overhead to be smaller once it’s applied to real-time rendering. More important is that decompression can happen directly on the GPU, bypassing the CPU and the need for dedicated hardware entirely.
Will this solve the stuttering issues and VRAM hikes plaguing PC gamers? I don’t know. For now, this is just a research paper, and if we do see NTC brought into
But it holds a lot of promise. DirectStorage, for as much of an answer as it sounds like, hasn’t materialized in PC games in the way I would’ve hoped. The hardware supports it, the software is out there, but we just don’t have games leveraging hardware GPU decompression to get anywhere near what the consoles currently offer. This solution may be more manageable for developers and less demanding on hardware.
We don’t know for now. In the meantime, I’ll be crossing my fingers that the remainder of 2023 holds PC releases that actually function, at least until we see more of the clever ways that developers and vendors want to tackle what’s a clear problem with PC gaming.