Een dev over SFS (Sampler Feedback Streaming) en waarom de techniek best goed is (ondanks dat hij momenteel niet met Series X hardware werkt).
Spoiler alert: hij zegt dat je deze komende generatie niet fout kan kiezen (both consoles are awesome)
You're going to hear a lot about why SFS (Sampler Feedback Streaming) is such a big deal and why its so important in maximizing the potential of the Xbox Series X hardware with regard to its Velocity Architecture. So let’s take a very brief and fast look at things.
First, textures. Games are made up of textures, of which a single surface can contain several. What looks like one simple visual asset to you in the game world, can actually contain many. Commonly, surfaces are created with a bare minimum of: Diffuse, Specular and Normal. However, they can also contain separate channels for masking, power and scale variables, height maps, parallax occlusion or displacement maps etc. These are usually best served in the same native resolution as the diffuse, but can be any size, larger or smaller. So, a standard texture set contains several assets. Assets will vary in size depending on resolution, and compression method used. For reference, a standard 2048x2048 texture set will be D/N/S, of which each file is 12mb, so, 36mb in total.
Next gen, 4096x4096 and 8192x8192 will be more common. A standard 4096 set is 48mb each (144mb) and 8192 is a massive 192mb each (576mb). Adding in other surfaces you can see how these add up.
However, that's not a fair assumption, as usually, we compress these images to save file size on disk. But we also do other tricks, such as greyscale specular, or lower resolution spec maps. There are many ways to save size here. But, let’s go with a standard 4096 set, at 144mb, uncompressed. Now, every texture asset is comprised of something called a "mip". Mip maps are, essentially, lower resolution versions of the same asset. The reason for this is that when an asset is used in the current scene, if you use too low res an image it will look awful, but likewise too high res an image will look utterly terrible at distance and appear to what we call sparkle (almost like looking at a pixelated version of the image). So we blend between these textures as needed. Modern game engines handle this process automatically. Throw in a 512x512 and the engine will load the correct mips as required. But what are the "correct mips"? A mip is created for a texture that is exactly half of the X and Y axis of the previous. In English, this means 512x512 would be our source, and then 256x256, 128, 64, 32, 16 etc. So as you can see, the higher resolution your base asset is, the more mips are required. Again remember this is done for EVERY asset, texture wise.
Now... Let’s get back to SFS. A normal method of handling this data is that we have to load the whole texture into memory. Yes, that means if you have, let’s say a player model, and he uses a 8192 res texture, you have no way around this. You load that 8192 texture. If the player is in your face, or if he's 1 mile away shooting somebody else, it doesn't matter... If the engine thinks that asset is needed, it’s in memory. Remember, I said it’s not just ONE asset either, but multiple. So, think of the sheer amount of data that could be needed, for a single character that's a mile away, which takes up 1cm on your 65" OLED. Traditional systems, and yes the PS5, work this way. But with SFS, you don't. And this is the game changer. SFS will essentially only load the required mips and totally ignore everything else that would usually need to be called into memory. Why is that important? Simple. Because now, that half a gigs worth of uncompressed data, is just 576......kb. You now only need to load the texture from 128x128 (example), due to the sheer distance. Of course, this will change based on proximity, but works for any surface. Game world textures, characters etc. You will ALWAYS be close to something, but far away from others. So now, you are loading in much, much, much less texture data.
Why is that such a big deal? Because now, you need much LESS IO throughput to move assets in and out of memory. You can load things quicker, for less hit, but still at the quality desired. In short this actually moves around the need for a higher bandwidth, and allows the same fidelity, at a lower cost. Which not only equals more memory to play with for assets, but also faster performance.
The PS5 SSD is faster than the Series X. Of that, there is absolutely nobody with a brain who will tell you otherwise. However, there is more than one way to skin a cat, and SFS is an absolute game changer in keeping up with the (brilliant) PS5 drive. Couple this with sustained speeds that are a few TF higher and other tricks for rendering higher quality assets in the near frustum (I'm looking forward to seeing how MS tackle a DLSS 2.0 alternative too!) and its clear to see why the Series X is such a damn fine machine.
Both machines are incredible. BOTH. But while Sony put all their eggs in an SSD basket, MS divided the talent up for everything. The XSX SSD is a damn fine piece of kit with some impressive IO optimizations of its own that gets ignored, but now, coupled with SFS, it essentially levels the playing field somewhat. As I said, there is no denying the PS5 has the faster IO and raw speeds... OF COURSE. But that's not the end of the magic trick for MS. I cannot wait for the 23rd. Come on Xbox, bring the fire, bring the bombs. Let’s put this "Xbox has no games" meme to bed.
Regardless of if you're blue or green, we are in for a damn fine generation guys. Let’s do this.
Clarification: When a mesh uses a 8192 texture that texture is loaded into memory regardless of distance to the camera or mip level used. Meaning even if it’s using a low mip level it still needs that 8192 texture in memory. SFS would only use the lower mip and swap as needed.
Sorry something else I need to clarify (which I thought was obvious but I’ll say it now) I’m a developer and have nearly 20 years experience of both professional work and indie, however I am not currently working on Series X hardware (But that doesn’t change how things work).
I have friends working on both but to be fair all I’ll say is don’t believe everything you read. There’s this thing that Xbox is doing poorly or that Sony is miles behind in speed?
All I’ll say is my friends are very happy with the Xbox hardware, and Sony’s too. Both consoles are awesome from what I can gather, and have their own strengths and weaknesses, of course. I wouldn’t worry, I don’t see there being a wrong choice this gen!