Skip to content
Permalink
Browse files

Vulkan: Don't bind last descriptor set if bounding box is unsupported

Fixes crash on a4xx/Vulkan.
  • Loading branch information...
stenzek committed Jan 22, 2019
1 parent c6f151c commit ee0fa548bc60b6f2abc9a2122c6d7debc1e9b576
@@ -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;
}
@@ -103,7 +103,8 @@ class StateTracker
// 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 @@ class StateTracker
std::vector<u32> m_scheduled_command_buffer_kicks;
bool m_allow_background_execution = true;
};
}
} // namespace Vulkan

0 comments on commit ee0fa54

Please sign in to comment.
You can’t perform that action at this time.