PC Watch (my translation): PS3 Evaluation System, and much,

I think asking 'what if RSX is pixel shader bound, how much use will Cell be at helping?' makes about as much sense as asking 'what if Cell can't cope with the fluid dynamics, how much help will RSX be at helping?' ;)

I imagine Cell would be very good at post-processing. DOF type effects, outlining, etc. It can read in the framebuffer (coherant data reads) and process as a stream. But it can't do everything and isn't supposed to! This is a factor of all hardwares. PCs and XB360 and Revolution will all face the same bottlenecks and there won't be option for help from elsewhere as the system is stretched to capacity.

There will come a time when RSX's pixel-shading capacity just isn't enough, and devs need to leave effects out. At that point we'll be hearing about how great PS4 is...
 
Shifty Geezer said:
There will come a time when RSX's pixel-shading capacity just isn't enough, and devs need to leave effects out. At that point we'll be hearing about how great PS4 is...
Oh no, we'll all be hearing about PS4 much, much sooner than that, and we both know it. ;)
 
I don't think you'd need Cell to do be doing PS, at least relative to competing systems. 85% of RSX's power is invested in pixel shading..it makes more sense for Cell to help with heavier vertex loads which RSX has a much smaller percentage of its power dedicated to. RSX isn't that far removed from that speculated "dedicated pixel shader" theory that was bandied about pre-E3, you know ;)

It was asked earlier - what about the rest of the game if your SPEs are busy with vertex work? The answer to that is, it's up to the dev to make that tradeoff if they wish. If they can get their game running on the PPE alone and want to put a heavy bias on graphics, then fair play to them. Other devs may want to do more things with the SPEs. I very much doubt anything but a few games would require 7SPEs + VS to be doing vertex work all the time, however, but the option is there if it's necessary.
 
Point is that one SPE running at 3.2GHz is bound to produce much more than one VS running at 500MHz. Everything else being equal (unlikely, but just to keep the numbers easy), it would produce 6 times as much.

Therefore one SPE alone, maybe 2 could be enough for most vertex workload that on a GPU might have required many VS's. (Those numbers are completely made out of thin air, it's just to give an example). Added to that, the GPU itself has its own VS's.

The Devs would obviously have to choose how many resources they need to dedicate to geometry and how many to anything else.
 
PC-Engine said:
On Xenos you can have all of the shaders do vertex or pixel work on RSX you cannot. If you're PS limited on RSX the VS just sits idle and the CPU cannot assist in PS work. Correct me if I'm wrong but that is my understanding. If CELL can offload some PS work then I stand corrected.

I think you are right. From what I gather the Cell processor is not especially fond of pixel processing tasks unlike how it seems to be well suited for vertex work.

You can always do anything in software as the saying goes but it's probably not terribly efficient compared to letting the RSX simply do all the pixel processing.

Basically as I see it with the RSX-Cell combo you can do a sort of load balancing but in practicality only with respect to vertex work. Xenos's unified architecture along with the assistance of the X360's CPU can allow for balancing of both the pixel and vertex loads.

I'm not sold on letting the X360's CPU do ALL the vertex processing and then dedicating Xenos to pixel processing alone. The X360's CPU has other tasks to perform...I'm unsure it could handle the same amount of vertex work Xenos could (optimally or theoretically)...if you do get vertex limited and allocate some of the vertex work back to Xenos, you had better planned for that eating into how much total pixel processing is going on. In essence as a matter of safety you still wouldn't want to create a situation where you need 100% of Xenos to perform pixel processing, you become vertex limited and you have nowhere to dump the load off...so everything slows down.

I guess I should of just said I'm not as confident in the X360's CPU ability to handle vertex work...at least to this extreme and still handle physics etc. Someone more in the know may have a different opinion though.

Another thing I just thought of is what happens with the tesselator unit if all the vertex work is done on the X360's CPU? I mean can the tesselator work in step with the CPU as it can with Xenos...if not you have lost a pretty valuable resource that could allow for the use of true displacement mapping.
 
scificube said:
Basically as I see it with the RSX-Cell combo you you you can do a sort of load balancing but in practicality only with respect to vertex work. Xenos's unified architecture along with the assistance of the X360's CPU can allow for balancing of both the pixel and vertex loads.

