From 30f9e4bf57a166aa3f42165d781ed2919944ba94 Mon Sep 17 00:00:00 2001 From: Michael Witrant Date: Sun, 4 Aug 2024 12:29:25 +0200 Subject: [PATCH 1/2] maintainers: add sigmike --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fb83381fd0ea..71854b6aa632 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -18830,6 +18830,12 @@ githubId = 174749595; keys = [ { fingerprint = "E3CD E225 47C6 2DB6 6CCD BC06 CC3A E2EA 0000 0000"; } ]; }; + sigmike = { + email = "mike+nixpkgs@lepton.fr"; + github = "sigmike"; + githubId = 28259; + name = "Michael Witrant"; + }; sikmir = { email = "sikmir@disroot.org"; matrix = "@sikmir:matrix.org"; From 94a555610950f3d5010020a6f43b31d7a4ed7467 Mon Sep 17 00:00:00 2001 From: Michael Witrant Date: Sun, 4 Aug 2024 12:21:04 +0200 Subject: [PATCH 2/2] vkdevicechooser: init at 1.1 Inspired by the Arch package[1], it uses a fork of vkdevicechooser that uses the latest version of the Vulkan libraries and doesn't require the generated headers from vulkan-validation-layers[2]. Related discussion: https://discourse.nixos.org/t/building-vkdevicechooser-missing-vk-layer-dispatch-table-h/45196 [1] https://aur.archlinux.org/packages/vkdevicechooser [2] https://github.com/jiriks74/vkdevicechooser/commit/2eecb26bcc1a61bed8592a324a71a93443d533df --- pkgs/by-name/vk/vkdevicechooser/package.nix | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 pkgs/by-name/vk/vkdevicechooser/package.nix diff --git a/pkgs/by-name/vk/vkdevicechooser/package.nix b/pkgs/by-name/vk/vkdevicechooser/package.nix new file mode 100644 index 000000000000..2af58ec88424 --- /dev/null +++ b/pkgs/by-name/vk/vkdevicechooser/package.nix @@ -0,0 +1,56 @@ +{ + lib, + stdenv, + fetchFromGitHub, + writeText, + meson, + vulkan-headers, + vulkan-utility-libraries, + ninja, + jq, +}: + +stdenv.mkDerivation rec { + pname = "vkdevicechooser"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "jiriks74"; + repo = "vkdevicechooser"; + rev = version; + hash = "sha256-j4hefarOQ3q0sKkB2g/dO2/4bSYzt4oxmCna0nMAjFk="; + }; + + nativeBuildInputs = [ + meson + ninja + jq + ]; + + buildInputs = [ + vulkan-headers + vulkan-utility-libraries + ]; + + # Help vulkan-loader find the layer + setupHook = writeText "setup-hook" '' + addToSearchPath XDG_DATA_DIRS @out@/share + ''; + + # 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 = { + description = "Vulkan layer to force a specific device to be used"; + homepage = "https://github.com/aejsmith/vkdevicechooser"; + platforms = lib.platforms.unix; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.sigmike ]; + }; +}