diff options
| author | Jonathan Hamilton <jtrhamilton@gmail.com> | 2017-08-23 11:33:30 -0700 |
|---|---|---|
| committer | Jonathan Hamilton <jtrhamilton@gmail.com> | 2017-08-23 14:49:22 -0700 |
| commit | 5b41c5ae0d93b5d33a97bcd5e9d8938b3b6dffc5 (patch) | |
| tree | f879b3aa9e4d3c285f7eba4e364cdeff3a4e346c /Source/Core/VideoBackends/Vulkan/StateTracker.cpp | |
| parent | 4ee85a3e076f8f5569809542b8d8a8869b9b47f9 (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.cpp | 3 |
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 = |
