It is probably not your favorite hardware, I am wondering if anyone deal with a lot with Intel’s zone rendering or Kyro’s tile-based rendering. Assuming my OpenGL app is immediate-mode based, and the scene contains a very large number of vertices. Since the hardware needs to maintain a triangle list per zone(tile), will there a huge consumption of memory?
I’ve long thought that when the triangle buffer is filled the region can be rendered and simply depth tested with the next buffer if capacity exceeds a single buffers worth but it eliminates some of the advantages. It’s a performance overhead and memory savings may not be as great (or antialiasing defeated across buffers) but if the predominant goal is to improve performance through deferred shading then it’s clearly still a win. This type of thing must be possible for any kind of readpixels operation to be supported. Implementations vary a lot, I don’t know how these specific ones handle this, but there are all sorts of other tricks like sorting and coarse z that might be used to eliminate / collapse triangle lists. I’d say this isn’t as big a problem for these types of solution as transparency and multipass are.
[This message has been edited by dorbie (edited 10-14-2002).]
I deal with Intel graphics on a pretty regular basis.
To answer your question, think of your typical non-zone rendering algorithm as rendering to a single viewport-sized zone. Even with just this one zone you can still use up “too much” memory, which will cause the driver to send the data to hardware (to empty its buffers and free some memory) earlier than it would like to. So any driver has to handle a case like this one, zone rendering or not.
If you divide the viewport up into two zones (or more) it’s possible that things get bad much faster. For example, if all triangles get put into two zones, you will use up “too much” memory twice as fast. However, it’s also possible that the memory requirements will not be too much higher, if all triangles can be put intelligently into just one zone.
In practice there are definitely higher memory requirements for zone rendering, but I wouldn’t characterize it as “huge” (probably less than you’d think).
Send me some email if you’re interested in more details than this.