Introduction to Command and DMA Buffers

Command and DMA buffers closely resemble each other. However, a command buffer is used by the user-mode display driver, and a DMA buffer is used by the display miniport driver.

A command buffer has the following characteristics:

  • It is never directly accessed by the GPU.

  • The hardware vendor controls the format.

  • It is allocated for the user-mode display driver from regular pageable memory in the private address space of the rendering application.

A DMA buffer has the following characteristics:

  • It is based on the validated content of a command buffer.

  • It is allocated by the display miniport driver from kernel pageable memory.

  • Before the GPU can read from a DMA buffer, the display miniport driver must page-lock the DMA buffer and map the DMA buffer through an aperture.