The pros and cons of eDRAM/ESRAM in next-gen

Having a single unified pool of memory to manage was the most requested feature from developers according to Sony.

So my question is what would be easier to program for :

Xbox One : (32MB ESRAM + 8GB DDR3) or a "Hypothetical Xbox One" (with a separate GPU die and memory bus) so (4GB for CPU + 4GB for GPU).

Is juggling the small 32MB ESRAM with a larger unified pool (8GB) easier or more difficult than a completely separate CPU and GPU memory pools each at 4GB?

My guess would be unified+ESRAM, based on the fact the 360 was the "easy" system last gen, and the PS3 with split pools the hard one.

The bar has moved in that respect. In theory One should be no more difficult than 360. It's just PS4 moved to the simplest model of all.

Now, I get the impression XOne's memory model is still somehow more difficult than 360's. It seems like maybe the 360's was more plug n play while the One's requires more handholding maybe, which could be both good and bad. But my impression could be wrong, One's ESRAM may not be any more difficult than 360's EDRAM, the difference could all be relative to the competition.

The fact of the matter is, BF4 when trying to keep 60fps stays at a consistent 10fps lead in almost every scenario, growing to a 15 fps lead when in higher stress scenes at a 40% higher resolution. This we know

What does this really have to do with the discussion anyway? Other games results vary, "this we know". The important thing here is you need to demonstrate a pattern that XOne struggles more to attain 60 FPS than 1080P relatively, not "PS4 IS CLEARLY MORE POWERFUL RAH"
 
What does this really have to do with the discussion anyway? Other games results vary, "this we know".

He was saying that the 40% resolution increase compounded by the 20% framerate advantage in BF4 places that performance differential closer to the 720p vs 1080p games at 60fps we're seeing than to the 900p vs 1080p 30fps games.
 
He was saying that the 40% resolution increase compounded by the 20% framerate advantage in BF4 places that performance differential closer to the 720p vs 1080p games at 60fps we're seeing than to the 900p vs 1080p 30fps games.
Yup, that was why I brought it up. If we are to judge on games only, then it doesn't seem to quite be 1080p vs 720p (CoD), but it is considerably more than 900p vs 720p (BF4).
 
Brad is correct, I don't know why XB1 is having these issues, but i'm pretty sure that the hardware differential has a lot to do with it, on top of it being a bitch to get even the potential it does have out of it.

The ESram is having an effect, this is just the reality of the issue. The bandwidth potential is clearly not as optimal as the competitions solution, and its showing in the games.
 
Only a small amount of draw calls are bandwidth bound (on an average game) and thus only those draw calls get linear performance gain from a faster memory.

Huge majority of the memory reads & writes occur to temporary buffers (such as the render target or a shadow map). Compressed textures (BC6 is 1 byte per pixel) and tightly packed vertex data doesn't consume much bandwidth. Slower memory bandwidth is certainly not a performance limiting factor for reading this kind of data.

Utilizing a small fast scratchpad memory (and other new techniques such as asynchronous compute) is not as hard as people think, assuming of course that the engine is designed around these features. However, designing and implementing a completely new graphics engine takes several years. Thus I would expect it to take at least two years before we see games that exploit the next generation hardware to the fullest.
 
It's also worth noting that one of the significant performance enhancers for nVidia's Maxwell is an increase in cache from 256 KB to 2 MB.
 
It's also worth noting that one of the significant performance enhancers for nVidia's Maxwell is an increase in cache from 256 KB to 2 MB.
I'm eagerly waiting for Hardware.fr review of those card, their usual figures for fillrate with and without blending should a nice showcase for the benefits of the L2 (if it affects performances that way).
 
I'm eagerly waiting for Hardware.fr review of those card, their usual figures for fillrate with and without blending should a nice showcase for the benefits of the L2 (if it affects performances that way).
It depends how they perform the test. If they render to a smaller area of the screen (1024x512 pixels for example), the performance will be much higher. However if they just render full screen alpha blended quads, the whole L2 will be trashed every time, so there shouldn't be any gain at all.
 
