From 305c361c00be16f4564b3269292d3689a586db45 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 25 Sep 2018 10:14:42 +0200 Subject: [PATCH] [d3d11] Fix incomplete usage mask for buffer UAVs --- src/d3d11/d3d11_buffer.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/d3d11/d3d11_buffer.cpp b/src/d3d11/d3d11_buffer.cpp index b925d10e..c90c6411 100644 --- a/src/d3d11/d3d11_buffer.cpp +++ b/src/d3d11/d3d11_buffer.cpp @@ -135,8 +135,7 @@ namespace dxvk { if (pDesc->BindFlags & D3D11_BIND_UNORDERED_ACCESS) { info.usage |= VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; - info.stages |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT - | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + info.stages |= m_device->GetEnabledShaderStages(); info.access |= VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT; } @@ -171,10 +170,7 @@ namespace dxvk { // AMD cards have a device-local, host-visible memory type where // we can put dynamic resources that need fast access by the GPU - if ((pDesc->Usage == D3D11_USAGE_DYNAMIC) && (pDesc->BindFlags & ( - D3D11_BIND_VERTEX_BUFFER | D3D11_BIND_INDEX_BUFFER | - D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS | - D3D11_BIND_CONSTANT_BUFFER))) + if (pDesc->Usage == D3D11_USAGE_DYNAMIC && pDesc->BindFlags) memoryFlags |= VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; return m_device->GetDXVKDevice()->createBuffer(info, memoryFlags);