Can you clarify that? Xenos itself balances between arbitrary ratios of vertex and pixel shading, of course, but I think Xenon's potential contribution to that equation would fall more plainly on the vertex side than pixel shading. Heavy pixel shading on either CPU is a no-no, IMO (maybe frame post-processing, but that'd be about it).
 
Z only passes are always vertex bound. Shadow renders are also. Doom3 uses low polygon models for exactly this reason. Doom3 may not be vertex bound during execution, but the artwork would have been more detailed had the vertex processing existed.
 
Titanio said:
Can you clarify that? Xenos itself balances between arbitrary ratios of vertex and pixel shading, of course, but I think Xenon's potential contribution to that equation would fall more plainly on the vertex side than pixel shading. Heavy pixel shading on either CPU is a no-no, IMO (maybe frame post-processing, but that'd be about it).

I'll try...remember I'm searching like everyone else...

I agree in that it doesn't appear that doing pixel shading on either of these CPUs is a good idea beyond what you mention.

here's what I'm thinking...

1. You allocate some of the vertex load to the X360's CPU. This load can the portion that would be beyond what the Xenos could handle in certain scenes.

a. you can assume the vertex load is on the average a good deal less than this

b. you can assume the vertex load is on the average just below what the Xenos can handle with it's other tasks.

If b is the case then all you net with the CPU's aid is a bit more vertex processing than the Xenos could handle alone.

If a is the case you net a larger amount of both vertex and pixel processing being done on the average than what the Xenos would be doing alone. I'm looking at it like this...Xenos's internal load balancing should make this so. If the vertex load is less than the pixel load then Xenos should automatically allocate more of it's resources to pixel processing. This should be the case since some of the vertex load has been effectively move to CPU and is meant to stay there. "On the average" you have more pixel processing available to work with. In certain cases the vertex load may increase and Xenos can realign itself. Since you already have it worked into the equation though it shouldn't be enough to stall the part. Of course in these instances it also means pixel processing will suffer, but if you know that in advance you can plan ahead accordingly.

I was just an idea about dealing with vertex load bottleneck that only pops up every once in a while. The side affect of allows you to push harder on the pixel processing side of things when that bottleneck is absent.

I contrast it with the RSX as not being able to do this because even though the raw amount of pixel/vertex processing is finite as with the Xenos the Xenos's processing is not in a fixed ratio. With the RSX you either use the resources available or they sit idle...you can't reallocate resources to other tasks.

I understand pixel and vertex processing power in absolute terms is finite with both parts...I'm looking at things from a different perspective.

It's sorta of a way to use Xenos's load balancing to your favor on a larger scale.

...I'm trying...to put it into words...I'll beg a little grace from you as I'm not so much of a statesman.

