[dxbc] Only use workgroup scope in compute shaders

Turns out that global barriers can be used in graphics shaders.
This commit is contained in:
Philip Rebohle 2022-09-12 22:04:16 +02:00
parent 0502a0464f
commit 05f36fd97b
1 changed files with 5 additions and 1 deletions

View File

@ -2593,7 +2593,11 @@ namespace dxvk {
}
if (flags.test(DxbcSyncFlag::UavMemoryGlobal)) {
memoryScope = m_hasGloballyCoherentUav ? spv::ScopeQueueFamily : spv::ScopeWorkgroup;
memoryScope = spv::ScopeQueueFamily;
if (m_programInfo.type() == DxbcProgramType::ComputeShader && !m_hasGloballyCoherentUav)
memoryScope = spv::ScopeWorkgroup;
memorySemantics |= spv::MemorySemanticsImageMemoryMask
| spv::MemorySemanticsUniformMemoryMask
| spv::MemorySemanticsAcquireReleaseMask