1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-11-30 04:24:11 +01:00

[dxbc] Enable early discard on RADV/ACO

Still can't enable on LLVM due to GPU hangs. The way we detect it
may have to change in the future, but for now, this should do.
This commit is contained in:
Philip Rebohle 2019-07-08 16:30:56 +02:00
parent 47f7333c18
commit 06d4e06d8a
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -43,10 +43,12 @@ namespace dxvk {
if (DxvkGpuVendor(devInfo.core.properties.vendorID) != DxvkGpuVendor::Amd)
constantBufferRangeCheck = options.constantBufferRangeCheck;
// Disable early discard on RADV due to GPU hangs
// Disable early discard on RADV (with LLVM) due to GPU hangs
// Disable early discard on Nvidia because it may hurt performance
if (adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_MESA_RADV_KHR, 0, 0)
|| adapter->matchesDriver(DxvkGpuVendor::Nvidia, VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0))
bool isRadvAco = std::string(devInfo.core.properties.deviceName).find("RADV/ACO") != std::string::npos;
if ((adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_MESA_RADV_KHR, 0, 0) && !isRadvAco)
|| (adapter->matchesDriver(DxvkGpuVendor::Nvidia, VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0)))
useSubgroupOpsForEarlyDiscard = false;
// Disable atomic counters on older RADV versions