Without the change the build fails on `gcc-13` as:
$ nix build --impure --expr 'with import ./. {}; mangohud.override { stdenv = gcc13Stdenv; }' -L
mangohud> In file included from ../tests/../src/amdgpu.h:8,
mangohud> from ../tests/test_amdgpu.cpp:9:
mangohud> ../tests/../src/overlay_params.h:229:21: error: 'uint32_t' is not a member of 'std'; did you mean 'wint_t'?
mangohud> 229 | std::vector<std::uint32_t> fps_limit;
mangohud> | ^~~~~~~~
mangohud> | wint_t
This allows the user to disable 32-bit support for closure size reasons or in
order to mitigate loader issues like
https://github.com/NixOS/nixpkgs/issues/230978.
The name is weird because it can't start with a digit :/
The VK loader finds the 32-bit layer first and does not attempt to load the
64-bit layer afterwards; likely because it shares the same name. Simply giving
them different names fixes the issue; both layers are tried and the correct one
succeeds.
A similar patter is employed by obs-vkcapture which continued working after
https://github.com/NixOS/nixpkgs/pull/228870.
Fixes https://github.com/NixOS/nixpkgs/issues/230978
Before this change, NVIDIA GPUs were only supported when using the
mangohud & mangoapp binaries.
This extends support to direct use of the Vulkan layer
(enabled through `MANGOHUD=1`).