If there’s one criticism that has incessantly plagued the Xbox One since even before its launch, it’s the system’s memory decisions. While some developers have complimented the eSRAM, and others have achieved greatness with it, the fact remains that at this point, developing around the seemingly-infirior 8gb DDR3 + 32mb eSRAM memory-combo hasn’t yielded the results that some would have you believe that “next-gen” is all about – 1080p/60fps.
However, the now infamous “resolutiongate,” and the ignorance surrounding it, is starting to subside, as Microsoft’s reasoning for approaching memory differently is starting to become clear. With new dev-kits and developer understanding, the decision to use eSRAM makes sense if you “plan ahead,” said Wolfgang Engel in a recent interview with GamingBolt. The observant among you may remember his statements on DirectX 12 from last week.
When asked about the potential of the Xbox One’s eSRAM and whether developers would be utilizing this feature any time soon, Engel had this to say:
“eSRAM is very fast memory. In general the biggest challenge that game developers are facing are memory access patterns, so while we have a lot of computation power, the memory access cost is increasing substantially over the last ten years, compared to the cost of arithmetic instructions.
“As long as you are in registers you are fine but as soon as you need to access memory, it becomes slower. So the challenge is to access memory in the most efficient way.
“Therefore memory access patterns are the most important optimization strategies. So it’s not about counting cycles but it’s about thinking how can we re-factor an algorithm so that we can access memory in a more efficient way. eSRAM is part of that.
“For example with a compute shader you can access cache memory (thread group shared memory) so you can re-factor your algorithm so that it uses this memory better, resulting in a huge and substantial speed ups. With the Xbox One, the introduction of eSRAM has a similar idea.
“The memory expensive draw calls can be rendered into eSRAM. When you don’t need so much memory bandwidth, you use the regular system memory. You have to plan ahead, you have to think how you are going to use the memory, in the most optimal way. So eSRAM gives you an advantage if you do this. For one of our games, we used eSRAM by creating an excel sheet first, that shows how we are going to use eSRAM through the stages of the rendering pipeline. This helped us utilize the speed improvements that were coming from the eSRAM.”
Wolfgang definitely has a valid point. Developers can already see the benefits of eSRAM, if only when they plan for it and use it accordingly. We already know that Crytek was a big fan of the eSRAM’s capabilities when developing Ryse: Son of Rome, so it will be interesting to see how other developers utilize it in the coming years – especially after DirectX 12 goes public.
What are your thoughts on the subject? Let us know in the comments.