How the SSDs in the next-gen consoles will drive PC gaming forward.


Before you even get started, I've made an effort to sort of section off the article into chunks and paragraphs, each sort of labeled or starting with a question. If you understand the subject of what I'm going to say pretty well, perhaps feel free to skip the paragraph. 

The superiority of the PCMR vs Console Peasants

It’s no secret that the PC Gaming Master Race is as strong as ever, as tongue-in-cheek as you may or may not take the term, and that’s not even a bad thing. PC gaming legitimately offers many competitive advantages over current consoles; Access to an undeniably wider repertoire of games going back decades, competitive prices and stores thanks to competing marketplaces, like Steam, GOG, Origin, UPlay, and even heaven forbid, Microsoft Store. PCs offer higher framerates, custom resolutions, multiple monitors, faster CPUs and GPUs, a superior interface for some game types like 4x, FPS, and RTS. Of course, we can’t forget about the unbelievably fast storage relative to the spinning rust still in consoles.

But the fast storage in PCs has kind of turned out to be kind of slow 

The storage is not quite what we were hoping for though, is it? It doesn’t matter if you bought an overpriced Intel Optane 905p with its incredibly low read latency, 2.6GB/s reads, and 575k IOPS, or even waited for a blazing fast 5GB/s 750k IOPS PCIe 4.0 SSD, you’re finding that games are loading, maybe a couple times faster. Why aren’t we seeing the amazingly fast storage speeds that we need to truly feel superior to those console peasants? We get TOLD that it's IOPS that's better for gaming, not the bandwidth, but still drives with MANY times faster IOPS barely outperform the SATA drives, so clearly that isn't telling the whole story

How consoles can hold back the PC gaming platform

It turns out, it’s actually partly because of those console peasants that you can’t get the full experience from your blazing fast storage. Don’t worry though, not only is this about to change, they’re going to be laughing at you in their rear-view mirrors. You see, gaming technology is in many ways centered around consoles. Nearly every common game engine, be it Unreal, Cryengine, Unity, Frostbite, or almost anything else you can think of outside mobile engines, was designed and optimized for consoles. Consoles run off spinning rust. Thus, engines and games are optimized for spinning rust. It's similar to why every time we get a new set of consoles, PC graphics and CPU use goes way up, too. PC gaming tech follows the consoles. 

Can we optimize for both SSD and HDD? 

But what does this mean? Why does it matter if the game engine was optimized for SSDs or HDD, and why does that dictate what’s on PCs? Well, to put it mildly, file IO is not that simple in game engines. There's a lot of processing, decompression, ordering, etc. that slows things down outside the storage.  This is okay for Hard Drives, as the pipeline was designed to get some work done on the data while waiting on the slow Hard Drive. It also doesn’t make sense to build two separate code paths for the file IO in an engine for HDD and SSD because that would actually be a LOT more work than it sounds like. It's not just the pipeline after the storage, how the data is organized and put into storage would be completely different. There's a lot of work that's done to make sure that the data is ordered and in the right formats so that getting it off the spinning rust is as fast as possible, at the expense of other points in the pipeline. To optimize for SSDs, it might actually make more sense to have a lot of the data on disk pre-processed and expanded to allow for less processing on the data afterwards, depending on where the bottleneck actually is. Properly optimizing for both would mean incredible massive, unwieldy, and incredible error-prone code. Another example of the extra considerations that HDD optimizations have to make is seek time. Game IO is designed around taking extra time to reorganize the data that’s going to need to be accessed, to reduce the time waiting for the physical platter and needles that store and read data inside the mechanism to move around to where the data physically exists on the disk before it can even start reading it. While SSDs and HDDs have intercompatible interfaces, that's pretty much where the similarity ends. If we optimize a game properly for SSD, loading times on an HDD could potentially become exponentially worse than they already are, making some games literally unplayable. 

 How storage speed impacts world creation and development  

But what does it mean to design a game around HDDs? Why can’t they just make a game for SSDs, and then it will also work on HDDs but have slower load times because they have the same interface? The answer is that storage speed isn’t just about load times anymore. Sure, it doesn’t typically directly affect anything sexy like Frames Per Second or number of polys in models, but most games these days are open world games. These games are far too large to fit the entire map in your RAM at one time. That means, as you move through the world, your system will stream data in and out of your storage into RAM to experience these places without hitches or loading screens. However, since Hard Drives are slow, your system has to stream data into your RAM for any place or object that you might see or interact with in the time that it takes to load that storage in from RAM. In other words, let’s say you’re walking through a city, filled with buildings, people, objects, etc., and off in the distance, there’s a cute little house filled with rooms, including a living room. If it takes that living room 20 seconds to fully stream that house and its living room from a hard drive into storage, and it’s possible that you may see or interact with that living room in the next 20 seconds, if the game doesn’t want you to experience a loading screen or some immersion-breaking popping in of assets, that house’s living room has to already be in your RAM, even if you never actually go see it. Multiply that by every object that you may or may not encounter in the time that it takes you to reach them, by the time they load in. This means that your RAM is constantly filled with idle data that you never actually end up using. 

A brief Summary of what we've covered so far. 

It's not possible to properly optimize games and game engines, and how they access data off storage for both SSD and HDD. Devs have to pick one. Either they're making the game so that it can make decent use of HDDs, or it doesn't, leaving them way behind. Since consoles currently use HDDs, that's where the industry remains, and your expensive super-fast SSD is an unfortunate casualty of that reality. Similarly, it's part of why most games aren't well optimized for more than 8 CPU threads, or more than 8GB of VRAM, etc. the whole industry has to move in order for development to move, and the consoles are an anchor in the past. 

A bright future for consoles… 

