How this works
The Xbox Series X has a moderately fast SSD, with read speeds of 2.4GB/s, and decompression hardware that should effectively double that speed for textures using a custom algorithm they call BCPack. New techniques are needed to use this bandwidth effectively.
Sampler Feedback Streaming uses the results of the previous rendered frame to determine which textures to read into memory. The idea is that most textures are only kept in memory at a lower detail, and as the game needs higher resolution textures, those are loaded in for the next frame.
Each texture is made of
mipmaps, which is a chain of progressively smaller versions of the same texture. Developers should also use tiled resources, which splits large textures into small squares, each of which can be loaded individually.
A 1024x1024 texture might be made up of 64 tiles of size 128x128. Its mipmap would include a 512x512 texture made of 16 tiles of size 128x128, and an even smaller 256x256 texture made of 4 tiles, and even smaller textures for even further away views, each no larger than a tile.
Each tile can either be loaded into memory, or simply reserved without using up memory. When a GPU renders a scene, it looks at specific tiles on specific mipmaps. The Sampler Feedback extension means that every time the GPU loads a tile, it can mark in a buffer saying that the resource was needed, and at what level of detail. If the tile it needs is not loaded into memory, the GPU will fall back to a lower-resolution version of the texture, but it will still mark in the buffer that it wanted that mipmap.
This means that after rendering the CPU has a bunch of information on exactly what tiles are needed. It can quickly compare this data to the tiles it has loaded, and will end up with a list of tiles that the GPU wanted, but didn't have. The CPU can also keep track of which tiles have not been requested recently, since those can probably be discarded.