mesa: add llvmpipeHook for software rendering setup
This commit is contained in:
parent
dda100f27b
commit
b0a82fe902
@ -341,10 +341,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
|
||||
tests = {
|
||||
render = runCommand "${finalAttrs.pname}-test" { } ''
|
||||
render = runCommand "${finalAttrs.pname}-test" {
|
||||
nativeBuildInputs = [ mesa.llvmpipeHook ];
|
||||
} ''
|
||||
set -euo pipefail
|
||||
export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib/dri
|
||||
export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
|
||||
cat <<'PYTHON' > scene-config.py
|
||||
import bpy
|
||||
bpy.context.scene.eevee.taa_render_samples = 32
|
||||
|
@ -152,10 +152,11 @@ clangStdenv.mkDerivation rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = [
|
||||
mesa.llvmpipeHook
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
# for running mesa llvmpipe
|
||||
export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib/dri
|
||||
export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
|
||||
# some fontconfig issues cause pdf output to have wrong font
|
||||
ctest -j$NIX_BUILD_CORES -E pdfexporttest.\*
|
||||
'';
|
||||
|
@ -53,4 +53,7 @@ in stdenv.mkDerivation {
|
||||
(lib.mesonEnable "glvnd" false)
|
||||
(lib.mesonEnable "shared-glapi" true)
|
||||
];
|
||||
|
||||
# Don't need this on Darwin.
|
||||
passthru.llvmpipeHook = null;
|
||||
}
|
||||
|
@ -92,6 +92,7 @@
|
||||
"intel-nullhw"
|
||||
]
|
||||
, mesa
|
||||
, makeSetupHook
|
||||
}:
|
||||
|
||||
# When updating this package, please verify at least these build (assuming x86_64-linux):
|
||||
@ -394,5 +395,10 @@ in stdenv.mkDerivation {
|
||||
'';
|
||||
disallowedRequisites = [ llvmPackages.llvm mesa.drivers ];
|
||||
};
|
||||
|
||||
llvmpipeHook = makeSetupHook {
|
||||
name = "llvmpipe-hook";
|
||||
substitutions.drivers = mesa.drivers;
|
||||
} ./llvmpipe-hook.sh;
|
||||
};
|
||||
}
|
||||
|
14
pkgs/development/libraries/mesa/llvmpipe-hook.sh
Normal file
14
pkgs/development/libraries/mesa/llvmpipe-hook.sh
Normal file
@ -0,0 +1,14 @@
|
||||
# shellcheck shell=bash
|
||||
|
||||
# https://docs.mesa3d.org/envvars.html
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
export LIBGL_DRIVERS_PATH=@drivers@/lib/dri
|
||||
|
||||
# https://github.com/NVIDIA/libglvnd/blob/master/src/EGL/icd_enumeration.md
|
||||
export __EGL_VENDOR_LIBRARY_FILENAMES=@drivers@/share/glvnd/egl_vendor.d/50_mesa.json
|
||||
|
||||
# https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderInterfaceArchitecture.md
|
||||
# glob because the filenames contain an architecture suffix
|
||||
# echo is needed to force-expand the glob
|
||||
VK_DRIVER_FILES="$(echo @drivers@/share/vulkan/icd.d/lvp_icd.*.json)"
|
||||
export VK_DRIVER_FILES
|
@ -106,9 +106,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
passthru.tests.lavapipe = runCommand "vulkan-cts-tests-lavapipe" { nativeBuildInputs = [ finalAttrs.finalPackage ]; } ''
|
||||
# Expand the wildcard to pick the existing architecture
|
||||
export VK_ICD_FILENAMES=$(echo ${mesa.drivers}/share/vulkan/icd.d/lvp_icd.*.json)
|
||||
passthru.tests.lavapipe = runCommand "vulkan-cts-tests-lavapipe" {
|
||||
nativeBuildInputs = [ finalAttrs.finalPackage mesa.llvmpipeHook ];
|
||||
} ''
|
||||
deqp-vk -n dEQP-VK.api.smoke.triangle
|
||||
touch $out
|
||||
'';
|
||||
|
Loading…
Reference in New Issue
Block a user