KhronosGroup / KhronosGroup/Vulkan-Loader
X11 and XCB WSI on macOS
- Dominant language
- C
- Stars
- 695
- Forks
- 343
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 17
Description
**What enhancement are you suggesting for the Vulkan Loader? Please describe in detail. **
The Lavapipe software driver from Mesa can be built on macOS and supports the X11 and XCB WSI. The loader doesn't build with X support on Darwin, but by editing only the CMake options to allow it, it does build and run.
This is a software renderer, so 5FPS is expected. It's about the same frame rate as when using the Metal WSI.
Only issue I found so far is that the validation layer wrongly complains "invalid" `VkSurfaceKHR` and the loader crashes on a `null` surface. But if the validation layer is disabled it works.
**Is this specific to a single platform?**
macOS
**Additional context**
I'll admit this is a pretty niche feature, and Lavapipe has supported the Metal WSI for a few months now, but it's cool to have for cross-platform development.
Contributor guide
Research direction
Start with the CMake options that currently prevent X11 and XCB WSI support on Darwin, then reproduce the Lavapipe setup described in the issue. Done means the loader builds and runs with X11/XCB WSI on macOS, while the reported validation-layer surface warning and null-surface crash are resolved or clearly scoped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, macos
- Domain
- build-system, desktop, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100