diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp index a58832f08..cefa41e98 100644 --- a/src/d3d11/d3d11_context.cpp +++ b/src/d3d11/d3d11_context.cpp @@ -185,6 +185,8 @@ namespace dxvk { m_state.cs.unorderedAccessViews[i] = nullptr; } + m_state.cs.uavMask.clear(); + // Default ID state m_state.id.argBuffer = nullptr; @@ -2478,6 +2480,7 @@ namespace dxvk { if (m_state.cs.unorderedAccessViews[StartSlot + i] != uav || ctr != ~0u) { m_state.cs.unorderedAccessViews[StartSlot + i] = uav; + m_state.cs.uavMask.set(StartSlot + i, uav != nullptr); BindUnorderedAccessView( uavSlotId + i, uav, diff --git a/src/d3d11/d3d11_context_state.h b/src/d3d11/d3d11_context_state.h index 1408f014e..33c9d4a8a 100644 --- a/src/d3d11/d3d11_context_state.h +++ b/src/d3d11/d3d11_context_state.h @@ -85,6 +85,8 @@ namespace dxvk { D3D11SamplerBindings samplers; D3D11ShaderResourceBindings shaderResources; D3D11UnorderedAccessBindings unorderedAccessViews; + + DxvkBindingSet uavMask = { }; };