Its hard to believe that the memory is such a problem for developers. In that DF article about the Wii U, the developer said that memory bandwidth was not an issue on the Wii U, and that console has severely limited bandwidth to the main memory, 12.8GB/s compared to the Xbox One 68GB/s. I would assume the 32MB of sram would work in a similar manner to Wii U's edram, freeing up bandwidth taken by the buffers. Not to mention the fact that the GPU is far more advanced than the Wii U's GPU, so I would think it would have even better texture cache, but perhaps that is not the case. When you take a look at the difference in fidelity between COD Ghost on X1 compared to current gen consoles, its hard to fathom that memory bandwidth is the reason the game cant be rendered in 1080p on X1. Anandtech did an anylsis of the Gamecube GPU back in the day, and spoke of the 2MB of onboard memory for the Zbuffer saving tons of memory bandwidth, the 32 MB of sram should be freeing up enough bandwidth to make the 68GB/s to the main DDR3 memory sufficient. Perhaps the additional shader performance ramps of memory bandwidth requirements significantly, but so far is seems like the Xbox One is under performing for a closed box system. Its spec sheet would lead you to believe it should have little to no trouble running games like Ghost and Battlefield in 1080p, but obviously this is not the case.
 
I think it's hard to compare late-gen games on ps360 to launch titles that were developed for the most part on dev kits that didn't have final hardware or software. It's going to take a while for devs to really take advantage of the new hardware. I don't know if it's a question of difficulty so much as it's a question of time/man hours. Whether those gains will end up boosting resolution, I don't know, but it's guaranteed that the games look better and better after each release. Try comparing COD Ghosts on X1 to COD 2 on the 360.
 
I think it's hard to compare late-gen games on ps360 to launch titles that were developed for the most part on dev kits that didn't have final hardware or software. It's going to take a while for devs to really take advantage of the new hardware. I don't know if it's a question of difficulty so much as it's a question of time/man hours. Whether those gains will end up boosting resolution, I don't know, but it's guaranteed that the games look better and better after each release. Try comparing COD Ghosts on X1 to COD 2 on the 360.

There will definitely be a progression, but when I see a console struggling to run a given game in 1080p that a PC with similar specs runs in 1080p with high settings, I question what the problem is. I dont question that the 360 and PS3 versions got the most attention since they were the primary market, and would make up the bulk of sales. Will the Xbox One have the same level of progression that the 360 saw over its lifetime? I doubt it, simply because so much brand new technology was put into developers hands last gen, technology that those developers didnt have experience with yet. With this gen, it seems that the technology is more or less an evolution of what they were already using last gen, and should quickly get a good grasp on next gen development.
 
Wrt the comparison with PC may be we are overstating the overhead the API set on the GPU performances (has shown with Mantle).
It may affect the CPU side of things more, not too mention developers work on their games then drivers teams refine their work, etc.

I wonder about the CPU side of thing, may be the CPUs fall a bit short and it shows even more on the XB1 running what seems to be a higher level API than the competition and on top of a virtual machine.

I also don't expect the massive improvements we had last gen, what those lazy devs got out of the ps360 is nothing short of amazing. PC tech is well know, developers start to use compute where it makes sense, Nvidia have been pushing physics on GPU with PhysX for a while and so on.
It will get better massively better? May be but nowhere near what happened last gen.
Actually I also doubt the willingness of the publishers to push the bar significantly higher but that is more a business thing and OT.

pretty much that is why I was so turned off when the WiiU specs got known. I really believe the entry bar for this gen was pretty low, lower than the XB1. Looking at the developments costs there is not room for much more, clearly next gen could have been mostly about freeing devs from the severe constrains they face on the ps360 the most critical one to me seems to be the amount of RAM, even 2GB would have gone a long way. Extra processing power was most wanted to but to remove most of the ps360 games roughes I don't think you needed "that much". Now we have glorified PC, most games runs on PC and consoles, may soon on other platforms, demanding on how the market dynamic evolve I question the will (of most publishers) to push the bar wrt technology (as they might unwilling to alenaite some platform starting with the ps360), raising the quality of the assets higher than what find in the PC realm sounds incredibly costly.
 
Last edited by a moderator:
Why MS deceided to put esram instead of edram in xbox one?

Edram has much wide bandwitch (Cerny talked about 1 TB/sec), it's smaller and cheaper
Esram has very small latency but is that important for gpu purposes?
 
Why MS deceided to put esram instead of edram in xbox one?

Edram has much wide bandwitch (Cerny talked about 1 TB/sec), it's smaller and cheaper
Esram has very small latency but is that important for gpu purposes?