Is this a bad way to look at this? (assuming I've I actually succeeded in describing anything)
 
What you describe is certainly in the realms of possibility. You could if you wished have the XeCPU doing all the vertex work and have Xenos all pixel shading, which'll be a lot shader power. However that eats up XeCPU's processing which would be used elsewhere, so it'd only have limited possibilities. Whereas PS3 has more processing oomph to spare on vertex processing, though the GPU can't back this up with more pixel shading power.

Personally, and others agree with me, I think the ATi solution with Cell would have been ideal, giving the greatest degree of flexibility.
 
scificube said:
I'll try...remember I'm searching like everyone else...

I agree in that it doesn't appear that doing pixel shading on either of these CPUs is a good idea beyond what you mention.

here's what I'm thinking...

1. You allocate some of the vertex load to the X360's CPU. This load can the portion that would be beyond what the Xenos could handle in certain scenes.

a. you can assume the vertex load is on the average a good deal less than this

b. you can assume the vertex load is on the average just below what the Xenos can handle with it's other tasks.

If b is the case then all you net with the CPU's aid is a bit more vertex processing than the Xenos could handle alone.

If a is the case you net a larger amount of both vertex and pixel processing being done on the average than what the Xenos would be doing alone. I'm looking at it like this...Xenos's internal load balancing should make this so. If the vertex load is less than the pixel load then Xenos should automatically allocate more of it's resources to pixel processing. This should be the case since some of the vertex load has been effectively move to CPU and is meant to stay there. "On the average" you have more pixel processing available to work with. In certain cases the vertex load may increase and Xenos can realign itself. Since you already have it worked into the equation though it shouldn't be enough to stall the part. Of course in these instances it also means pixel processing will suffer, but if you know that in advance you can plan ahead accordingly.

I was just an idea about dealing with vertex load bottleneck that only pops up every once in a while. The side affect of allows you to push harder on the pixel processing side of things when that bottleneck is absent.

I contrast it with the RSX as not being able to do this because even though the raw amount of pixel/vertex processing is finite as with the Xenos the Xenos's processing is not in a fixed ratio. With the RSX you either use the resources available or they sit idle...you can't reallocate resources to other tasks.

I understand pixel and vertex processing power in absolute terms is finite with both parts...I'm looking at things from a different perspective.

It's sorta of a way to use Xenos's load balancing to your favor on a larger scale.

...I'm trying...to put it into words...I'll beg a little grace from you as I'm not so much of a statesman.

Is this a bad way to look at this? (assuming I've I actually succeeded in describing anything)

No, that makes sense :) Pull vertex work from the GPU to do more pixel work there.

As for whether the ATi chip would be better for Cell, it's quite debateable from a performance perspective, when you look at the raw figures. If Cell had Xenos attached and you dedicated it to pixel processing and did all vertex work on Cell, it's quite unclear that it would provide you with more power for pixels than RSX's pixel shaders will. The raw figures, at least, would say no.

Whilst Cell can't free up RSX's vertex shaders to do pixel work, those vertex shaders only comprise ~15% of its power. The vast vast majority of RSX's power is already in dedicated pixel shading.
 
Titanio said:
No, that makes sense :) Pull vertex work from the GPU to do more pixel work there.

As for whether the ATi chip would be better for Cell, it's quite debateable from a performance perspective, when you look at the raw figures. If Cell had Xenos attached and you dedicated it to pixel processing and did all vertex work on Cell, it's quite unclear that it would provide you with more power for pixels than RSX's pixel shaders will. The raw figures, at least, would say no.

Whilst Cell can't free up RSX's vertex shaders to do pixel work, those vertex shaders only comprise ~15% of its power. The vast vast majority of RSX's power is already in dedicated pixel shading.

I agree. If RSX is going to spend most of it's time doing pixel shading rather than vertex shading the extra logic to allow it's pixel units to do VS might actually be a hinderance rather than a help. I'm still very curious about how much overhead the unified pixel/vertex shaders introduce in ATI's design. Does having the unified shaders really make that much of a difference after this is figured in? I suppose it really depends on how different the workload is than what was expected.

Still, I think nVidia/Sony are actually in an ok place. Most of the RSX's power is dedicated to pixel processing. What vertex processing there is will probably be utilized in almost all situations, and if imore is needed the SPEs can be utilized. It seems like a pretty reasonable design to me.

Nite_Hawk
 
That's the number one question - how efficient are unified shaders? Assuming a fairly comparable performance (if Xenos performed much worse than a conventional system, ATi wouldn't go that way!) then Unified Shaders provides the same perofrmance level but with added versatility.

Of course we still don't know for sure what RSX actually has feature wise, so we're second guessing at the mo' anyway.
 
100% speculation:
Imagine we have a special 3D engine that tesselates everything in a given scene, then we could use such a special engine to keep on screen triangles area bounded.
Let's say we can tweak mean triangles area to a point where we can 'shift' or 'move' some calculations from pixel shading to vertex shading and use hw interpolators to work for us.
This way we have move burden from pixel shaders to vertex shaders, moreover CELL would be responsable for tesselation and some vertex shading too (if it happens RSX's VS are now the new bottleneck).

is it too much complex? well..naughty dogs engine on the PS2 is already doing something along these lines (on background geometry), even if they are not obviously doing that to shift some pixel shading work, cause we know PS2 GS is not exactly what we'd call a pixel shading king ;)
In fact one nice side effect of this approach is that one can tweak average triangles area to balance vertex shadng and rasterizing/pixel shading work.

There're really infinite possibilities..and we're just scratching the surface..interesting times are coming :)
 
I'm glad what I'm thinking actually makes some sense.

