A display list in computer graphics is a sequence of commands that, when executed, provides instructions on how to draw an object to the screen or other output device. The purpose of using a display list is to increase the speed and efficiency of the scenes that are rendered as well as to make the programming source code easier to read. Several types of software and hardware use a display list to show objects, including vector-based graphics editing software, some game console systems and certain computer graphics libraries. One aspect of using a display list that can make it unfeasible for certain applications is the fact that, once instructions are added to a list, they cannot be modified, meaning the object the list of commands represents must remain exactly the same each time it is rendered.
An important use for a display list is to prevent the graphics processing unit (GPU) within a computer from having to perform the same sequence of calculations each and every time a scene is drawn to the output device. By adding graphics commands to a list and then instructing the software that is using the list to compile the commands, all of the calculations for display are performed and stored in memory. This means most of the calculations have already been performed each time the object is drawn. When an object must be drawn multiple times within a single scene, it can be done much more quickly using a single display list.
There are several functions that a display list can perform once all the commands have been loaded. For an object that is using an image as a texture, the image’s original color depth and other properties can be translated into the format required for the resolution and graphic card being used. Surface materials, especially if layered, can be calculated in advance, saving a significant amount of time during the final rendering. In addition to other calculations performed ahead of rendering, the compiled list information might be stored within the memory of the graphics card instead of in separate computer memory or virtual memory. Having the information needed for the GPU stored in the same physical hardware card can increase the rendering speed, because it will be able to travel much faster to the processor.
The trade-off for using a display list is that the calculations need to be stored somewhere. This means creating many lists could potentially use a much larger amount of computer memory than would otherwise be needed. This can be because of the number of polygons required by an object or the size of an image to be placed into texture memory. For complex scenes, the size of the lists could exceed the amount of available memory and affect the performance of the graphics card.