diff --git a/README.md b/README.md index 8f44ca2..d0fdcd8 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ System-Mesa genutzt werden kann. Standardmäßig baut das Repo Mesa für: +- `x11` - `wayland` Und mit diesem Treiberprofil: @@ -25,6 +26,9 @@ Und mit diesem Treiberprofil: - Fallback: `zink`, `llvmpipe`, `softpipe` - Vulkan: `amd`, `intel`, `intel_hasvk`, `nouveau`, `swrast` +Das Profil ist damit besser für Steam, Proton und Xwayland geeignet als ein +hartes Wayland-only-Build. + Zusammen mit einem aktuellen `libdrm`-Snapshot, damit neue Mesa-Stände nicht an zu alten Distributionspaketen scheitern. @@ -109,6 +113,7 @@ mesa-git-env vkcube Der Wrapper setzt die nötigen Mesa-Pfade für `LD_LIBRARY_PATH`, `LIBGL_DRIVERS_PATH`, `VK_LAYER_PATH` und `VK_ICD_FILENAMES`. +Vorhandene Vulkan-ICDs aus dem Paket werden dabei automatisch eingesammelt. ## Lokaler Test diff --git a/config/mesa-opt.conf b/config/mesa-opt.conf index 92842ab..23ae7d8 100644 --- a/config/mesa-opt.conf +++ b/config/mesa-opt.conf @@ -10,7 +10,7 @@ LIBDRM_GIT_REF="main" INSTALL_PREFIX="/opt/mesa-git" BUILD_TYPE="release" -PLATFORMS="wayland" +PLATFORMS="x11,wayland" # Broad desktop profile: AMD, Intel, NVIDIA nouveau plus software fallback. GALLIUM_DRIVERS="radeonsi,r300,r600,iris,crocus,nouveau,zink,llvmpipe,softpipe" diff --git a/scripts/build-mesa-opt.sh b/scripts/build-mesa-opt.sh index 4f26eb9..f5521c0 100644 --- a/scripts/build-mesa-opt.sh +++ b/scripts/build-mesa-opt.sh @@ -95,7 +95,7 @@ meson setup "${BUILD_DIR}" "${SRC_DIR}" \ -Dgallium-drivers="${GALLIUM_DRIVERS}" \ -Dvulkan-drivers="${VULKAN_DRIVERS}" \ -Dvulkan-layers="${VULKAN_LAYERS}" \ - -Dglx=disabled \ + -Dglx=dri \ -Dllvm=enabled \ -Dshared-glapi=enabled @@ -128,7 +128,7 @@ Use it with: export LD_LIBRARY_PATH=${INSTALL_PREFIX}/lib/x86_64-linux-gnu:${INSTALL_PREFIX}/lib:\$LD_LIBRARY_PATH export LIBGL_DRIVERS_PATH=${INSTALL_PREFIX}/lib/x86_64-linux-gnu/dri export VK_LAYER_PATH=${INSTALL_PREFIX}/share/vulkan/explicit_layer.d - export VK_ICD_FILENAMES=${INSTALL_PREFIX}/share/vulkan/icd.d/radeon_icd.x86_64.json:${INSTALL_PREFIX}/share/vulkan/icd.d/lvp_icd.x86_64.json + export VK_ICD_FILENAMES=\$(printf '%s:' ${INSTALL_PREFIX}/share/vulkan/icd.d/*.json | sed 's/:$//') EOF cat > "${PKG_DIR}/usr/bin/${PACKAGE_NAME}-env" </dev/null; then + icd_files=(${INSTALL_PREFIX}/share/vulkan/icd.d/*.json) + icd_joined=\$(printf '%s:' "\${icd_files[@]}") + export VK_ICD_FILENAMES="\${icd_joined%:}" + export VK_DRIVER_FILES="\${VK_ICD_FILENAMES}" +fi exec "\$@" EOF chmod 0755 "${PKG_DIR}/usr/bin/${PACKAGE_NAME}-env"