Improve Vulkan handling of zero count Submits

This commit is contained in:
Jake Turner
2026-07-08 12:43:40 +01:00
parent 14d36bd0ba
commit a0caa3399f
@@ -1494,22 +1494,30 @@ bool WrappedVulkan::Serialise_vkQueueSubmit(SerialiserType &ser, VkQueue queue,
}
if(submitCount == 0)
{
AddEvent();
if(IsLoading(m_State))
{
AddEvent();
// we're adding multiple events, need to increment ourselves
m_RootEventID++;
// we're adding multiple events, need to increment ourselves
m_RootEventID++;
ObjDisp(queue)->QueueSubmit(Unwrap(queue), 0, NULL, VK_NULL_HANDLE);
ObjDisp(queue)->QueueSubmit(Unwrap(queue), 0, NULL, VK_NULL_HANDLE);
ActionDescription action;
action.customName = "=> vkQueueSubmit(): No Submit";
action.flags |= ActionFlags::CommandBufferBoundary | ActionFlags::PassBoundary;
AddEvent();
ActionDescription action;
action.customName = "=> vkQueueSubmit(): No Submit";
action.flags |= ActionFlags::CommandBufferBoundary | ActionFlags::PassBoundary;
AddEvent();
m_RootEvents.back().chunkIndex = APIEvent::NoChunk;
m_Events.back().chunkIndex = APIEvent::NoChunk;
m_RootEvents.back().chunkIndex = APIEvent::NoChunk;
m_Events.back().chunkIndex = APIEvent::NoChunk;
AddAction(action);
AddAction(action);
}
else
{
// account for the queue submit event
m_RootEventID++;
}
}
else
{
@@ -1687,22 +1695,30 @@ bool WrappedVulkan::Serialise_vkQueueSubmit2(SerialiserType &ser, VkQueue queue,
}
if(submitCount == 0)
{
AddEvent();
if(IsLoading(m_State))
{
AddEvent();
// we're adding multiple events, need to increment ourselves
m_RootEventID++;
// we're adding multiple events, need to increment ourselves
m_RootEventID++;
ObjDisp(queue)->QueueSubmit2(Unwrap(queue), 0, NULL, VK_NULL_HANDLE);
ObjDisp(queue)->QueueSubmit2(Unwrap(queue), 0, NULL, VK_NULL_HANDLE);
ActionDescription action;
action.customName = "=> vkQueueSubmit2(): No Submit";
action.flags |= ActionFlags::CommandBufferBoundary | ActionFlags::PassBoundary;
AddEvent();
ActionDescription action;
action.customName = "=> vkQueueSubmit2(): No Submit";
action.flags |= ActionFlags::CommandBufferBoundary | ActionFlags::PassBoundary;
AddEvent();
m_RootEvents.back().chunkIndex = APIEvent::NoChunk;
m_Events.back().chunkIndex = APIEvent::NoChunk;
m_RootEvents.back().chunkIndex = APIEvent::NoChunk;
m_Events.back().chunkIndex = APIEvent::NoChunk;
AddAction(action);
AddAction(action);
}
else
{
// account for the queue submit event
m_RootEventID++;
}
}
else
{