Cross-Device Synchronization For DMA-BUF Still Coming
Cross-device synchronization support for DMA-BUF is still being worked on for a future Linux kernel release.
This feature comes down to synchronizing the rendering of multiple devices via DMA-BUF, the buffer sharing mechanism introduced in the Linux kernel for sharing graphics buffers between DRM drivers and other related drivers in the context of ARM SoCs.
As said by Canonical's Maarten Lankhorst for what this new work can provide as an 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 current DMA-BUF cross-device synchronization patch is now up to its 12th revision and can be found on the Linux kernel mailing list.
This feature comes down to synchronizing the rendering of multiple devices via DMA-BUF, the buffer sharing mechanism introduced in the Linux kernel for sharing graphics buffers between DRM drivers and other related drivers in the context of ARM SoCs.
As said by Canonical's Maarten Lankhorst for what this new work can provide as an 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 current DMA-BUF cross-device synchronization patch is now up to its 12th revision and can be found on the Linux kernel mailing list.
