Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualHodgman

Posted 22 May 2013 - 06:29 PM

Could ESRAM + DDR3 outperform GDDR5 for a typical video game?

 

...on the XBox One you might have the option of moving things between the two and seeing what works best.

But I tend to think that the 32MB of ESRAM will mostly be consumed by various graphics buffers for much of its life, and as a scratchpad for intermediate results.

Regarding the embedded RAM, we won't know the impact it will have until we know how it's used. As Ravyne says, maybe it'll be addressable as usable RAM, or maybe it will have a special fixed function.

 

On the 360, the embedded RAM could only be written to by ROP (the only place ROP could write to), and then data could only be copied from EDRAM to main memory (GDDRAM) in large chunks (graphical "resolve" operations). Or, in simpler terms: only render-targets could occupy EDRAM.

This is actually one of those quirks that developers have to deal with... When not in use, render-targets live in main RAM, but the only place you can draw to is EDRAM, so your engine has to hide the fact that when you bind a new render-target, if you want to draw over it's existing contents, you first have to draw a full-screen quad textured with the render-target's previous contents (to copy this data back into EDRAM), and when you're finished, the engine has to copy the EDRAM values back into main RAM.

This also placed a lot of restrictions on the resolution of the render-targets you could use, because they'd have to fit in EDRAM. A FP16 HDR buffer and a D24S8 buffer at 720p are ~10.5MiB, which doesn't fit... which means it's impossible to do FP16 HDR rendering (and depth buffering) at 720p on the 360, without resorting to rendering the screen in two passes and stitching them together.

 

My guess would be that the One's embedded RAM will be used for a similar fixed purpose, and won't be freely addressable RAM that the developer can use however they like.

 

Sony mentioned that they decided against using embedded RAM for this exact reason -- that although it has some benefits, it's a huge quirk that developers have to deal with (and the PS3 was quirk-central, so they've got some making up to do!).

 

Regarding DDR3 vs GDDR5: we have to wait and see what the cache miss times are like for each console specifically before we know for sure.

t will probably also depend on whether you're CPU-bound or GPU-bound.

 

P.S. does anyone else have the new consoles in their offices yet? I could go run some benchmarks, but I really don't have time, and I wouldn't be able to share the results anyway dry.png


#2Hodgman

Posted 22 May 2013 - 06:23 PM

Could ESRAM + DDR3 outperform GDDR5 for a typical video game?

 

...on the XBox One you might have the option of moving things between the two and seeing what works best.

But I tend to think that the 32MB of ESRAM will mostly be consumed by various graphics buffers for much of its life, and as a scratchpad for intermediate results.

Regarding the embedded RAM, we won't know the impact it will have until we know how it's used. As Ravyne says, maybe it'll be addressable as usable RAM, or maybe it will have a special fixed function.

 

On the 360, the embedded RAM could only be written to by ROP (the only place ROP could write to), and then data could only be copied from EDRAM to main memory (GDDRAM) in large chunks (graphical "resolve" operations). Or, in simpler terms: only render-targets could occupy EDRAM.

This is actually one of those quirks that developers have to deal with... When not in use, render-targets live in main RAM, but the only place you can draw to is EDRAM, so your engine has to hide the fact that when you bind a new render-target, if you want to draw over it's existing contents, you first have to draw a full-screen quad textured with the render-target's previous contents (to copy this data back into EDRAM), and when you're finished, the engine has to copy the EDRAM values back into main RAM.

This also placed a lot of restrictions on the resolution of the render-targets you could use, because they'd have to fit in EDRAM. A FP16 HDR buffer and a D24S8 buffer at 720p are ~10.5MiB, which doesn't fit... which means it's impossible to do FP16 HDR rendering (and depth buffering) at 720p on the 360, without resorting to rendering the screen in two passes and stitching them together.

 

My guess would be that the One's embedded RAM will be used for a similar fixed purpose, and won't be freely addressable RAM that the developer can use however they like.

 

Sony mentioned that they decided against using embedded RAM for this exact reason -- that although it has some benefits, it's a huge quirk that developers have to deal with (and the PS3 was quirk-central, so they've got some making up to do!).

 

Regarding DDR3 vs GDDR5: we have to wait and see what the cache miss times are like for each console specifically before we know for sure.

t will probably also depend on whether you're CPU-bound or GPU-bound.


#1Hodgman

Posted 22 May 2013 - 06:21 PM

Could ESRAM + DDR3 outperform GDDR5 for a typical video game?

 

...on the XBox One you might have the option of moving things between the two and seeing what works best.

But I tend to think that the 32MB of ESRAM will mostly be consumed by various graphics buffers for much of its life, and as a scratchpad for intermediate results.

Regarding the embedded RAM, we won't know the impact it will have until we know how it's used. As Ravyne says, maybe it'll be addressable as usable RAM, or maybe it will have a special fixed function.

 

On the 360, the embedded RAM could only be written to by ROP (the only place ROP could write to), and then data could only be copied from EDRAM to main memory (GDDRAM) in large chunks (graphical "resolve" operations). Or, in simpler terms: only render-targets could occupy EDRAM.

This is actually one of those quirks that developers have to deal with... When not in use, render-targets live in main RAM, but the only place you can draw to is EDRAM, so your engine has to hide the fact that when you bind a new render-target, if you want to draw over it's existing contents, you first have to draw a full-screen quad textured with the render-target's previous contents (to copy this data back into EDRAM), and when you're finished, the engine has to copy the EDRAM values back into main RAM.

This also placed a lot of restrictions on the resolution of the render-targets you could use, because they'd have to fit in EDRAM. A FP16 HDR buffer and a D24S8 buffer at 720p are ~10.5MiB, which doesn't fit... which means it's impossible to do FP16 HDR rendering (and depth buffering) at 720p on the 360, without resorting to rendering the screen in two passes and stitching them together.

 

My guess would be that the One's embedded RAM will be used for a similar fixed purpose, and won't be freely addressable RAM that the developer can use however they like.

 

Sony mentioned that they decided against using embedded RAM for this exact reason -- that although it has some benefits, it's a huge quirk that developers have to deal with (and the PS3 was quirk-central, so they've got some making up to do!).

 

Regarding DDR3 vs GDDR5: we have to wait and see what the cache miss times are like for each console specifically before we know for sure.


PARTNERS