From ac17d5f9b1135143ba5797efeb9ad22eb796455a Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Mon, 10 Feb 2025 18:36:01 +0100 Subject: [PATCH] [dxvk] Enable tiler mode for more drivers --- src/dxvk/dxvk_device.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 874d7b944..31d0c1468 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -429,12 +429,21 @@ namespace dxvk { hints.preferFbResolve = m_features.amdShaderFragmentMask && (m_adapter->matchesDriver(VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR) || m_adapter->matchesDriver(VK_DRIVER_ID_AMD_PROPRIETARY_KHR)); + // Older Nvidia drivers sometimes use the wrong format // to interpret the clear color in render pass clears. hints.renderPassClearFormatBug = m_adapter->matchesDriver( VK_DRIVER_ID_NVIDIA_PROPRIETARY, Version(), Version(560, 28, 3)); - // On tilers we need to respect render passes some more - bool tilerMode = m_adapter->matchesDriver(VK_DRIVER_ID_MESA_TURNIP); + + // On tilers we need to respect render passes some more. + // Deliberately ignore proprietary mobile drivers here, + // DXVK probably doesn't run on those at all anyway + bool tilerMode = m_adapter->matchesDriver(VK_DRIVER_ID_MESA_TURNIP) + || m_adapter->matchesDriver(VK_DRIVER_ID_MESA_HONEYKRISP) + || m_adapter->matchesDriver(VK_DRIVER_ID_MESA_PANVK) + || m_adapter->matchesDriver(VK_DRIVER_ID_MESA_V3DV) + || m_adapter->matchesDriver(VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA); + applyTristate(tilerMode, m_options.tilerMode); hints.preferRenderPassOps = tilerMode; return hints;