If you liked yesterday's post by Daniel Vetter of Intel's Open-Source Technology Center that covered going over the Graphics Execution Manager
for memory management, today he's around with a second part that details command submission handling for the Intel open-source Linux driver.
For those interested in low-level details of GPU driver development whether it be for curiosity or wanting to get into driver development, part two covers the Intel command submission process.
As I've alluded already, gpu command submission on intel hardware happens by sending a special buffer object with rendering commands to the kernel for execution on the gpu, the so called batch buffer. The ioctl to do this is called execbuf. Now this buffer contains tons of references to various other buffer objects which contain textures, render buffers, depth&stencil buffers, vertices, all kinds of gpu specific things like shaders and also quite some state buffers which e.g. describe the configuration of specific (fixed-function) gpu units.
Continue reading on Daniel's blog