The graphics pipeline consists of the CPU, geometry processor, and pixel processor. For the pipeline to work efficiently, data must be kept flowing through it.
Ensure your application keep the graphics pipeline running, It can do this by performing multiple types of operations simultaneously and avoiding blocking calls.
If data is not kept flowing, the CPU, geometry processor, or pixel processor might idle, waiting for data output from another stage.
Figure 4.1 shows the impact of a stall on the graphics pipeline. The diagram shows 8 jobs processed in 11 steps. The steps are indicated by the letters A to K:
Steps A to D show data passing through the pipeline correctly. Job 1 starts in the CPU at step A and moves along the pipeline in steps B to C. The results arrive in the framebuffer in step D.
Steps E to G show the impact of job 5 stalling in the CPU. Job 4 moves through the pipeline as it is processed in steps F and G, but the geometry processor runs out of work at step F. At step G both the geometry and pixel processors have no work.
While the pipeline is stalled, the GPU cannot produce more frames so the framebuffer contains the results of job 4 for steps G to J.
At step H, job 5 finishes in the CPU and moves into the geometry processor at step I. Job 5 moves along the pipeline and arrives in the framebuffer in stage K.