HD problems in Xbox 360 and PS3 (Zenji Nishikawa article @ Game Watch)

Mintmaster said:
FouadVG, that was the worst post I've seen yet on these boards. You completely ignored all the information in this thread, and threw in more of your misconceptions on top.

A) If XB360 is having bandwidth problems, it shows they made the right decision, as lack of eDRAM would make the problems worse.

B) PS2's eDRAM was for both the framebuffer and textures. XB360 has up to 512 MB for texture memory.

C) Your comparisons to last gen are backwards. XB360 is more like PS2 because the eDRAM offloads all framebuffer traffic. RSX is more like XBox1 as framebuffer and texture traffic are all on the same bus. Note that the FSB of XBox1's CPU can only get 1GB/s anyway.

D) Unified memory means you don't need any management in your code. If you are bandwidth limited, you'll always be using peak bandwidth, regardless of how the hardware distributes things. On the contrary, if RSX needs more bandwidth it's short of luck, even if CELL isn't using much, as the majority of the data needs to be read from or written to GDDR3. Splitting bandwidth between two buses doesn't increase efficiency, it decreases it. Let's not forget the problems of two different memory pools on PS3.

In terms of sharing resources, this argument is nonsense. GPUs have memory controllers that balance requests from the render back end, the z/stencil testing, the RAMDAC, the texture units, the vertex shaders, the command processor, and probably other clients also. Adding CPU requests is nothing, and Xenos doesn't need to handle the large volume from the first two on this list either. RSX is going to be juggling more than Xenos.

E) Game engines take years to write, and actual games take a while on top of that. Tiling is a simple concept, but you need to know about it early to put it in your engine properly. Even if you told developers about this at the end of 2004, you're unlikely to see it used in many games until maybe 2007.

F) To use 6 SPE's, you need six different threads also. There's no magic that lets CELL run non-parallel code on six processors.

Lets see the misconceptions :

- the problem is not inthe edram itself...The problem is that Microsoft and ATI didnt learn from PS2 hardware limitaions and problems : You cant have enough Edram, because it cost a lot of money...10 MB of Edram would be great on PS2 to have real 480P resolution with 4X free Anti aliasing, but this was in 1999-2000 and its too expensive.
We are in 2006, 10 MB of edram is not at all sufficient to do 720P with free 4X Anti aliasing. If it was 32 MB of edram it will be great..but its too expensive...
What I mean is that you could never have on a home console enough Edram, its too expensive...So you need to find another solution. Microsoft and ATI didnt understand this...They thought that if developers use Tiling rendering they will solve the problem...Which is NOT TRUE...Tiling rendering is not automatic, you click on an icon : And magic ! your engine is running on tiling rendering ! Tiling rendering is difficult to implement, and make development on xbox360 too difficult...not menstioning the drawbacks of this technique mentioned on this thread....Microsoft and ATI underestimated the problems of having ONLY 10 MB of edram, and they underestimated the difficulties of Tiling rendering...the result ?
XBOX360 games are rendered in resolutions between 480P and 720P without anti aliasing...And this wont change soon.(even Gears of war and Too human, lost planet...arent using anti aliasing, nor real 720P rendering...)

- What other solutions ? 2 separate pool of memories for the CPU and GPU, with separate bandwidths a la PS3, by doing this you will give the GPU more bandwidth. And by economising the number of transistors of the edram : 80 million transistors, you could substitute this for more logic, to do shaders a la ps3...Shaders dont need a lot of bandwidth. Plus not using a lot of big textures, and trying to substitute textures by shaders a la LAIR.
By doing this you could achieve easily real 720P rendering + 4X anti aliasing + 8X-16X anisotropic filtering + HDR. like : Warhawk on ps3. and this is only after 2 years of development. I could assume GT5 with upscaling to 1080P with 4X anti aliasing and 16X anisotropic filtering with FP16 HDR (64bit).

