Bandwidth partitioning in games

Squeak

Veteran
sireric said:
Current generation ATI products can compress significantly (Z can go down to 24:1 and color to 12:1, depending on AA levels and a few other things, but in a lossless way. DXT compression (lossy) can give 6:1 and 8:1, if I remember right. These two sets of datums are the heaviest hitters in the BW consumption, and are already compressed beyond your desire. I believe that competitive products also offer similar items.

I wonder how does demanding games like Halflife 2 or Doom 3 use bandwidth? How is it split between the different tasks and datasets (with and without various kinds of compression), percentage wise (like "z-buffer: n%, textures: n%" and so on)?

Secondly, how do those numbers scale with resolution?
 
It varies depending upon what's being done. Take Doom 3 as an example.

In Doom 3, there are three types of rendering that are performed. First, an initial z-pass is done. This only reads from/writes to the z-buffer, and thus is 100% limited by the ability of the GPU to do z-tests and z-writes. This will obviously be heavily dependent upon the available z-buffer bandwidth (from compression, pure memory speed, etc.).

Then, stencil shadow volumes are done. This requires z-reads and stencil writes. So here the bandwidth that makes a difference is again z-buffer bandwidth.

After the stencil buffer has information about which surfaces are lit by the given light, the actual lighting is done. This rendering basically consists of a medium-short shader that will primarily be limited by texture reads.

So, it really depends on what is being done at the time. I don't think a simple breakdown is possible, because most of the time these days rendering isn't done in a single pass.
 
Okay, but it must be possible to give an estimation or set some boundaries for how much time can allocated to the different tasks in an average single frame. If we continue with Doom 3, it seems like it must have a pretty even load on resources, because of the chosen environment and the number of characters on screen at one time.
 
No, because as I stated, it's a multipass rendering approach. Each pass will have different characteristics.
 
Back
Top