diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index a562133f7..8bf91fc31 100644 --- a/src/dxgi/dxgi_adapter.cpp +++ b/src/dxgi/dxgi_adapter.cpp @@ -155,6 +155,14 @@ namespace dxvk { sharedMemory += heap.size; } + #ifndef _WIN64 + // The value returned by DXGI is a 32-bit value + // on 32-bit platforms, so we need to clamp it + VkDeviceSize maxMemory = 0xF0000000; + deviceMemory = std::min(deviceMemory, maxMemory); + sharedMemory = std::min(sharedMemory, maxMemory); + #endif + pDesc->VendorId = deviceProp.vendorID; pDesc->DeviceId = deviceProp.deviceID; pDesc->SubSysId = 0;