diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 068d464f0d2c..9081a1f9ca61 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -21060,6 +21060,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"; 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 ]; + }; +}