KhronosGroup / KhronosGroup/Vulkan-Loader

X11 and XCB WSI on macOS

Open
#1,678 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.