OpenGL guy
Veteran
...a graphics chip fetches a number of vertices while n vertex shaders execute m instructions while the setup engine sets up l triangles while the k scan converters prepares j quads while the rasterizer interpolates i interpolants while h pixel shaders execute g instructions while the f texture units texture e pixels while the depth buffer tests d pixels while the blend unit blends c pixels. And while all this is happening, the memory controller is fetching and writing data for multiple clients.
Typical values for a high end chip:
n = 8
m = 1
l = 1
k = 4
j = 1
i = 8
h = 16
g = 3
f = 4
e = 4
d = 16
c = 16
Of course, this is not an exhaustive list as it doesn't account for early Z check, any sort of compression, alpha test, or anti-aliasing. Also, I could go into a lot more detail are certain steps, notably texturing which includes filtering, anisotropy, and more. Setup also has to handle things like clipping and culling, so more steps are involved there as well. Fog may also be handled by the HW unless it's being done in the pixel shader.
Now consider how many of these steps happen at full FP32 precision and you can see why graphics chips are floating point monsters.
Hope this helps someone.
Typical values for a high end chip:
n = 8
m = 1
l = 1
k = 4
j = 1
i = 8
h = 16
g = 3
f = 4
e = 4
d = 16
c = 16
Of course, this is not an exhaustive list as it doesn't account for early Z check, any sort of compression, alpha test, or anti-aliasing. Also, I could go into a lot more detail are certain steps, notably texturing which includes filtering, anisotropy, and more. Setup also has to handle things like clipping and culling, so more steps are involved there as well. Fog may also be handled by the HW unless it's being done in the pixel shader.
Now consider how many of these steps happen at full FP32 precision and you can see why graphics chips are floating point monsters.
Hope this helps someone.