onanie said:
For example, while it may be obvious that "the EDRAM on Xenos means a pipe cannot block on a wait to destination memory", it remains contentious whether the cost of the implementation could have been spent on other aspects of the hardware. Is it not a compromise between pixel quality vs post-processing, or programmable vs fixed function? Comparing the 128 bit bus on the RSX (identical to xenos too) to a supposed PC counterpart isn't fair, especially if you would also want to dismiss the XDR bandwidth that is available when required, and not being contended for at other times (unlike the 360).
There are a lot of things to consider with eDRAM vs the PS3 approach. First of all it allows developers to use the 512MB however they want without any headaches or performance issues. They can use 100MB of textures or 400MB of textures, if the game code allows for it. How much is this flexibility worth? Secondly, it'll probably save MS some money to only have one 128-bit bus. There are fewer memory chips and the board layout is simpler. (I know packaging the two dies together costs something, but that could disappear in the future.) Thirdly, there's more stuff you need on the GPU in order to manage without eDRAM (e.g. compression logic, more complex memory controller, etc), so this offsets a bit of the transistor costs. Fourthly, the additional memory contention from the CPU pales in comparison to the demands from the colour and z clients in GPUs without EDRAM. The bulk of the EDRAM probably yields well also, since a tiny amount of redundancy can cover for an error anywhere.
Add all this up, and it's tough to say whether there's a big cost disadvantage.
One could observe perhaps that "Xenos has MUCH better dynamic branch support". Even if true, how important is dynamic branching support outside of benchmarking tools? What of vertex shader intensive situations? Can you say that it happens most of the time? Why should the ability to dedicate all ALUs to vertex shading for one instance be significant?
For dynamic branching, of course there's no use in current games, because it's only been usable in hardware for six months or so. It's a new tool that enables new effects. Demos have shown huge practical benefits, and demos aren't benchmarking tools.
The polygons a game sends to a chip are not uniform in size. Vertex to pixel ratios span many orders of magnitude. Very, very few polygons lie within the range where both pixel and vertex shaders are mostly occupied simultaneously. For any given polygon, the ratio changes as the player moves around. I've done sophisticated workload analysis before, and it's like this all the time.
There's also lots of vertices without
any pixels. For any character or object you draw (with the exception of some things like terrain), about half the triangles are backfaces, and get culled. Of the remaining polygons, some are out of the screen, as you can't waste CPU time getting rid of every polygon outside the viewing frustum.
Perhaps your argument is that paper metrics cannot provide a simple answer to which system is more powerful. But if I were to argue for it, I would say that even ignoring the vertex shaders on the RSX, the Xenos ALUs at best will only be able to match RSX's pixel shading capacity, regardless of how you reorganise the ALU arrays. This is based on numbers alone.
You think texturing is going to disappear? For any texture lookup, one of RSX's ALU's are occupied. Consider a shader with 8 texture instructions and 20 vector math. Xenos is limited by texture units, so it outputs 2 pixels per clock. RSX will output 24*2/28=1.7 per clock, assuming perfect dual issue. Note that some of the math units in Xenos are idle, so it's not an ideal case for it. If I really wanted to cherry pick, I could give an example where Xenos is over 10 times as fast. I don't know of any situation where the converse is true.
As for vertex shading consuming resources, consider a short 10 instruction shader operating on a small 10 pixel by 10 pixel rectangle with simple transformation shader. 1000 PS instructions, 8 VS instruction for two vertices (in fact you could get away with one vertex per quadrilateral). 99% of the time is spend in pixel shading. Vertex shading will barely make a dent in the shading power available for pixel shading.
Xenos doesn't have handicapped pixel shading like a bunch of you guys are pretending. Yes, it's a bigger die size in total, but there are lots of new rendering possibilitities with it.