edit:

removed sentiments people already beat me to expressing :)

end edit:

I also hope we get a brave dev to tell us just how efficient Xenos's unified shader arrays are compared to the traditional pipeline setup. It'll get out eventually I hope.

Just a quick question...am I correct in thinking Xenos's arbiters/sequencers will perform the balancing act at the thread level alone?

nAo:

whoooooooooommmmm!!!!! You flew right over me :D

So by that method you could move some pixel work over to the vertex side and then allow Cell to handle this work along with tessellation etc right? Sounds pretty nifty if it's effective and efficient.

So you're saying Cell could indirectly play with the pixel side of the equation as well. Or is what you describe something of a special case. I've no doubt Cell can handle vertex work but how many pixel tasks could be reworked in this manner so that Cell could take a crack at them?

If this can readily be done with most or even a good portion of the various pixel processing tasks...then I'll agree there certainly are some very interesting times ahead...I mean more interesting than before :)
 
Thinking about unified shaders, the whole point to themn is that shading work on Verts and Pixels is very similar is it not, and so there's a fair degree of crossover. As such something good at handling Verts shouldn't find pixels too difficult. But we're told Cell ain't so hot at pixels.

Why is this? Presumably it's a memory access thing reading scattered memory patterns for textures etc. If so, could not the RSX handle the parts that Cell can't, and then supply Cell with half processed data to finish off?
 
Powderkeg said:
Platform is irrelevent. Polygons on the PS3 work exactly like polygons on the 360 or a PC.
But processing load distribution isn't the same. On closed platforms we get to tailor resource usage to the hardware. So the rules on which "moving-target platform" games were built on, need not apply :)

nAo said:
Imagine we have a special 3D engine that tesselates everything in a given scene, then we could use such a special engine to keep on screen triangles area bounded.
Not to mention nonlinear projections, woot ;)
 
Shifty Geezer said:
Why is this? Presumably it's a memory access thing reading scattered memory patterns for textures etc.
Yeah..it's a memory latency problem.
If so, could not the RSX handle the parts that Cell can't, and then supply Cell with half processed data to finish off?
It's not that easy. Often shaders mix texture fetch instructions with arithmetic instructions, so one would have to multipass many times a single pixel sending back and forth intermediate data between RSX and CELL.
it can be done..but imho it's not something very feasible.
That's why SPE are much more prone to work on post processing effects..
Even if we should discover that CELL and RSX can work together just fine we should expect SPEs to help RSX (or the other way around) in tasks that doesn't halt one player or the other one.
As DeanoC proposed in his blog SPEs could post process shadow map rendered by RSX; the cool thing is that SPEs could work on a just rendered shadow map while RSX is rendering the next shadow map.
Or imagine a racing game where RSX renders each face of cube map (to be used for cars reflections rendering) and SPEs filter each face (a gaussian blur could be useful to generate a glossy reflection effect on cars).
THere are really many many possibilities..
 
Shifty Geezer said:
Thinking about unified shaders, the whole point to themn is that shading work on Verts and Pixels is very similar is it not, and so there's a fair degree of crossover. As such something good at handling Verts shouldn't find pixels too difficult. But we're told Cell ain't so hot at pixels.

Why is this? Presumably it's a memory access thing reading scattered memory patterns for textures etc. If so, could not the RSX handle the parts that Cell can't, and then supply Cell with half processed data to finish off?

Dave always mentioned that one of the few problems with Unified shaders was that a specialised PS will always be faster than a General Shader that can do both VS and PS, and that there are things a VS can't handle but a PS can and vice versa.

If it is true that most of RSX is dedicated to pixel shading, then PS3 won't have a problem dedicating one or two SPEs to handle geometry to help RSX. It's almost like Sony wondered what would be better between a VS running at 500MHz or a VS-like-unit that runs at 3.2GHz.

Just like they did with PS2, by leaving T&L out of the GS, their "vertex shaders" (the VUs) run at 300MHz instead of 150MHz. Without considering the fact that they were also much more interesting units than Vertex Shaders themselves.

I think it's a nice move, personally. MS and Sony approached the same problem with 2 very different philosophies and i'm sure both will result in ass-kicking graphics.
 
Back
Top