DMA-BUF Cross-Device Synchronization Hits Linux 3.17
The work that was ongoing for months to provide DMA-BUF cross-device synchronization and fencing is finally landing with the Linux 3.17 kernel.
The patches by Maarten Lankhorst for DMA-BUF cross-device synchronization were up to eighteen revisions and are now finally in a condition to be merged with Linux 3.17 via the driver core subsystem pull. DMA-BUF has now proper fence and poll support along with other new functionality that affects many different kernel drivers. For Phoronix readers, one of the benefits of DMA-BUF cross-device synchronization is to reduce tearing when sharing buffers between multiple GPU DRM drivers.
A fence in the context of DMA-BUF as described by Maarten is, "a fence can be attached to a buffer which is being filled or consumed by hardware, to allow userspace to pass the buffer without waiting to another device. For example, userspace can call page_flip ioctl to display the next frame of graphics after kicking the GPU but while the GPU is still rendering. The display device sharing the buffer with the GPU would attach a callback to get notified when the GPU's rendering-complete IRQ fires, to update the scan-out address of the display, without having to wake up userspace."
The new DMA-BUF code is landing in Linux 3.17 via the driver core pull request.
The patches by Maarten Lankhorst for DMA-BUF cross-device synchronization were up to eighteen revisions and are now finally in a condition to be merged with Linux 3.17 via the driver core subsystem pull. DMA-BUF has now proper fence and poll support along with other new functionality that affects many different kernel drivers. For Phoronix readers, one of the benefits of DMA-BUF cross-device synchronization is to reduce tearing when sharing buffers between multiple GPU DRM drivers.
A fence in the context of DMA-BUF as described by Maarten is, "a fence can be attached to a buffer which is being filled or consumed by hardware, to allow userspace to pass the buffer without waiting to another device. For example, userspace can call page_flip ioctl to display the next frame of graphics after kicking the GPU but while the GPU is still rendering. The display device sharing the buffer with the GPU would attach a callback to get notified when the GPU's rendering-complete IRQ fires, to update the scan-out address of the display, without having to wake up userspace."
The new DMA-BUF code is landing in Linux 3.17 via the driver core pull request.
13 Comments