summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/graphics/vulkan-extension-layer/default.nix39
-rw-r--r--pkgs/top-level/all-packages.nix1
2 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/tools/graphics/vulkan-extension-layer/default.nix b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
new file mode 100644
index 0000000000000..cea582851e49d
--- /dev/null
+++ b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, writeText, vulkan-headers, jq }:
+
+stdenv.mkDerivation rec {
+  pname = "vulkan-extension-layer";
+  version = "2020-08-25";
+
+  src = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "Vulkan-ExtensionLayer";
+    rev = "352f8e3e269ff2c650da50ce36313547c2a1fbb6";
+    sha256 = "1503z1zj1xvjpry2h7fpg1frx7lcm54zs3azcgiv5i3ar4wqfkz9";
+  };
+
+  nativeBuildInputs = [ cmake jq ];
+
+  buildInputs = [ vulkan-headers ];
+
+  # Help vulkan-loader find the validation layers
+  setupHook = writeText "setup-hook" ''
+    export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
+  '';
+
+  # Include absolute paths to layer libraries in their associated
+  # layer definition json files.
+  preFixup = ''
+    for f in "$out"/share/vulkan/explicit_layer.d/*.json "$out"/share/vulkan/implicit_layer.d/*.json; do
+      jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path"
+      mv tmp.json "$f"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Layers providing Vulkan features when native support is unavailable";
+    homepage = "https://github.com/KhronosGroup/Vulkan-ExtensionLayer/";
+    platforms = platforms.linux;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8c96a8b961a23..c9586dae594e3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16160,6 +16160,7 @@ in
                                           CoreText IOSurface ImageIO OpenGL GLUT;
   };
 
+  vulkan-extension-layer = callPackage ../tools/graphics/vulkan-extension-layer { };
   vulkan-headers = callPackage ../development/libraries/vulkan-headers { };
   vulkan-loader = callPackage ../development/libraries/vulkan-loader { };
   vulkan-tools = callPackage ../tools/graphics/vulkan-tools { };