Shifty Geezer said:
As I understand it, each pixel pipe performs a 'texture' (or shading) operation on a per pixel basis. That'll be one for a diffuse colour texture, one for specular lighting, another for a reflection map and a fourth for bump mapping. Add a couple more textures for grime and variation and a lighting map, I can't see more than say 8 effects being applied to a pixel at a time. If the pipes run in a 2x2 quad that makes sense, but surely just adding pipes won't always mean better graphics as after a point adding more texturing effects won't have any purpose.
Umh..there is some confusion here, imho. When I talk about pixel pipelines I'm talking about the amount of pixels that are processed per clock. It seems you're identifying pixel pipelines as the number of texture units.
It's true in recent GPU the number of pixel pipelines is equal to the texture units count, but we are speaking about different entities.
A pixel pipeline executes a shader on a pixel. A shader can be filled with instructions that perform arithmetic calculations and/or sampling from one or more textures (IIRC current GPUs peaks at 8 textures/16 samplings per pass).
Adding more pixel pipelines mean that more pixels are processed at the same time.
It also true that what a pixel pipeline do each clock cycle depdend on many factors.
In the case of more pipes processing more pixels at a time, there'll be a ceiling for effectiveness limited by the resolution.
That's true, but that limit is also fixed by the maximun number of instructions a shader can be made of.
Example: a shader could contain 8 texture sampling instructions and 56 arithmetic instructions. If each instruction takes 1 clock cycles a single pixel pipeline will output a pixel every 64 ( 56 + 8 ) clock cyles.
A 16 pixel pipelines GPU will produce a new pixel each 4 cycles, even if it processes 16 pixels at the same time.
If we double the number of pixel pipelines we'll have a new pixel every 2 clock cycles, even with a so long (64 instructions!) shader.
With alpha blending will pixel shader be applied on all visible surfaces, so three overlapped transparent surfaces each with 8 shaders in effect would need 24 pipes to execute the whole pixel in parallel?
No. You still need 8 pipes, but that pixel will be processed (and blended) 3 times. That's multipass rendering.
ciao,
Marco