- Creating 6 threads on 6 cores, is FAR easier than creating 6 threads on 3 cores. I think this is obvious. Creating 1 thread on 1 core is easier than creating 2 threads on 1 core.
For this reason using CELL power is far easier than using XBOX360 CPU power.

- PS3 is easier to exploit and optimizing the allocation of its resurces than XBOX360. You could achive on ps3 more quickly better results than xbox360. And yu will see this at E3 2006. Not mentioning that PS3 is at least twice more powerful than xbox360.

This is the result of learning from previous errors :
-on PS2 Edram was a problem, why repeat the same problem ?!!
- Shared memory was a big problem for the GPU of XBOX1, why repeat the same problem ?!!
- Using a non standard GPU on PS2 was a big problem, and using a standard GPU on xbox1 was a great solution, why repeat the same problem ?!!

Microsoft not only repeated the problems of XBOX1 and PS2 (edram, shared memory) on designing xbox360...Microsoft also deleted the advantages of xbox1 also (standard easy to exploit GPU)...This is really unbelievable...

Humans must learn from their mistakes and the mistakes of others...not repeating their mistakes, the others mistakes, delete their advatages, and creating new mistakes...:oops: This is exactly what Microsoft done on xbox360...And microsoft begin to pay the cost of those big errors...
 
FouadVG said:
Humans must learn from their mistakes and the mistakes of others...not repeating their mistakes, the others mistakes, delete their advatages, and creating new mistakes...:oops:

Practice what you preach brother. Practice what you preach.
 
Jawed said:
Ignorant question: would the extremely highly detailed normal mapping they're using for characters in UE3 games bias shadowing techniques towards what's described here. Perhaps the IQ is superior, rather than performance?

(I think this shadowing algorithm needs its own thread - I don't really understand it, sigh).

Jawed

If there is another thread on this matter I'm quite interested to read it :)

Frankly, I'm trying to quite hard to wrap my brain around this but it just doens't seem to be clicking. Maybe a good nights sleep will help.

Are they using a variation of differed shading by chance? I'm still confused though. A good chunk of the shadows you see are not cast by the things you can see.

Damn it this will keep me up tonight. Sigh.
 
joebloggs said:
This is exactly how I see the graphics playing out this coming generation.

PS3 = XBOX
XBOX 360 = PS2

I think PS3 will start higher and keep the edge for the generation but not improve as much across time just like the XBOX.

XBOX 360 will start lower but improve more over time just like PS2.

I also predict the ****** arguments will be the complete reversal of what it was last gen.
Actually that's not a prediction it's already happening... ;)


For a long time, I thought like you :
XBOX started higher and keeped the edge for the generation but not improve as much across time.
PS2 started lower but improved more over time.

But after a lot of thinking...I discovered just how much I was wrong...

Look at MGS2 on PS2. Frankly this game is still one of the best looking, one of the most advanced technically games on PS2, even compared to MGS3 3 years later. (in door envirnments are far better looking in MGS2 than MGS3).
Same thing for ICO on 2001, and than after 4 years shadow of the colossus, frankly, some envirnments are far more beautiful and technically impressive in ICO than shadow of the colossus.
Look at DMC1 and than play DMC3...You will be surprised.
...etc etc

PS2 games didnt improove too much over time as people are saying. At least not more than XBOX1 games.

Look at HALO1 and than HALO2. (there is improvements)
Or at the first Oddworld on 2001, ad the second oddworld on 2004.

There is almost the same gap if not more in xbox first generations games compared to last genarations games. Than PS2 first generations compared to last generations.

there is some exceptions of course (God of War).

But this proves that when you just exploit the ps2 after 2-3 years of development intelligently, you dont have much room for future improvements. (MGS2, ICO)
Because the console was technically TOO LIMITED without a lot of hardware feautures. Unlike XBOX1 due to its revolutionary GPU at the time (between GF3 and GF4) developers could add bump mapping, and shaders in last generation games. You cant do this on PS2.
 
FouadVG said:
Lets see the misconceptions :...

