Next | Prev | Up | Top | Contents | Index
Using Display Lists Effectively
If you work on a CAD application, or other application that uses relatively static data, and therefore find it useful to use display lists instead of immediate mode, you can benefit from the display list implementation on Indigo2 IMPACT systems:
- When the display list is compiled, most OpenGL functions are stored in a format that the hardware can use directly. At execution time, these display list segments are simply copied to the graphics hardware with little CPU overhead.
- A further optimization is that a DMA mechanism can be used for a subset of display lists. By default, the CPU feeds the called list to the graphics hardware. Using DMA display lists, the host gives up control of the bus and Indigo2 IMPACT uses DMA to feed the contents to the graphics pipeline. The speed improvement at the bus is fourfold; however, a setup cost makes this improvement irrelevant for very short lists. The break-even point varies depending on the list you're working with, whether it's embedded in other lists, and other factors.
Display List Compilation on Indigo2 IMPACT Hardware
The functions that are direct (use hardware formats) will change over time. The following items are currently NOT compiled to direct form:
- glCallLists() and glListBase()
- all imaging functions
- all texture functions, with the exception of glBindTextureEXT()
- glHint(), glClear(), and glScissor()
- glEnable() and glDisable()
- glPushAttrib() and glPopAttrib()
- all evaluator functions
- most OpenGL extensions
DMA Display Lists on Indigo2 IMPACT Systems
If a display list meets certain criteria, Indigo2 IMPACT systems use DMA to transfer data from the CPU to the graphics pipeline. This is useful if an application is bus limited. It can also be an advantage in a multi-threaded application, because the CPU can do some other work while the graphics subsystem pulls the display list over.
The DMA method is used under the following conditions:
- Only functions that are compiled down to direct form are used.
- There is no hierarchy in the display list that is more than eight levels deep.
- If the display list hierarchy uses texture objects, all textures that are referenced have to fit into hardware texture memory (TRAM) at the same time.
Note that the system tests recursively whether the DMA model is appropriate: If an embedded display list meets the criteria, it can be used in DMA mode even if the higher-level list is processed by the CPU.
Next | Prev | Up | Top | Contents | Index