diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 46ad85637..aade7f901 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -4356,9 +4356,7 @@ namespace dxvk { if (m_flags.test(DxvkContextFlag::DirtyDrawBuffer) && Indirect) this->trackDrawBuffer(); - if (m_state.gp.flags.any( - DxvkGraphicsPipelineFlag::HasFsStorageDescriptors, - DxvkGraphicsPipelineFlag::HasVsStorageDescriptors)) + if (m_state.gp.flags.test(DxvkGraphicsPipelineFlag::HasStorageDescriptors)) this->commitGraphicsPostBarriers(); } diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index 78f439184..82cd58e0e 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -32,13 +32,8 @@ namespace dxvk { if (m_shaders.gs != nullptr && m_shaders.gs->hasCapability(spv::CapabilityTransformFeedback)) m_flags.set(DxvkGraphicsPipelineFlag::HasTransformFeedback); - VkShaderStageFlags stoStages = m_layout->getStorageDescriptorStages(); - - if (stoStages & VK_SHADER_STAGE_FRAGMENT_BIT) - m_flags.set(DxvkGraphicsPipelineFlag::HasFsStorageDescriptors); - - if (stoStages & ~VK_SHADER_STAGE_FRAGMENT_BIT) - m_flags.set(DxvkGraphicsPipelineFlag::HasVsStorageDescriptors); + if (m_layout->getStorageDescriptorStages()) + m_flags.set(DxvkGraphicsPipelineFlag::HasStorageDescriptors); m_common.msSampleShadingEnable = m_shaders.fs != nullptr && m_shaders.fs->hasCapability(spv::CapabilitySampleRateShading); m_common.msSampleShadingFactor = 1.0f; diff --git a/src/dxvk/dxvk_graphics.h b/src/dxvk/dxvk_graphics.h index 0f8aee7b4..538af3108 100644 --- a/src/dxvk/dxvk_graphics.h +++ b/src/dxvk/dxvk_graphics.h @@ -22,8 +22,7 @@ namespace dxvk { */ enum class DxvkGraphicsPipelineFlag { HasTransformFeedback, - HasFsStorageDescriptors, - HasVsStorageDescriptors, + HasStorageDescriptors, }; using DxvkGraphicsPipelineFlags = Flags;