Ordering Tasks via Sequential Ordering Optimization
A common problem in real time rendering is ordering draw/compute tasks (henceforth, tasks) in an optimal manner. Different order of execution can greatly affect performance, for example by influencing the amount of API calls. A lot of recent development of the OpenGL API has been focused on reducing draw calls and “Approaching Zero Driver Overhead” . Likewise it is a common practice to group tasks by GLSL programs, FBOs and textures.