diff --git a/Source/Core/VideoBackends/Vulkan/StateTracker.cpp b/Source/Core/VideoBackends/Vulkan/StateTracker.cpp index 471a8b12f5..089b385ffe 100644 --- a/Source/Core/VideoBackends/Vulkan/StateTracker.cpp +++ b/Source/Core/VideoBackends/Vulkan/StateTracker.cpp @@ -767,7 +767,9 @@ bool StateTracker::UpdateGXDescriptorSet() if (num_writes > 0) vkUpdateDescriptorSets(g_vulkan_context->GetDevice(), num_writes, writes.data(), 0, nullptr); - m_num_active_descriptor_sets = NUM_GX_DRAW_DESCRIPTOR_SETS; + m_num_active_descriptor_sets = g_vulkan_context->SupportsBoundingBox() ? + NUM_GX_DRAW_DESCRIPTOR_SETS_SSBO : + NUM_GX_DRAW_DESCRIPTOR_SETS; m_num_dynamic_offsets = NUM_UBO_DESCRIPTOR_SET_BINDINGS; return true; } diff --git a/Source/Core/VideoBackends/Vulkan/StateTracker.h b/Source/Core/VideoBackends/Vulkan/StateTracker.h index a3d7a365ae..f4cbc8e180 100644 --- a/Source/Core/VideoBackends/Vulkan/StateTracker.h +++ b/Source/Core/VideoBackends/Vulkan/StateTracker.h @@ -103,7 +103,8 @@ private: // Number of descriptor sets for game draws. enum { - NUM_GX_DRAW_DESCRIPTOR_SETS = DESCRIPTOR_SET_BIND_POINT_STORAGE_OR_TEXEL_BUFFER + 1, + NUM_GX_DRAW_DESCRIPTOR_SETS = DESCRIPTOR_SET_BIND_POINT_PIXEL_SHADER_SAMPLERS + 1, + NUM_GX_DRAW_DESCRIPTOR_SETS_SSBO = DESCRIPTOR_SET_BIND_POINT_STORAGE_OR_TEXEL_BUFFER + 1, NUM_UTILITY_DRAW_DESCRIPTOR_SETS = 2 }; @@ -192,4 +193,4 @@ private: std::vector m_scheduled_command_buffer_kicks; bool m_allow_background_execution = true; }; -} +} // namespace Vulkan