A couple quick questions about shaders...
1.
With the mostly vector based shaders from DX9 and earlier, which were typically vec3-4 + scalar, if the work called for two non-dependant scalar operations, did (or could) one of the scalar instructions go through the vector unit?
2.
In the R600 shaders, each 5-unit block works on a pixel, correct? Each array has 16 such units, so 16 pixels are processed per clock. I've seen information that vectors could be split up to fill all five units:
When you look at the PS rate you see that its actually issuing 1.25 Vector MADD’s (x 64) per cycle. Indicating that rather than scheduling vectors as:
RGBA_
RGBA_
RGBA_
RGBA_
RGBA_
Its scheduling:
RGBAR
RGBAG
RGBAB
RGBAA
Would that mean it's working on 20 pixels instead of 16? Is it only the fifth unit that can do that (the fat one)?
Thanks
1.
With the mostly vector based shaders from DX9 and earlier, which were typically vec3-4 + scalar, if the work called for two non-dependant scalar operations, did (or could) one of the scalar instructions go through the vector unit?
2.
In the R600 shaders, each 5-unit block works on a pixel, correct? Each array has 16 such units, so 16 pixels are processed per clock. I've seen information that vectors could be split up to fill all five units:
When you look at the PS rate you see that its actually issuing 1.25 Vector MADD’s (x 64) per cycle. Indicating that rather than scheduling vectors as:
RGBA_
RGBA_
RGBA_
RGBA_
RGBA_
Its scheduling:
RGBAR
RGBAG
RGBAB
RGBAA
Would that mean it's working on 20 pixels instead of 16? Is it only the fifth unit that can do that (the fat one)?
Thanks