10MB of "smart" eDRAM is fine for 720p with 4x MSAA using FP10, surely you might want more, but you'll get that fine, and it's far from being "too little".
Tiling is a problem indeed, but ONLY if you stream data from CPU to GPU, otherwise it's not such a big deal, even though it has a bandwidth cost.
(That IMO is the reason tiling will not be used that often.)

UMA with embedded FrameBuffer ala GameCube makes sense, sure you can do differently, but it's way better than UMA alone.

3 cores with 2 hardware thread each, or 6 SPE, that doesn't change much on the programming side, sure the L2 cache is shared in the case of the Xenon cores, but that's about it.

Whether the PS3 is easier to code for than the XBox360 or not is pretty hard to tell for anyone not having worked on both...

The NGC had dedicated on-chip framebuffer memory and it wasn't such an issue.
UMA itself is only an issue when you have no embedded framebuffer, which is not the XBox360 case.
Xenos is standard, feature wise; the uniform shader thing should be invisible to the dev, and so shouldn't matter at all, and only help in fact.

MS XBox360 design is pretty close to the very efficient NGC design, it's not flawed in any way, although as I said earlier, the embedded framebuffer size will most likely push the devs to using 720p + 4MSAA + FP10.

MS made a lot of change for the best with the XBox360, the only thing I find bad, and it's not that much of a problem, is that they didn't make the HDD standard, and also the pad's analogs aren't precise enough (nothing mindblowing either).


I'll have to ask you to seriously think about anything before posting around here, and not make blanket statements when you aren't at least 90% sure you are correct.
 
Ingenu said:
10MB of "smart" eDRAM is fine for 720p with 4x MSAA using FP10, surely you might want more, but you'll get that fine, and it's far from being "too little".
Tiling is a problem indeed, but ONLY if you stream data from CPU to GPU, otherwise it's not such a big deal, even though it has a bandwidth cost.
(That IMO is the reason tiling will not be used that often.)
Again, primary cost is geometry not bandwidth - it shifts the costs to the front of the pipeline, having to re-process geometry multiple times for commands that span tiles.
 
Ingenu said:
10MB of "smart" eDRAM is fine for 720p with 4x MSAA using FP10, surely you might want more, but you'll get that fine, and it's far from being "too little".
Tiling is a problem indeed, but ONLY if you stream data from CPU to GPU, otherwise it's not such a big deal, even though it has a bandwidth cost.
(That IMO is the reason tiling will not be used that often.)

UMA with embedded FrameBuffer ala GameCube makes sense, sure you can do differently, but it's way better than UMA alone.

3 cores with 2 hardware thread each, or 6 SPE, that doesn't change much on the programming side, sure the L2 cache is shared in the case of the Xenon cores, but that's about it.

Whether the PS3 is easier to code for than the XBox360 or not is pretty hard to tell for anyone not having worked on both...

The NGC had dedicated on-chip framebuffer memory and it wasn't such an issue.
UMA itself is only an issue when you have no embbed framebuffer, which is not the XBox360 case.
Xenos is standard, feature wise; the uniform shader thing should be invisible to the dev, and so shouldn't matter at all, and only help in fact.

MS XBox360 design is pretty close to the very efficient NGC design, it's not flawed in any way, although as I said earlier, the embedded framebuffer size will most likely push the devs to using 720p + 4MSAA + FP10.

MS made a lot of change for the best with the XBox360, the only thing I find bad, and it's not that much of a problem, is that they didn't make the HDD standard, and also the pad's analogs aren't precise enough (nothing mindblowing either).


I'll have to ask you to seriously think about anything before posting around here, and not make blanket statements when you aren't at least 90% sure you are correct.

The 3MB of edram worked on GC and 4MB of edram didnt work on ps2, for 2 very simple reasons :

