A display list processor (DLP) is a hardware or software component that converts a scene description—typically a list of graphics primitives like triangles, lines, and points—into the actual pixels shown on a screen. You feed it a display list (a structured set of drawing commands), and it returns a rendered image by performing geometry, rasterization, and shading steps. This article explains what a DLP does, where it fits in the graphics pipeline, and how it turns abstract data into visible frames.
Formula
The calculator above estimates how many frames a display list processor must handle given a total number of primitives and a per-frame budget. The formula is:
Frames = Total primitives ÷ Primitives per frame
Then, if the display runs at 60 frames per second, the time in seconds is Frames ÷ 60.
- Total primitives (t) – the number of triangles, lines, or points in the entire scene, unitless count.
- Primitives per frame (c) – how many primitives the DLP can process in one frame at the target frame rate, unitless count.
- Frames (output) – the number of display frames needed to render all primitives.
- Time (output) – the duration in seconds at 60 fps.
Worked Example
Using the default values: total primitives = 100,000, primitives per frame = 1,000.
- Frames = 100,000 ÷ 1,000 = 100 frames.
- Time = 100 ÷ 60 = 1.67 seconds.
The calculator shows 100 frames and 1.67 seconds, matching the hand calculation.
What Is a Display List?
A display list is a sequence of drawing commands stored in memory. It might contain instructions like “draw a triangle with these three vertices,� “set the color to red,� or “apply this texture.� Display lists are used in two main contexts:
- Retained mode graphics – the list persists and can be replayed each frame, useful for static scenes.
- Immediate mode graphics – commands are sent one by one and executed immediately, with no storage.
Historically, early graphics systems (like the Evans & Sutherland vector displays) used display lists to store line segments. Modern GPUs still use a form of display list in command buffers, though the term is less common.
Role of the Display List Processor
The DLP sits between the application and the framebuffer. Its job is to interpret the display list and generate pixels. In a typical GPU, this role is split into several stages:
- Vertex processing – transforms vertices from 3D world coordinates to 2D screen coordinates.
- Rasterization – converts geometric primitives into fragments (potential pixels).
- Fragment shading – computes the final color of each pixel, applying textures and lighting.
In older systems, the DLP was a dedicated chip that handled these steps in fixed-function hardware. Today, the same logic is implemented in programmable shaders, but the concept remains.
How a Display List Processor Works
Here’s a step-by-step breakdown of the process:
- Receive display list – the CPU builds a list of drawing commands and sends it to the GPU.
- Parse commands – the DLP reads each command and checks for state changes (e.g., color, texture) or geometry.
- Transform geometry – vertices are multiplied by model, view, and projection matrices to place them on screen.
- Clip and cull – primitives outside the view frustum or facing away are discarded.
- Rasterize – the remaining primitives are converted to fragments, interpolating attributes like depth and texture coordinates.
- Shade fragments – the fragment shader computes the final color, often using textures and lighting equations.
- Write to framebuffer – the colored fragments are written to memory, possibly with depth testing and blending.
The DLP may also handle display list traversal, which is simply walking through the list in order. Some processors support display list nesting, where a command can call another list, like a subroutine.
Common Misconceptions
One frequent confusion is that a display list processor is the same as a display controller. A display controller reads pixels from the framebuffer and sends them to the monitor; it does not process geometry. The DLP is upstream, generating the framebuffer content.
Another misconception is that display lists are obsolete. While immediate mode is simpler, retained mode lists are still used in scene graphs and in graphics APIs like OpenGL’s display list feature (deprecated but still present) and in Vulkan’s command buffers, which are essentially display lists.
How to Choose a DLP (or GPU)
If you’re selecting a graphics processor for a system, consider these factors:
- Primitive throughput – how many triangles per second it can process; this is often listed as “triangle rate.�
- Fill rate – how many pixels per second it can write, which matters for high resolutions.
- Memory bandwidth – affects texture and framebuffer access speed.
- Programmability – whether shaders are fixed-function or programmable, and how flexible they are.
- Power consumption – important for embedded or mobile devices.
For most users, the DLP is not a separate choice; it’s integrated into the GPU. The main decision is between integrated graphics (CPU-based) and discrete GPUs.
Common Problems and Limitations
Display list processors can encounter several issues:
- List overflow – if the display list exceeds memory, the system may stall or drop frames.
- State changes – frequent changes in color, texture, or shader can slow down the DLP because it must re-configure the pipeline.
- Overdraw – drawing the same pixel multiple times wastes fill rate; depth testing helps but isn’t perfect.
- Latency – the time to process a list can cause input lag if it’s too long.
To mitigate these, developers often sort primitives by state, use level-of-detail to reduce triangle counts, and employ occlusion culling.
Alternatives to Traditional Display Lists
Modern graphics APIs offer alternatives that give more control:
- Immediate mode – send vertices directly each frame; simple but less efficient.
- Vertex buffers – store vertex data in GPU memory and reference it with draw calls; this is the standard in Direct3D and Vulkan.
- Command buffers – pre-recorded sequences of draw commands that can be submitted to the GPU; they are the modern equivalent of display lists.
- Compute shaders – allow general-purpose processing on the GPU, which can replace some fixed-function steps.
Each approach has trade-offs in flexibility, performance, and ease of use.
Frequently Asked Questions
Is a display list processor the same as a GPU?
No, the DLP is one part of a GPU. The GPU also contains memory controllers, texture units, and output engines. In some older terminology, DLP referred specifically to the geometry and rasterization hardware, but modern GPUs integrate all stages.
What is the difference between display list and frame buffer?
A display list is a set of drawing commands; a framebuffer is the memory area that holds the final pixel colors. The DLP processes the list and writes to the framebuffer.
Do modern games use display lists?
Not under that name, but the concept persists. Games use command buffers and vertex buffers, which are essentially optimized display lists. The underlying principle of batching drawing commands is the same.
Can a CPU act as a display list processor?
Yes, software rendering does this. The CPU executes the display list and writes pixels to memory. It’s slower than dedicated hardware but offers flexibility. Early games ran entirely on CPU before GPUs became common.
How does a display list processor handle textures?
The DLP doesn’t directly handle textures; it sends texture coordinates to the texture unit, which fetches texels and returns colors. The fragment shader then combines those colors with lighting. The DLP orchestrates the flow.
Why do display lists cause performance issues?
They can cause stalls if the list is too long or if state changes are frequent. Also, if the list is rebuilt every frame on the CPU, that becomes a bottleneck. Using retained lists or command buffers can reduce CPU overhead.
Related
Formula used
in t | Total primitives | count | 100000 | 1 | 100000000 in c | Primitives per frame | count | 1000 | 1 | 1000000 out frames | Frames to process | frames | t / c | 0 out time_s | Processing time (60 fps) | s | (t / c) / 60 | 2
Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.
More cards in this drawer
- Secure Boot Battlefield 6 ASUS: Fix & Enable Guide
- Best Tech Websites to Follow for Pros & Beginners
- Second Wind Quest Walkthrough: Where Winds Meet6.00 min/km
- Enshrouded Weapon Upgrade Guide: How to Improve Gear5.00 min/km
- Connect Phone to Controller for Cloud Gaming
- Python Search Highlighting: Snippets & Matches