How an SSD Improves the Performance in Consoles when Streaming

Very recently Microsoft has released an update to its DirectX graphical API that adds a new runtime called Sampler Feedback , and that will form an integral part of the way in which next-generation consoles will take advantage of their SSDs to improve performance when it comes to Streaming . Do you want to know how it works? In this article we explain it to you.

Sampler Feedback is a new Direct3D feature that defines how texture and location information is captured and recorded on-screen; without it, until now developers saw these opaque details, with less quality and requiring more effort from the hardware to generate the frames that are broadcast in Streaming.

Controller

How Sampler Feedback Works

Take the Xbox Series X , for example , whose SSD is moderately fast with a theoretical read speed of 2.4 GB / s and decompression hardware that should double that rate for textures using a custom algorithm called BCPack. New techniques are needed to be able to take advantage of that bandwidth effectively, and that when it comes to Streaming from the console the performance of the games is not severely penalized.

Sampler Feedback uses the results of the previous rendered frame to determine what textures to read in memory. The idea is that most of the textures that are stored in memory do so with a very low quality of detail, but since the game needs higher resolution textures, they are loaded for the next frame. Basically, it saves an already rendered frame in memory for later use.

Each texture is made up of what they have called “Mipmaps”, which are a chain of progressively smaller versions of each frame of each texture. Developers use these mosaic-like textures that break large textures into smaller boxes that can be loaded individually to streamline the process and improve performance.

For example, a 1024 x 1024 texture could be made up of a mosaic of 64 128 x 128 frames. Your Mipmap would have a 512 x 512 texture made of 16 128 x 128 frames and an even smaller 256 x texture. 256 made of 4 frames and even smaller textures for further views.

Integer-Scaling

Each of these tiles can be loaded into memory or simply reserved for later use. When a GPU renders a scene, it looks at the specific tiles in the specific Mipmaps it needs. The Sampler Feedback extension helps whenever the GPU has to load a mosaic, it can buffer what frame it needs and with what level of detail. If the tile you need is not in memory, then a lower texture resolution version will be used to save the GPU work .

This means that after rendering the CPU has a lot of information on exactly what tiles are needed, you can quickly compare this data with what is already loaded and you will end up with a list of what the GPU asks for but doesn’t have. The CPU can also keep track of recently required tiles that you can download to free up memory.

How the console SSD improves its streaming performance

There are two things that determine how fast an SSD can work: the size of the requests (how much data goes in) and the depth of the queue (how many requests it receives in parallel). For an SSD, 4K readings with a depth of 1 or 2 is a typical “random” workload and is generally quite slow. In contrast, 128 KB reads at queue depths of 16 have much better performance.

With 128 x 128 tiles and 4 bytes per pixel, the tile is 64 KB. Multiple textures like normal and color will always be needed at the same time, so they load and unload together, so after compression the size can be 64 KB or more. Because the CPU knows what textures are needed at all times, it can queue them as fast as it wants, which means that when it comes to texture transmission it will benefit greatly from the increased bandwidth that an SSD provides.

Continuing with the Xbox Series X example, if the texture load speed after decompression is 3.8 GB / s, this would allow loading 64 MB per frame at 60 FPS; this is fast enough to load 1000 textures per frame, the equivalent of a single 4096 x 4096 texture.

In other words, with this Sampler Feedback technology we will definitely have better performance and a better quality of textures, being especially interesting also for Streaming because it would have a lower penalty for GPU and CPU taking advantage of the enormous bandwidth provided by the SSD.