You're going to hear a lot about why SFS (Sampler Feedback Streaming) is such a big deal and why its so important in maximising the potential of the @xbox Series X hardware with regard to its Velocity Architecture. So lets take a very brief and fast look at things. 1/1
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. 2/2
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. 3/3
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. 4/4
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. 5/5
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. 6/6
But, lets 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... 7/7
...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. 8/8
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... 9/9
...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. 10/10
Now... Lets 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, lets say a player model, and he uses a 8192 res texture, you have no way around this. You load that 8192 texture. 11/11
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, its in memory. Remember, I said its not just ONE asset either, but multiple. So, think of the sheer amount of data that could be... 12/12
...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. 13/13
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. 14/14
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. 15/15
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. 16/16
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. 17/17
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. 18/18
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. 19/19
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 optimisations of its own that gets ignored, but... 20/20
...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. 21/21
I cannot wait for the 23rd. Come on @xbox, bring the fire, bring the bombs. Lets 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.

Lets do this. 22/22
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 & swap as needed. 23/?
Guys and gals I’ve had a few snide attempts (both here and in PMs) trying to turn this into a him versus her type console war argument. That really wasn’t my intention, believe it or not. Can we not just all try and celebrate awesome tech, regardless of who creates it? Thanks.
Follow up thread:

https://twitter.com/gavavva/status/1284409882083557376?s=21 https://twitter.com/GTS_Tweets/status/1284409882083557376
You can follow @GTS_Tweets.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.