By this time, given the title of the article and the way I started, I think you can see where I’m headed with this. There’s a bright light on the horizon. Game developers are even more tired of having to spend so much time and effort accommodating Hard Drives than you are tired of staring at long loading screens and wondering why this visually unimpressive world takes up so much RAM. An SSD was the single most highly demanded feature for next generation consoles for these reasons. They want to rid themselves of the ball and chain that is the spinning rust and needle. And rid themselves of it they will. Both Sony and Microsoft announced that not only their next gen consoles will feature blazing fast new SSDs, but they have both implemented new integrated pipelines to expedite the movement of data from storage into the engine. I won’t go into specifics as they each took a slightly different approach; the PS5 with raw breadth and speed and a hardware-accelerated general pipeline, and the Xbox Series X with a slower but more specialized texture decoding pipeline that holds a lot of promise. The effect of either of them will be loading data into engine at speeds we’ve never seen before. 
Remember my analogy with the living room? Well with storage as fast as is on the previous gen, that living room has to be loaded when you’re still the next street away if you’re on foot, and maybe 10 streets down if you’re in a car. On the next generation of consoles, that living room not only doesn’t have to be loaded into RAM if you’re standing at the front step, but as you’re standing in the living room, details in the living room behind you can get streamed out, and pulled in from storage as you turn. This means instead of being filled with idle data in a world that we might explore, our RAM buffers are filled with data for what we’re looking at RIGHT. NOW. 
But why are you talking about consoles? How does this affect my PC Gaming Master Race? Well, there’s some good news, and some bad news. The good news is now that consoles will no longer use Hard Drives, there’s no reason to optimize for them and developers will be building worlds that not only make use of the faster storage but rely on it. The bad news is that both consoles are going to have storage solutions that are much faster than is even possible on PC with our current hardware, not just because of the faster raw performance (PS5 has a 5.5GB/s drive and at the time of writing the fastest PC drive is 5.0GB/s) but in terms of the hardware accelerated pipeline and streamlined APIs used to make use of it. This means that there will be games made on consoles that rely on that storage speed, and thus could not be ported to the current PC. The game simply would not be able to run without dumbing it down for the slower platform. I know this is hard to hear for the PC master race, but it’s not all grim. 

… And a speculative bright future for the PC Master Race

It’s okay that the consoles have something we as PC gamers don’t have though. It means we have something to look forward to. Fair warning, the rest of this post is speculation on my part. Right away, I believe we’re going to start seeing engines drop support entirely for Hard Drives. Few enough people use them on their gaming PCs that they’re safe to drop off entirely. However, a huge number of gamers still use SATA-based SSDs (the top 3, and 7 of the top 10 amazon best-selling SSDs at the time of writing, are SATA-based, if you count that one oddball SSHD hybrid drive) which are a full 10x slower than the PS5 storage. This means that while game developers get to drop HDD optimizations, they still have to account for the SATA bottleneck. I think at first, we’re going to see most games fall into two categories. 1) Games that previously might have launched on PCs and Consoles, may instead be console exclusives. Perhaps even releasing on both consoles but not on PC. 2) Games developed for release on both PC and consoles that will not run off an HDD on PC, and will also not make full use of the incredible storage of the consoles. 

Can PC match the storage performance of the consoles? 

Short answer is no, not right now. Long answer is yes, but in time. 
This has to happen in stages, because remember that in order for a game to be released on PC, the game has to run on enough PCs out there for it to still sell enough volume to make money. I've had people argue that PS5 storage is not faster than PC because it's possible to buy a several-thousand dollar 15GB/s PCIe 4.0 x16 card that's really 4x PCIe 4.0 x4 drives in RAID 0, but this hardware is not common enough for a game developer to be able to assume that kind of performance.

First, we'll see HDDs fall out of support, and games optimized well for SSDs, but game devs will design the game around that ~500MB/s read speeds. However, this will mean that faster storage will actually perform noticeably better (to an extent, likely still not proportionally relative to the listed speeds) but it will cause people to buy the faster storage for the faster loading times. Once a certain level of storage performance is common enough, devs can bump up the minimum requirement for the storage, and make use of it. 
The largest hurdle is what Playstation is doing with its hardware accelerated pipeline. Currently we can't take CPU cores and dedicate those to that because not enough gaming machines have more than the 8c/16t of the playstation, so making use of those cores to accelerate the pipeline would reduce the resources available for the game itself, and Mark Cerny said their specialized chips in their pipeline is as fast for those tasks as multiple Zen2 cores. No, the unfortunate reality is this will take the longest, as we need cohesive integration with both the motherboards building in proper acceleration hardware (it's possible this could start getting included in future chipsets, but it's hard to say), and for windows to build the appropriate APIs that make full use of the hardware and redesign the way the OS handles data requests for games.  For them to get widespread use, it would have to be a standardized API, likely build into DX. It won't work well for the industry if each motherboard manufacturer builds their own. 

Closing

I apologize for the extremely long article, but as you can see, I'm very excited to find out where this technology will go in the future.  Please join my discord and let me know if you think I could be on the right track for where this tech could go in the future, and if not, where do you think it will go? Do you think the industry will try to cling to Hard Drives? Do you think that the industry perhaps won't really adopt and take advantage of the storage of the new consoles? Do you still perhaps think that games can simultaneously make full use of the console's fast storage and also work well on an HDD-based PC? Let me know!  Discord:  https://discord.gg/CHfha8V  Patreon: patreon.com/MeyerTechRants/ 

Comments

Popular posts from this blog

Hardware-accelerated IO in consoles coming to PC

The best competition in CPU History is NOW

PS5 vs XSX vs PC featuring storage architectrures