From 1ae7d4b30283d2eb06b467c581aafdbbd9d36cdf Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Wed, 4 Dec 2019 12:24:25 +0100 Subject: [PATCH] Revert "[dxvk] Don't clear bind mask for unbound UBOs and samplers" For some bizarre reason, this crashes Star Citizen. The reason might be that we create multiple pipelines with identical pipelines when using a state cache, which used to crash some drivers in the past. Fixes #1266. This reverts commit 00a064e32bcf46e3d0bb536ce11af1b4c22006d8. --- src/dxvk/dxvk_context.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 521f7e2e..e66d2c96 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -3913,6 +3913,7 @@ namespace dxvk { if (m_rcTracked.set(binding.slot)) m_cmd->trackResource(res.sampler); } else { + bindMask.clr(i); descriptors[i].image = m_common->dummyResources().samplerDescriptor(); } break; @@ -4007,6 +4008,7 @@ namespace dxvk { if (m_rcTracked.set(binding.slot)) m_cmd->trackResource(res.bufferSlice.buffer()); } else { + bindMask.clr(i); descriptors[i].buffer = m_common->dummyResources().bufferDescriptor(); } break; @@ -4029,6 +4031,7 @@ namespace dxvk { if (m_rcTracked.set(binding.slot)) m_cmd->trackResource(res.bufferSlice.buffer()); } else { + bindMask.clr(i); descriptors[i].buffer = m_common->dummyResources().bufferDescriptor(); } break;