diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index 10a6215b..84e2ee1d 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,