Immediate mode GPUs
The classical GPU is an Immediate Mode Renderer ( IMR ). An IMR implements a hardware pipeline that closely follows the abstract pipeline found in the API specification. Vertices enter the pipeline, data flows through the hardware pipeline, and pixels drop out at the end.
Workload scheduling for an IMR is very simple. Processing can proceed as soon as a stage has input data to process, allowing parallel processing within a single rendering operation. For example, fragment shading for a draw call can begin as soon as the first primitive has completed the earlier geometry stages in the pipeline.
IMR advantages
The first strength of an IMR is that the intermediate values generated inside the pipeline stay inside the GPU. Geometry data generated by vertex shading, or any of the more advanced geometry stages such as tessellation, is buffered inside the GPU until it is consumed. This makes IMRs very efficient at processing geometry.
The second strength of an IMR is the simplicity of its scheduling model. The fine-grained pipelining means that an IMR can find parallelism inside a single draw call, which makes it easier for an application to optimize throughput.
IMR disadvantages
The major disadvantage of a classical IMR is that fragment shading must process primitives in their application-supplied order, and they can be located anywhere in the framebuffer. The fragment shading working set is the entire framebuffer, including all active color, depth, and stencil attachments. This is far too much data to keep on chip, which means more DRAM storage and DRAM bandwidth are required during fragment shading.
Multi-Sample Anti-Aliasing ( MSAA ) further amplifies the framebuffer storage and bandwidth requirements. Some mobile GPUs that used the IMR approach did not expose MSAA to applications, because it had such a large performance impact.
Modern IMRs
Modern IMRs are more complex than the classical IMR pipeline explained here. They schedule fragment shading to keep recently used regions of the framebuffer resident in GPU caches, avoiding the worst of the framebuffer bandwidth problems. This means that a modern IMR has some performance characteristics that resemble those of a classical Tile-Based Renderer ( TBR ).