0.1.5 shipped one d4r/zluda/nvapi64.dll (the gfx1101 build) for all
targets, and compat_nvapi_path() preferred it over d4r/nvapi/<arch>/.
Nothing on Windows ever set D4R_GPU_ARCH, so on any other GPU NVAPI
failed with "No selected gfx1101 device", NGX CUDA init failed, and
DLSS stayed unavailable (black frames, no OptiScaler upscaler section).
- Select the NVAPI per architecture; never fall back to a shared DLL
in a multi-target folder, and report a missing build by name.
- The loader and runtime publish D4R_GPU_ARCH and D4R_GPU_LUID for the
game's adapter, so NVAPI picks the right device with several GPUs.
- nvapi64.dll exports the target it was built for; the runtime refuses
a mismatch, and the packager and d4r-check read the same marker.
- Release packaging no longer ships d4r/zluda/nvapi64.dll and rejects
NVAPI builds for the wrong target, without a marker, or missing.
- Move target resolution, device matching and loader choice into
gpu_selection.h; regression tests cover all 11 targets, bad or
missing D4R_GPU_ARCH, mixed installs, multi-GPU and missing files.
- d4r-check: accept the FSR keys in the shipped d4r.ini.