From ace3193d44b12993dbd6711f24126ba2935b3de3 Mon Sep 17 00:00:00 2001 From: Guillaume Bouchard Date: Tue, 28 Apr 2020 10:43:14 +0200 Subject: [PATCH] Mesa Vulkan: set icd files for all drivers --- nixGL.nix | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/nixGL.nix b/nixGL.nix index 9649d8a..8f70d36 100644 --- a/nixGL.nix +++ b/nixGL.nix @@ -126,18 +126,29 @@ in ''; }; - # TODO: 32 bit version? Not tested. nixVulkanIntel = writeExecutable { name = "nixVulkanIntel"; - text = '' + text = let + # generate a file with the listing of all the icd files + icd = runCommand "mesa_icd" {} + ( + # 64 bits icd + ''ls ${mesa_drivers}/share/vulkan/icd.d/*.json > f + '' + # 32 bits ones + + lib.optionalString enable32bits ''ls ${pkgsi686Linux.mesa_drivers}/share/vulkan/icd.d/*.json >> f + '' + # concat everything as a one line string with ":" as seperator + + ''cat f | xargs | sed "s/ /:/g" > $out'' + ); + in '' #!/usr/bin/env bash if [ -n "$LD_LIBRARY_PATH" ]; then echo "Warning, nixVulkanIntel overwriting existing LD_LIBRARY_PATH" 1>&2 fi - - # TODO: check mesa things other than intel export VK_LAYER_PATH=${vulkan-validation-layers}/share/vulkan/explicit_layer.d - export VK_ICD_FILENAMES=${mesa_drivers}/share/vulkan/icd.d/intel_icd.x86_64.json${lib.optionalString enable32bits ":${pkgsi686Linux.mesa_drivers}/share/vulkan/icd.d/intel_icd.i686.json"}:$VK_ICD_FILENAMES + ICDS=$(cat ${icd}) + export VK_ICD_FILENAMES=$ICDS:$VK_ICD_FILENAMES export LD_LIBRARY_PATH=${lib.makeLibraryPath [ zlib libdrm