The Xbox One’s memory system – primarily the ESRAM has been the subject of much discussion in the gaming news media. Just a few weeks ago, I ran the piece discussing the issues with the Xbox One’s ESRAM and Resolution (article). The basic premise is that the amount of RAM is limited, and it requires a lot of work on the part of developers to get the 1080P / 60FPS.
Recently, it came to my attention from a question from a viewer about a recent interview conducted with Oxide Games, where the developer spoke about the advantages of embedded RAM. The interview was fairly short, and focused on ESRAM and its uses and benefits.
“We can say that there are pros and cons of having embedded RAM in general. The primary limiting factor for an embedded GPU on a CPU is certainly going to be bandwidth. On the PC side, the memory bandwidth to the GPU is going to be your limiting factor in most cases on a typical PC with DDR3 memory.
“In fact, on certain Haswell configurations, Intel has added 128MB of embedded RAM for exactly that reason. For certain operations, this can be a massive speedup. On the negative side, it is always more work to use configurations where there are different memory banks with different speeds, and sometimes it is not always possible to fit your dataset into them.” – Dan Baker from Oxide games.
Now of course, this is a more general observation – it’s not really specific to the Xbox One’s GPU. It’s worthy of note, that Intel’s Haswell CPU (which was mentioned in the above quote) does indeed have 128MB of embedded RAM. This is due to the chip being a ‘low power part’ and functions as an IGP (Integrated Graphics Processor on the main CPU).
This isn’t meant to take the place of a high end desktop GPU. It neither has enough fast memory available, or for that matter enough GPU grunt available to be able to really able to compete. Even a mid range GPU in the PC space will stomp all over it.
Interestingly, there were recent tests conducted by Anandtech which show the impact of different DDR3 memory speeds on the Haswell’s eDRAM. The results aren’t pretty – it’s clear that the 128MB (which is 4x the amount of the Xbox One’s ESRAM) is simply unable to contain all of the relevant info needed and bleeds into the slower DDR3. Therefore choosing faster DDR3 memory for your PC rig is vital if you’re planning on using Intel’s IGP.
So, the question is – why did Intel choose to go with 128MB of memory? Well, the story goes like this. They initially had thought 32MB of RAM would be enough, but they decided to double it to be sure, and then double it again to be super sure. In other words, they wanted to just make sure that future improvements to graphics and resolution wouldn’t suddenly make the IGP completely useless. Intel’s Iris Pro 5200 is fed by two sources – DDR3 and the eDRAM (running at 1600MHZ) which gives 50GB/s memory bandwidth (bidirectional) More info at anandtech .
To put that into perspective, the average gaming PC will have a dedicated graphics card, with between 2 – 4GB of super fast GDDR5 memory (usually with a memory bandwidth of between 200 – 350 or so GB/s). So what does this mean?
It demonstrates that in the case of the Xbox One, it’s going to take programming for the developers to optimize the use of the memory amount of the ESRAM. Not only that, but the DDR3 memory bandwidth (which is 68GB/s) is going to be vital. From all reading and signs, the bandwidth of the ESRAM won’t be too crucial, instead it’ll be the space. In other words, effectively using the limited amount of space with the most important assets. In regards to the DDR3, you’ve plenty of space – so you need to instead concern yourself with speed.
The Xbox One does support tiled resources, which can turn something like 16MB of textures into a virtual pool of quite literally Gigabytes of textures. The issue is that it will require programming – and worse, this virtual texturing will of course require bandwidth and space which should also be used for the frame buffer. The Frame buffer is ultimately what “stores” the image prior to it being displayed on screen. Just for reference, the PS4, Mantle and OpenGL can also do their own versions of Tiled Resources. For the PS4 it’s not really a big deal however, due to the PS4’s memory lay out. However it could be a technique in the future which game developers will pursue.
Does this mean the Xbox One’s ESRAM is unusable? No – but to answer the questions of the viewers who’ve been asking, it’s going to take a lot of optimization to get this working. I’m sure you’ve heard the Call of Duty: Ghosts rumors concerning the xbox one. It basically went that CoD Ghosts took 3 weeks on the PS4, and ran at 90FPS without optimization. On the X1 it ran at 15FPS and took them 4 months (again without optimization). Google here. Clearly this is only a rumor – and nothing to get super excited about – but it certainly would tally up with the other rumors which have floated about regarding the need and importance of optimization on the Xbox One.
What we can’t do however, is forget that the Playstation 4 isn’t a limitless feast of memory bandwidth. It has finite limits, and due to its faster GPU (1.84TFLOPS compared to the Xbox One’s 1.32TFLOPS) it’ll likely need extra memory bandwidth. For me and many others isn’t the memory bandwidth, but rather the limited amount of fast memory available. 32MB of ESRAM seems pretty small, and honestly speaking going with 128MB of eDRAM would’ve likely been a far better bet. Right now the only thing we can do is just watch the skies over the Xbox One’s games development and see what developers managed to pull out.
Lastly – moar pixels don’t make for a great game, so please don’t judge a title purely on the amount of pixels that it’s pushing around.