The ESRAM will probably store (parts of) the G-buffer, the rendered frame's buffer, various temporary buffers for particles, volumetrics, post processing and so on; stuff that needs to be accessed all the time. The main RAM could store the textures, the shadow maps, and any additional buffers the renderer may need that don't fit into the ESRAM, or those that could benefit from parallel access (thereby increasing available bandwidth).
So in short I expect the ESRAM to store data that's generated by the GPU and sometimes the CPU, and not data that has to be read from anywhere (except when a buffer has to be moved between the memory pools - but those operations should be optimized to a minimum). If the texture caches are good enough then X1's main RAM should be able to provide enough bandwidth to keep the TU's fed and avoid stalls, so the ESRAM will not be needed for that.
What also has to be understood here is that today's renderers are far more complex, it's not just about rendering a frame into a single buffer with a single pass any more. The rendering process is composed of many different stages, some of which rely on data from previous stages and others can be run in parallel. Pixel formats, texture accesses and other attributes of the stages will change wildly and frequently, and so will the required memory space and traffic.
So the PS4 is a simple case because no matter what the renderer wants to do, it has access to one type of memory system and space. This is also why GG could have been so careless with the Shadow Fall demo's various buffers, it didn't matter that much*.
But the X1 renderers should be set up to make proper choices about where they puts different kinds of data, and this should be based on each individual task's access patterns. This would of course require more effort from the developer, but could also mean a more efficient utilization of the memory subsystem.
However, the point is that you can't just do a simple comparison the way you guys are trying to do right now, assuming that the same access pattern is used throughout the entire frame and all types of data are equal and have to be loaded from somewhere. The X1 system is complex enough on its own, but on top of it all the various rendering engines will be quite different from each other too - so it is just not possible to come to a single conclusion.
* you guys should maybe read the Shadow Fall presentation again to see just how much memory is spent on the various buffers, I think their - unoptimized - requirement was around 300MB or so. But not all of them have to be kept around throughout all the rendering...
So in short I expect the ESRAM to store data that's generated by the GPU and sometimes the CPU, and not data that has to be read from anywhere (except when a buffer has to be moved between the memory pools - but those operations should be optimized to a minimum). If the texture caches are good enough then X1's main RAM should be able to provide enough bandwidth to keep the TU's fed and avoid stalls, so the ESRAM will not be needed for that.
What also has to be understood here is that today's renderers are far more complex, it's not just about rendering a frame into a single buffer with a single pass any more. The rendering process is composed of many different stages, some of which rely on data from previous stages and others can be run in parallel. Pixel formats, texture accesses and other attributes of the stages will change wildly and frequently, and so will the required memory space and traffic.
So the PS4 is a simple case because no matter what the renderer wants to do, it has access to one type of memory system and space. This is also why GG could have been so careless with the Shadow Fall demo's various buffers, it didn't matter that much*.
But the X1 renderers should be set up to make proper choices about where they puts different kinds of data, and this should be based on each individual task's access patterns. This would of course require more effort from the developer, but could also mean a more efficient utilization of the memory subsystem.
However, the point is that you can't just do a simple comparison the way you guys are trying to do right now, assuming that the same access pattern is used throughout the entire frame and all types of data are equal and have to be loaded from somewhere. The X1 system is complex enough on its own, but on top of it all the various rendering engines will be quite different from each other too - so it is just not possible to come to a single conclusion.
* you guys should maybe read the Shadow Fall presentation again to see just how much memory is spent on the various buffers, I think their - unoptimized - requirement was around 300MB or so. But not all of them have to be kept around throughout all the rendering...