wlroots/render/vulkan
Simon Ser f141edcd02 render/vulkan: add support for split render/display devices
Some systems have a split render/display architecture: the display
side is managed by a KMS driver and the render side is managed by a
separate Vulkan driver. Figuring out that these two drivers can
work together is not trivial.

Currently, the Vulkan renderer tries to find a Vulkan physical
device which matches the DRM device's dev_t. On split render/display,
there is no such device.

The platform bus has historically been abused for situations
where no other bus would make sense (e.g. VKMS, evdi). A new "faux"
bus has been introduced [1] for such devices, so the platform bus
should now be a pretty good hint that all devices are on the same
system-on-chip.

When we don't find a Vulkan physical device and the DRM device is
using the platform bus, fall back to any Vulkan physical which
also uses the platform bus.

[1]: https://lore.kernel.org/all/2025021023-sandstorm-precise-9f5d@gregkh/

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/work_items/4055
2026-06-13 09:59:46 +00:00
..
shaders render/vulkan: Use instanced draws instead of scissors 2026-05-01 12:50:04 +00:00
meson.build render/vulkan: use renamed glslang binary by default 2023-07-27 16:06:49 +08:00
pass.c render/vulkan: clear blend image on first use 2026-06-12 18:11:23 +00:00
pixel_format.c vulkan: make use of new pixel_format_is_ycbcr function 2026-02-06 13:53:46 +00:00
renderer.c render/vulkan: clear blend image on first use 2026-06-12 18:11:23 +00:00
texture.c render/vulkan: New staging buffer implementation 2026-05-01 12:50:04 +00:00
util.c render/vulkan: compile against vulkan 1.2 header 2026-03-24 12:33:12 -04:00
vulkan.c render/vulkan: add support for split render/display devices 2026-06-13 09:59:46 +00:00