NGX D3D12_Init fails with 0xBAD00001 "No matching adapter found" on dual-RTX system — all LUIDs verified correct

Games using the Unreal Engine 5 DLSS plugin (classic NGX integration) hide DLSS from the upscaler menu: SILENT HILL:
Townfall (UE 5.6, DLSS 310.4 snippet) and Cronos: The New Dawn. Games using Streamline (Silent Hill 2) or direct
nvngx_dlss.dll loading (RDR2) work fine — DLSS available and rendering.

Findings (verified via standalone probes, no games involved):

  1. NVSDK_NGX_D3D12_Init returns 0xBAD00001 (FAIL_FeatureNotSupported) — on either GPU, any adapter, any
    AppId/ProjectId, any SDK version (0x13–0x15). NGX log:

      [NGXCheckIfSupportedOnHW:130] error: unsupported hw detected
    

    The r572 core is more verbose:

      [luidToNvPhysicalGpuHandle:130] No matching adapter found (out of 2 adapters)
      [NGXCheckHardwareSupportUsingINF:262] Failed to get NvPhysicalGpuHandle from luid!
    
  2. NVSDK_NGX_D3D11_Init succeeds on the same machine, same GPUs.

  3. Everything the LUID-matching depends on is verified healthy:
    • NvAPI_Initialize, NvAPI_EnumPhysicalGPUs (2 GPUs), NvAPI_GPU_GetArchInfo (0x1B0, Blackwell) — OK
    • NvAPI_GetLogicalGPUFromPhysicalGPU + NvAPI_GPU_GetLogicalGpuInfo (NV_LOGICAL_GPU_DATA v1) — returns OS LUIDs
    identical to the DXGI adapter LUIDs for both GPUs
    • D3DKMTEnumAdapters2 / D3DKMTOpenAdapterFromLuid — KMT LUIDs match DXGI LUIDs
    • NVML enumerates both GPUs; D3D12 device creation succeeds (FL 11_0–12_1, default and explicit adapters)

  4. With NV_DIRECTAMODEL_SIMCLASS=1, NGX_D3D12_Init succeeds, the DLSS 310.4 snippet validates cleanly (arch 0x1B0 ≥
    0x160, driver 617.14 ≥ 470.0, support flags match), but NVSDK_NGX_D3D12_CreateFeature then fails (0xBAD00007
    observed; SuperSampling.Available reports 0).

  5. Not the cause (tested individually): dual-GPU topology (fails with 2nd GPU disabled), iGPU (fails with iGPU
    disabled), virtual display drivers, third-party software, HAGS, NVSupportNGX value, DRS database, game settings
    caches, DLSS DLL version (310.4 / 3.7.0), clean driver reinstall, older NGX branch (572.83).

Minimal repro:
Create an ID3D12Device on the RTX 5090 adapter, load nvngx.dll, call NVSDK_NGX_D3D12_Init(appId, dataPath, device,
NULL, 0x15) → 0xBAD00001 with the log lines above.

Ask: please review the LUID→physical-GPU matching in NGXCheckIfSupportedOnHW / luidToNvPhysicalGpuHandle for
multi-adapter configurations. NGX appears unable to match a valid D3D12 device LUID to an NVAPI physical GPU even
though every involved API returns correct, mutually consistent data.