1/There is NO S3TC hardware compression on graphics sythesiser unlike GC GPU.
2/ It was a big waste of bandwidth for the PS2 GPU, because there is no hardware Transform and Lighting. the CPU (emotion engine) of PS2 was doing almost everything acting like a vertex pipeline shader and pixel pipeline shader in the same time. The GS of PS2 was like a ROP + Textures. Add to this the fact that GC handle only 24 bit colors unlike 32 bit colors for ps2.

Of course the GC was far more efficient (the dreamcast was even more efficient than GC).
But the GC was released the same time as XBOX1 and it was less powerful tha xbox1.

efficient doesent equal powerful.


The xbox360360 is less efficient and less powerful in the same time than PS3. And this is the problem.

If you cant do easily efficient tile rendering on XBOX360. Than simply PS3 is easier to exploit than xbox360.
 
Ingenu said:
Tiling is a problem indeed, but ONLY if you stream data from CPU to GPU, otherwise it's not such a big deal, even though it has a bandwidth cost.
That's fairly simplistic. It also misses the fact that the backbuffer isn't the only consumer of EDRAM - all render targets consume EDRAM (nothing to do with memexport). So any time a graphics engine uses multiple render targets, they'll all be fighting for their bit of EDRAM.

So the chances are they'll be tiled, too.

(That IMO is the reason tiling will not be used that often.)
No, tiling is essentially unavoidable in XB360 if you want to do anything fancy with multiple render targets and of course with native 720p 4xAA.

Jawed
 
In Gamecube you can access to the A-RAM in the case of code that doesn´t need huge bandwith. GCN isn´t pure UMA since it has an Auxiliar pool of RAM.

Other fact is that internally GCN uses YUV valors instead of RGB valors.
 
FouadVG said:
- Creating 6 threads on 6 cores, is FAR easier than creating 6 threads on 3 cores. I think this is obvious. Creating 1 thread on 1 core is easier than creating 2 threads on 1 core.
For this reason using CELL power is far easier than using XBOX360 CPU power.

Fouad, dear, you've learned a lot of the right words, but arranging them one after another doesn't necessarily produce meaningful sentences, see? Repeating wisecrack stuff like "I think this is obvious" does not help, either.

There's no problem in creating threads on either platform. What makes programming the Cell SPEs difficult is the fact that the little bastards can only access their own memory, unlike the Xbox360 CPU where all the threads have access to the entire 512 MB.
 
Dave Baumann said:
Again, primary cost is geometry not bandwidth - it shifts the costs to the front of the pipeline, having to re-process geometry multiple times for commands that span tiles.

Of course you're correct, it has a geometry cost, but I was thinking about the cost of having to move the framebuffer tile to the UMA RAM there...


Jawed said:
That's fairly simplistic. It also misses the fact that the backbuffer isn't the only consumer of EDRAM - all render targets consume EDRAM (nothing to do with memexport). So any time a graphics engine uses multiple render targets, they'll all be fighting for their bit of EDRAM.

So the chances are they'll be tiled, too.
...
No, tiling is essentially unavoidable in XB360 if you want to do anything fancy with multiple render targets and of course with native 720p 4xAA.
Didn't consider them, (which is rather funny considering I'm finishing my RenderTargets/FrameBuffer Manager ^^) if you can't render to UMA RAM, you'll have to move your rendertargets in/out of the embedded RAM buffer, or share its content, indeed.
As long as you don't tile those however, it should be fine.

Urian said:
In Gamecube you can access to the A-RAM in the case of code that doesn´t need huge bandwith. GCN isn´t pure UMA since it has an Auxiliar pool of RAM.

Other fact is that internally GCN uses YUV valors instead of RGB valors.
Well the point there was that carefuly considered embedded framebuffer RAM amount will do a great job, and it's not a bad thing at all; and much better than solely UMA. (cost/effective wise)

Anyway, the main idea was that the Xbox360 architecture is not stupid or broken, it's been planned carefully and should definetly provide great performances, with some tradeoffs.
 
assen said:
There's no problem in creating threads on either platform. What makes programming the Cell SPEs difficult is the fact that the little bastards can only access their own memory, unlike the Xbox360 CPU where all the threads have access to the entire 512 MB.

