NVIDIA Confirms Sway Wayland Compositor Works Fine With Their New GBM Driver Support
Stemming from an ongoing Mesa GBM discussion over introducing new gbm_bo_create_with_modifiers2 / gbm_surface_create_with_modifiers2 functions since the original "gbm_*_create_with_modifiers" functions lack support for passing usage flags, NVIDIA confirmed that the Sway Wayland compositor is working fine with their forthcoming driver supporting GBM.
For years NVIDIA resisted supporting GBM as used by the Mesa drivers and commonly leveraged by the Wayland compositors for buffer handling. NVIDIA's preferred approach around EGLStreams didn't gain much adoption besides patches they posted for the major compositors. Meanwhile, their work on coming up with a new device memory allocator API seems to be dead at this point and wouldn't address the issue of all existing Wayland compositors needing to be adapted to make use of it.
But this year they've finally been working on supporting the Generic Buffer Manager by their proprietary driver stack. Earlier in the year was their work on allowing Mesa's GBM code to support alternative back-ends, among other infrastructure work around the effort. They've also been working on DMA-BUF support and other Wayland-related improvements to their driver, some of which premiered recently in the NVIDIA 470 series and the other work like the GBM support is still ongoing.
As the latest good news, NVIDIA engineer James Jones who has long been involved in the effort, commented on the aforemnetioned Mesa GBM discussion, "That will work fine on our HW/driver if you're using format modifiers. The two have similar requirements outside of layout. Without modifiers, you'll probably get a tiled surface when you want a linear one, which won't work. Anecdotally, Sway currently runs fine on our GBM path out of the box."
It's good to see the NVIDIA proprietary driver working fine with Sway on GBM. Sway previously supported a NVIDIA EGLStreams back-end but removed it in Sway 1.0.