virglrenderer: enable venus and DRM native context support

Venus is currently required for Vulkan support in Virtio-GPU. DRM native
context will allow using the native Mesa drivers in the guest, improving
support and performance; support in QEMU (on the host) and Mesa (on the guest)
is required and not in upstream releases yet.

Fixes: https://github.com/NixOS/nixpkgs/issues/379454
This commit is contained in:
Alois Wohlschlager
2025-03-18 18:18:59 +01:00
parent 2ff53fe644
commit d082fd7312
+16 -3
View File
@@ -11,8 +11,12 @@
libX11,
libdrm,
libgbm,
nativeContextSupport ? stdenv.hostPlatform.isLinux,
vaapiSupport ? !stdenv.hostPlatform.isDarwin,
libva,
vulkanSupport ? stdenv.hostPlatform.isLinux,
vulkan-headers,
vulkan-loader,
gitUpdater,
}:
@@ -32,6 +36,10 @@ stdenv.mkDerivation rec {
libepoxy
]
++ lib.optionals vaapiSupport [ libva ]
++ lib.optionals vulkanSupport [
vulkan-headers
vulkan-loader
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libGLU
libX11
@@ -46,9 +54,14 @@ stdenv.mkDerivation rec {
python3
];
mesonFlags = [
(lib.mesonBool "video" vaapiSupport)
];
mesonFlags =
[
(lib.mesonBool "video" vaapiSupport)
(lib.mesonBool "venus" vulkanSupport)
]
++ lib.optionals nativeContextSupport [
(lib.mesonOption "drm-renderers" "amdgpu-experimental,msm")
];
passthru = {
updateScript = gitUpdater {