What limits the console’s eSRAM and how can it effectively be used?
There’s been a lot of discussion about the Xbox One’s 32 MB eSRAM and how it is a limiter to the console’s overall performance. Although some developers such as Capybara Games deny any bottlenecks with the technology, there is still a feeling of it being limiting despite potentially being able to store up to 6 GB of tiled textures when used in conjunction with DirectX 11.2.
Interestingly, for a normal forward renderer, 32 MB is the exact amount of space necessary to store one 4x MSAA 32 bpp 1080p frame buffer. However, due to the need to output more than just the pixel colour with the renderer, you’ll require multiple buffers. This explains why the anti-aliasing and resolution needs to be turned down for some games on the Xbox One – the 32 MB eSRAM is somewhat of a limiting factor.
The Xbox 360 had the same trouble with eDRAM and solved it by rendering only specific portions of a scene at a time, exchanging different buffers as necessary. Tiled resources are better, since you can avoid drawing your scene twice, but are difficult to properly implement. So a creative approach in the case of first person shooter games, would be to render the bottom half of your screen, which features more objects, using eSRAM while the top half – which is usually empty using the normal VRAM. This allows you to effectively remove less intensive portions from the frame buffer in order to have the eSRAM working on the more complicated bits.
Will this be the de facto solution for the Xbox One, especially since it took developers a while to implement the same approach on the Xbox 360 using eDRAM? It’s unlikely in the beginning stages of the Xbox One’s life cycle, resulting in a drop of resolution and AA, but given a couple of years, we could see some creative use of the eSRAM without a serious hit in performance or visuals.
Why include eSRAM at all if it becomes a limiting factor? Simply due to its bandwidth for tiled texture middleware, which is reportedly 192 GB/s. Also, it appropriately helps make Cloud gaming more possible on normal internet connections thanks to its LZ encode/decode compression abilities. So whether we believe so or not, Microsoft knew what it was doing when it included eSRAM into the Xbox One. We’ll just have to wait and see if devs can deliver the best visual experience possible while taking advantage of the eSRAM’s many benefits.