From 13beb432fb21fb5bea38ac374df0fbace92eec76 Mon Sep 17 00:00:00 2001 From: Sebastian Neubauer Date: Tue, 21 Jul 2020 16:58:30 +0200 Subject: [PATCH] amdvlk: Add i686-linux platform --- pkgs/development/libraries/amdvlk/default.nix | 25 ++++++++++++++----- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix index 73983dba0508..2480a2707f9c 100644 --- a/pkgs/development/libraries/amdvlk/default.nix +++ b/pkgs/development/libraries/amdvlk/default.nix @@ -15,8 +15,11 @@ , xorg , zlib }: +let -stdenv.mkDerivation rec { + suffix = if stdenv.system == "x86_64-linux" then "64" else "32"; + +in stdenv.mkDerivation rec { pname = "amdvlk"; version = "2020.Q3.4"; @@ -62,14 +65,24 @@ stdenv.mkDerivation rec { cmakeDir = "../drivers/xgl"; + # LTO is disabled in gcc for i686 as of #66528 + cmakeFlags = stdenv.lib.optionals stdenv.is32bit ["-DXGL_ENABLE_LTO=OFF"]; + + postPatch = stdenv.lib.optionalString stdenv.is32bit '' + substituteInPlace drivers/pal/cmake/PalCompilerOptions.cmake \ + --replace "pal_setup_gcc_ipo()" "" + ''; + installPhase = '' - install -Dm755 -t $out/lib icd/amdvlk64.so - install -Dm644 -t $out/share/vulkan/icd.d ../drivers/AMDVLK/json/Redhat/amd_icd64.json + install -Dm755 -t $out/lib icd/amdvlk${suffix}.so + install -Dm644 -t $out/share/vulkan/icd.d ../drivers/AMDVLK/json/Redhat/amd_icd${suffix}.json - substituteInPlace $out/share/vulkan/icd.d/amd_icd64.json --replace \ + substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \ "/usr/lib64" "$out/lib" + substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \ + "/usr/lib" "$out/lib" - patchelf --set-rpath "$rpath" $out/lib/amdvlk64.so + patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so ''; # Keep the rpath, otherwise vulkaninfo and vkcube segfault @@ -80,7 +93,7 @@ stdenv.mkDerivation rec { homepage = "https://github.com/GPUOpen-Drivers/AMDVLK"; changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}"; license = licenses.mit; - platforms = [ "x86_64-linux" ]; + platforms = [ "x86_64-linux" "i686-linux" ]; maintainers = with maintainers; [ danieldk Flakebi ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4c9179f5c5d9..1b91dfd45534 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12159,6 +12159,7 @@ in # Multi-arch "drivers" which we want to build for i686. driversi686Linux = recurseIntoAttrs { inherit (pkgsi686Linux) + amdvlk mesa vaapiIntel libvdpau-va-gl