From 5d49644cdc071866c5556997a35bd946d7724457 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 1 Nov 2018 13:47:04 +0100 Subject: [PATCH] [dxgi] Hack: Report Nvidia cards as AMD cards by default Prevents UE4 games from repeatedly trying to load nvapi.dll on a performance-critical code path. --- src/dxgi/dxgi_adapter.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index 10a6215b5..84e2ee1db 100644 --- a/src/dxgi/dxgi_adapter.cpp +++ b/src/dxgi/dxgi_adapter.cpp @@ -158,6 +158,14 @@ namespace dxvk { if (options->customDeviceId >= 0) deviceProp.deviceID = options->customDeviceId; + // XXX nvapi workaround for a lot of Unreal Engine 4 games + if (options->customVendorId < 0 && options->customDeviceId < 0 + && deviceProp.vendorID == uint16_t(DxvkGpuVendor::Nvidia)) { + Logger::info("DXGI: NvAPI workaround enabled, reporting AMD GPU"); + deviceProp.vendorID = uint16_t(DxvkGpuVendor::Amd); + deviceProp.deviceID = 0x67df; /* RX 480 */ + } + // Convert device name std::memset(pDesc->Description, 0, sizeof(pDesc->Description)); ::MultiByteToWideChar(CP_UTF8, 0, deviceProp.deviceName, -1,