From f7aa310fdddc09fd85319887c42391e75d8d6db3 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 17 Jan 2023 13:59:24 +0100 Subject: [PATCH] [dxvk] Disable pipeline lifetime tracking for RADV Seems like this is not needed on this driver, so let's just use the fast path by default. Makes the current implementation work with 32-bit games as well since caching does not work yet. --- src/dxvk/dxvk_device.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 54ef2821..d1356a4c 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -68,9 +68,25 @@ namespace dxvk { bool DxvkDevice::mustTrackPipelineLifetime() const { - bool result = env::is32BitHostPlatform(); - applyTristate(result, m_options.trackPipelineLifetime); - return result && canUseGraphicsPipelineLibrary(); + switch (m_options.trackPipelineLifetime) { + case Tristate::True: + return canUseGraphicsPipelineLibrary(); + + case Tristate::False: + return false; + + default: + case Tristate::Auto: + if (!env::is32BitHostPlatform() || !canUseGraphicsPipelineLibrary()) + return false; + + // Disable lifetime tracking for drivers that do not have any + // significant issues with 32-bit address space to begin with + if (m_adapter->matchesDriver(VK_DRIVER_ID_MESA_RADV_KHR, 0, 0)) + return false; + + return true; + } }