This is not correct.
Nvidia have been explicit that 2:1 is the expected typical compression ratio with that resulting in a 2x effective uplift to IO. See
here:
I read that info from
here which didn't say it was typical. But again, if the 2x number is typical, it sounded like too much rounding and somehow MS and Nvidia ended up in exactly the same place.
nvidia said:
Specifically, NVIDIA RTX IO brings GPU-based lossless decompression, allowing reads through DirectStorage to remain compressed while being delivered to the GPU for decompression. This removes the load from the CPU, moving the data from storage to the GPU in its more efficient, compressed form, and improving I/O performance by a factor of 2.
Again, Nvidia have been explicit that it
can:
it can if the SSD is faster. Basicallty waht Nvidia said is that if there is a SSD that is faster than Gen4 SSD, it can still handle those. So if you have 14GB/s RAW SSD, Nvidia can potentially have 28GB/s throughput. But what is the limit when decompressing a 7GB/s stream of data? The impact my be tiny, but that is not the point if you potentially bottlenecked from somewhere.
Basically if I have a big data with 4:1 compression ratio, can RTX IO decompress it at 28GB/s throughput? With PS5, it is 22GB/s max, with Xbox series it is over 6GB/s..
If somehow oodle texture can produce 5:1 compression, it doesn't mean PS5 can decode it at 5:1 speed since that would ended up with 27GB/s, but it can decode it at 4:1 speed.
Compression ratio's are determined by the routine that's used. This is fixed on the consoles because they use hardware decompression blocks. So Microsoft is limited by the compression ratio of BCPACK and Sony is limited by the compression ratio of Kraken (with RDO encoded textures). Both end up around 2:1 and that's unlikely to go any higher. RTX IO appears to use compute shaders so may be able to leverage new, higher compression ratio algorithms in the future if such a thing becomes available but I wouldn't count on it. It's probably a good assumption to make that we'll be at 2:1 for the remainder of this generation unless ML texture upscaling becomes a thing (in which Nvidia would have a massive advantage thanks to the Tensor cores).
What people need to remember is that this compression thing is mainly about game install size which has a really nice side effect which is improving the IO speed. A PC game need to target various hardware and on some low end configuration, too aggressive compression might make that game unplayable. or maybe game install will have 2 flavor... compressed with something that is supported by RTX IO / directstorage and another one without (thus bigger install size).
There's no reason why games can't take full advantage of the highest speeds available from RTX IO while still scaling all the way down to SATA SSD's and maybe even mechanical HDD's (although I do expect SSD's to become a minimum requirement on many PC games in the near-mid term.
Yes, it can scale, but mainly because you built it to scale. If I give you an empty canvas and say you can have 14GB/s throughput from SSD, the game would probably ended up different if I only give you 600MB/s thorughput. PC will need a minimum storage speed requirement in the future if they want to truly take advantage of SSD for other than quicker level load speed. Since I'm not a game dev, I can't 100% say with conviction that I can create a game that requires 5.5GB/s throughput from the storage that the game would break no matter how much you try to scale it down when you port it to a 600MB/s storage (max SATA speed), but I definitely can imagine a game designed with 5.5GB/s storage would break/unplayable if it ran on 100MB/s storage.
I want to talk a bit about SFS. Yes, SFS is a wonderful tech, but it doesn't really speed up the IO nor does it make the game install size smaller. What it does is using the bandwidth more efficiently. You only load what you need thus you potentially save that precious bandwidth. It also can reduce memory usage. But unless you use it aggressively (like you keep the texture data usage on memory as small as possible, thus only loading the required texture and immediately throwing away currently unused texture data), I'm not really sure how much useful it is on a system with 10 to 16GB of memory. So what I'm looking at here is that SFS benefit is mainly about efficient use of memory bandwidth instead of increasing IO speed like some people think it would do. Having SFS will not make the Xbox series storage IO have 2.5 multiplier on top of the 4.8GB/s throughput. It is something good to have, definitely useful, but again, I'm not really sure about the impact in real games. I can imagine it will help games to run smoother/prevent hitching when Xbox series is loading textures.