NVIDIA Suggests Explicit Synchronization For Nouveau
As another interesting NVIDIA Linux news item before ending out the month are some patches published just before the start of the weekend by NVIDIA. A NVIDIA developer has proposed explicit synchronization support for the Nouveau driver, complete with some "RFC" patches.
Lauri Peltonen, a NVIDIA System Software Engineer that's part of the Tegra software team, posted the set of seven open-source patches on Friday. The open-source DRM drivers already support implicit synchronization whereby fences are attached to buffers and the kernel manages the fences automatically based on buffer reads/writes. The explicit synchronization feature being pursued by the Tegra team is where fences are passed independently and the kernel takes and emits fences to/from user-space when submitting work, as explained by Lauri on the mailing list.
The reasonings for the explicit approach come down to bindless graphics, the evolution of graphics APIs, sub-allocation, and buffer sharing complications. The Nouveau explicit synchronization support for Nouveau is in a prototype form and based upon the Android sync driver functionality that's currently within the kernel's staging area. Developers and those wishing to learn about the technical aspects of this proposal can read the RFC patch series.
Patches from NVIDIA for the Nouveau driver are rare but becoming somewhat more common. Most of NVIDIA's contributions to this community-based, reverse-engineered driver tend to come on the Tegra side where there's more interest from their customers in having an open-source DRM-based driver that works with Wayland, etc. NVIDIA did great with their open-source Tegra K1 enablement on Nouveau while continuing to support their binary blob on ARM. On the desktop side there's been greater communication between Nouveau and NVIDIA in addressing questions, etc, and hopefully that mutual relationship will only grow moving forward.
Lauri Peltonen, a NVIDIA System Software Engineer that's part of the Tegra software team, posted the set of seven open-source patches on Friday. The open-source DRM drivers already support implicit synchronization whereby fences are attached to buffers and the kernel manages the fences automatically based on buffer reads/writes. The explicit synchronization feature being pursued by the Tegra team is where fences are passed independently and the kernel takes and emits fences to/from user-space when submitting work, as explained by Lauri on the mailing list.
The reasonings for the explicit approach come down to bindless graphics, the evolution of graphics APIs, sub-allocation, and buffer sharing complications. The Nouveau explicit synchronization support for Nouveau is in a prototype form and based upon the Android sync driver functionality that's currently within the kernel's staging area. Developers and those wishing to learn about the technical aspects of this proposal can read the RFC patch series.
Patches from NVIDIA for the Nouveau driver are rare but becoming somewhat more common. Most of NVIDIA's contributions to this community-based, reverse-engineered driver tend to come on the Tegra side where there's more interest from their customers in having an open-source DRM-based driver that works with Wayland, etc. NVIDIA did great with their open-source Tegra K1 enablement on Nouveau while continuing to support their binary blob on ARM. On the desktop side there's been greater communication between Nouveau and NVIDIA in addressing questions, etc, and hopefully that mutual relationship will only grow moving forward.
2 Comments