summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/StateTracker.cpp
diff options
context:
space:
mode:
authorJonathan Hamilton <jtrhamilton@gmail.com>2017-08-23 11:33:30 -0700
committerJonathan Hamilton <jtrhamilton@gmail.com>2017-08-23 14:49:22 -0700
commit5b41c5ae0d93b5d33a97bcd5e9d8938b3b6dffc5 (patch)
treef879b3aa9e4d3c285f7eba4e364cdeff3a4e346c /Source/Core/VideoBackends/Vulkan/StateTracker.cpp
parent4ee85a3e076f8f5569809542b8d8a8869b9b47f9 (diff)
Fix vulkan crash on drivers without atomic load/store support
This would not allocate a SSBO buffer, but still try to update the descriptor said with a NULL buffer. Which naturally crashed.
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/StateTracker.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/StateTracker.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/StateTracker.cpp b/Source/Core/VideoBackends/Vulkan/StateTracker.cpp
index 92ca9d2b4f..33baa86c4c 100644
--- a/Source/Core/VideoBackends/Vulkan/StateTracker.cpp
+++ b/Source/Core/VideoBackends/Vulkan/StateTracker.cpp
@@ -1118,7 +1118,8 @@ bool StateTracker::UpdateDescriptorSet()
m_dirty_flags |= DIRTY_FLAG_DESCRIPTOR_SET_BINDING;
}
- if ((m_dirty_flags & DIRTY_FLAG_PS_SSBO ||
+ if (IsSSBODescriptorRequired() &&
+ (m_dirty_flags & DIRTY_FLAG_PS_SSBO ||
m_descriptor_sets[DESCRIPTOR_SET_BIND_POINT_STORAGE_OR_TEXEL_BUFFER] == VK_NULL_HANDLE))
{
VkDescriptorSetLayout layout =