Clamp Vk Indirect partial replay draw count

i.e. partial replay of an indirect with zero draw count
This commit is contained in:
Jake Turner
2026-06-04 11:55:56 +01:00
parent 2774a629ca
commit 1a0c70bac8
@@ -671,7 +671,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirect(SerialiserType &ser, VkCommandBu
m_IndirectDraw = true;
unwrappedBuffer = m_IndirectBuffer.UnwrappedBuffer();
offset = 0;
count = drawidx + 1;
count = RDCMIN(count, drawidx + 1);
stride = sizeof(VkDrawIndirectCommand);
}
@@ -1038,7 +1038,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect(SerialiserType &ser,
m_IndirectDraw = true;
unwrappedBuffer = m_IndirectBuffer.UnwrappedBuffer();
offset = 0;
count = drawidx + 1;
count = RDCMIN(count, drawidx + 1);
stride = sizeof(VkDrawIndexedIndirectCommand);
}
@@ -2996,7 +2996,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirectCount(SerialiserType &ser,
m_IndirectDraw = true;
unwrappedBuffer = m_IndirectBuffer.UnwrappedBuffer();
offset = 0;
count = drawidx + 1;
count = RDCMIN(count, drawidx + 1);
stride = sizeof(VkDrawIndirectCommand);
}
@@ -3308,7 +3308,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirectCount(
m_IndirectDraw = true;
unwrappedBuffer = m_IndirectBuffer.UnwrappedBuffer();
offset = 0;
count = drawidx + 1;
count = RDCMIN(count, drawidx + 1);
stride = sizeof(VkDrawIndexedIndirectCommand);
}
@@ -4634,7 +4634,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawMeshTasksIndirectEXT(SerialiserType &ser,
m_IndirectDraw = true;
unwrappedBuffer = m_IndirectBuffer.UnwrappedBuffer();
offset = 0;
drawCount = drawidx + 1;
drawCount = RDCMIN(drawCount, drawidx + 1);
stride = sizeof(VkDrawMeshTasksIndirectCommandEXT);
}
@@ -4985,7 +4985,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawMeshTasksIndirectCountEXT(
m_IndirectDraw = true;
unwrappedBuffer = m_IndirectBuffer.UnwrappedBuffer();
offset = 0;
count = drawidx + 1;
count = RDCMIN(count, drawidx + 1);
stride = sizeof(VkDrawMeshTasksIndirectCommandEXT);
}