To be more specific, SPEs require main memory access to be made explicit by the programmer, and ought to be ahead of time. They do have access to main memory, it's just not automatic. Main Memory is as far away on 360 as PS3 (maybe a little further), it's just that access to it is transparent. There are advantages and disadvantages to both approaches - obviously Cell introduces more work for the programmer, but there can be big performance benefits where the access can be made explicit and planned ahead of time.

I would have thought a big difference between threading on the two systems would be that with dedicated hardware per thread on one system, you don't need to worrying about balancing busy threads versus less busy threads. 6 busy threads (i.e. those that don't block often) running on 6 SPEs would work, but 6 busy threads on 3 cores would not. So that's something you have to bear in mind on 360 (and for ports from one to the other, also).

Anyway, this is a little OT..
 
Ingenu said:
Anyway, the main idea was that the Xbox360 architecture is not stupid or broken, it's been planned carefully and should definetly provide great performances, with some tradeoffs.

yes, it was planned carefully only to be poo-ed upon later on by the marketing department's 'HD or bust!'
 
Titanio said:
To be more specific, SPEs require main memory access to be made explicit by the programmer, and ought to be ahead of time. They do have access to main memory, it's just not automatic. Main Memory is as far away on 360 as PS3 (maybe a little further), it's just that access to it is transparent. There are advantages and disadvantages to both approaches - obviously Cell introduces more work for the programmer, but there can be big performance benefits where the access can be made explicit and planned ahead of time.

I would have thought a big difference between threading on the two systems would be that with dedicated hardware per thread on one system, you don't need to worrying about balancing busy threads versus less busy threads. 6 busy threads (i.e. those that don't block often) running on 6 SPEs would work, but 6 busy threads on 3 cores would not. So that's something you have to bear in mind on 360 (and for ports from one to the other, also).

Anyway, this is a little OT..

Still atleast Cell now does it own DMA acess's etc...etc on its own ;) Should make things that bit easier
 
So now that we got FouadVG's little tirade out of the way...

Someone want to answer the question about Gears of War that Overclocked posed?

Is the penalty for AA on UE3 really that bad? It seems like kind of a silly trade off with the way PC gamers seem to be AA fiends (at least benchmark/reviews) and the console gaming world is jumping on the bandwagon...
 
I'm curious, and no one's really said...

1. Are any games other than PGR3 rendering below 720p internally?
2. How many games maintain steady framerates (ignoring gussied-up PS2 ports from launch like Gun)?
3. In games like Oblivion that don't run smoothly, does dropping them to 480p fix that?

I believe answers to those three questions will shed some light onto how real this problem is.
 
Ingenu said:
Of course you're correct, it has a geometry cost, but I was thinking about the cost of having to move the framebuffer tile to the UMA RAM there...
Under normal operation FSAA downsampling is done on the daughter die as it is read to main memory, so once a tile is completed it is downsampled and passed out - the only place the framebuffer exists at the MSAA level is in the eDRAM itself. So, which uses more bandwidth 720p's worth of pixels in one go or 720p's worth of pixels broken into 3 or 4 chunks? ;)
 
Dave Baumann said:
So, which uses more bandwidth 720p's worth of pixels in one go or 720p's worth of pixels broken into 3 or 4 chunks? ;)
They asked me the same question when I was at primary school..lol :p
 
Dave Baumann said:
Under normal operation FSAA downsampling is done on the daughter die as it is read to main memory, so once a tile is completed it is downsampled and passed out - the only place the framebuffer exists at the MSAA level is in the eDRAM itself. So, which uses more bandwidth 720p's worth of pixels in one go or 720p's worth of pixels broken into 3 or 4 chunks? ;)

So the color-buffer of the Framebuffer need be "exported" to UMA RAM prior to being displayed on screen...
That indeed means there's NO, 0, NADA additional bandwidth cost to tiling...
(Time to re-read Xenos/C1 article maybe...)
 
Back
Top