1) It's likely that a big reason was manufacturing concerns, in terms of manufacturer choices and/or integration ease.

2) Implementation detail that is not unique to either choice.

3) Not particularly faster at these capacities and in some implementations faster with eDRAM. Small or even significantly shorter latencies for Durango have not been substantiated by MS.
 
Digital Foundry:...Why go for ESRAM rather than eDRAM? You had a lot of success with this on Xbox 360.
Nick Baker: It's just a matter of who has the technology available to do eDRAM on a single die.
Digital Foundry: So you didn't want to go for a daughter die as you did with Xbox 360?
Nick Baker: No, we wanted a single processor, like I said. If there'd been a different time frame or technology options we could maybe have had a different technology there but for the product in the timeframe, ESRAM was the best choice.

4m old interview: http://www.eurogamer.net/articles/digitalfoundry-the-complete-xbox-one-interview
 
Last edited by a moderator:
Which game and what PC setup are you thinking of?

I was looking at some benchmarks of the HD7770. Granted it would be paired with a much better CPU, but resolution shouldnt really be CPU bound. Like liolio said though, the overhead on PC might not be quite as detrimental as people have been led to believe. I also assumed X1 would be running the equivalent of "high setting", but perhaps its actually more comparable to Ultra settings. The general consensus is that a console should get a lot more from a given GPU than the equivalent in a PC, but perhaps its more comparable than I previously thought.
 
It's also the case that the PC is a platform that at least in theory has been mature for decades, although the realm of applicability is likely about the lifespan of the more current DX releases--which is still a pretty long time.

The weaknesses of the PC platform are well known, as are its strengths. Base practices for reworking a game from the console to the PC are known, and to varying degrees developers implement them.
The better part of a decade has gone into making things better, even if they aren't always great.
In many cases, the overheads are overblown and PCs typically have a wealth of other side benefits that can boost other parts of the system, if not the ability to brute force their way past overheads.

All that being said, it doesn't seem unreasonable to expect growing pains for the new generation when the games existed longer than the platform.
 
The resolution differences is irrelevant of the CPUs. Truth be told if you gave the Xbox 360, PS3, Xbox One, and PS4 OpenGL 2.x APIs then you'll find you can run more draw calls on the last gen consoles. Most API calls and drivers are single-threaded and actually the number of CPU GFLOPS dropped from last gen.
Based on the Kabini benchmarks we're looking at around 60 GFLOPS (Sandra Synthetics), between 7-8 GFLOPS per core, less than the Xbox 360 single thread performance.

On a more relevant note bandwidth on the Xbox One is only a partial bottleneck. The bandwidth is 109 GB/s bidirection (218 GB/s front and back) but you'd have to keep both traffic busy and nominally memory bandwidth never runs at their max ratings.
Nick Baker ~"it's rare to be able to achieve that over long periods of time so typically an external memory interface you run at 70-80 per cent efficiency"

The general accepted actual bandwidth for the ESRAM is between 140 and 150 GB/s. In the same interview they describe an ingame scenario with 13.65 GP/s taking up 164 GB/s. Quite simply put more bandwidth would provide marginal gains and should not be considered in the Xbox One's difficulty rendering 1080p native games (more so at 60fps.)

Bandwidth is insensitive to framerate if you're not bottlenecked by it (mem band.) Fill-rate is a difference story. Even if you doubled the ESRAM bandwidth you'd run into fill-rate issues. The only thing you might get by is higher AA and bandwidth intensive Post-processing effects.

There are even ways to bypass most memory bandwidth costs. Tiled Rendering techniques (forward or deferred, take your pick) splits the screen into tiles small enough to fit inside the ROP L2 caches (say 64kb, can't remember.) This practically eliminates the bandwidth on GPU memory so you're immediately ROP bound.

All in all it's a ROP issue. Microsoft didn't go wrong with ESRAM but because it's complicated to work with it wasn't a convenient choice like the PS4's uniform GDDR5.
 
The resolution differences is irrelevant of the CPUs. Truth be told if you gave the Xbox 360, PS3, Xbox One, and PS4 OpenGL 2.x APIs then you'll find you can run more draw calls on the last gen consoles.
Consoles have very little drawcall overhead. I doubt switching to OGL 2 APIs could do anything other than slow them down.
 
Back
Top