diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/amdvlk')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/amdvlk/default.nix | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/amdvlk/default.nix b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix new file mode 100644 index 000000000000..2ef3f3d3920b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix @@ -0,0 +1,90 @@ +{ stdenv +, lib +, fetchRepoProject +, cmake +, ninja +, patchelf +, perl +, pkg-config +, python3 +, expat +, libdrm +, ncurses +, openssl +, wayland +, xorg +, zlib +}: +let + + suffix = if stdenv.system == "x86_64-linux" then "64" else "32"; + +in stdenv.mkDerivation rec { + pname = "amdvlk"; + version = "2021.Q2.5"; + + src = fetchRepoProject { + name = "${pname}-src"; + manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git"; + rev = "refs/tags/v-${version}"; + sha256 = "0NJoGk++SHt4dtoUj3UQeW4zFtwa7osczUr+vxi8DG8="; + }; + + buildInputs = [ + expat + ncurses + openssl + wayland + xorg.libX11 + xorg.libxcb + xorg.xcbproto + xorg.libXext + xorg.libXrandr + xorg.libXft + xorg.libxshmfence + zlib + ]; + + nativeBuildInputs = [ + cmake + ninja + patchelf + perl + pkg-config + python3 + ]; + + rpath = lib.makeLibraryPath [ + libdrm + openssl + stdenv.cc.cc.lib + xorg.libX11 + xorg.libxcb + xorg.libxshmfence + ]; + + cmakeDir = "../drivers/xgl"; + + # LTO is disabled in gcc for i686 as of #66528 + cmakeFlags = lib.optionals stdenv.is32bit ["-DXGL_ENABLE_LTO=OFF"]; + + installPhase = '' + install -Dm755 -t $out/lib icd/amdvlk${suffix}.so + install -Dm644 -t $out/share/vulkan/icd.d icd/amd_icd${suffix}.json + install -Dm644 -t $out/share/vulkan/implicit_layer.d icd/amd_icd${suffix}.json + + patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so + ''; + + # Keep the rpath, otherwise vulkaninfo and vkcube segfault + dontPatchELF = true; + + meta = with lib; { + description = "AMD Open Source Driver For Vulkan"; + 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" "i686-linux" ]; + maintainers = with maintainers; [ Flakebi ]; + }; +} |