[vulkan, rasterizer] Filling missing byte count handling when TFB is not available

This commit is contained in:
CamilleLaVey
2026-02-16 00:34:08 -04:00
committed by lizzie
parent 24d07ab28c
commit 1ae76d44c1
2 changed files with 13 additions and 8 deletions
@@ -354,11 +354,18 @@ void RasterizerVulkan::DrawIndirect() {
const auto& buffer = indirect_buffer.first;
const auto& offset = indirect_buffer.second;
if (params.is_byte_count) {
scheduler.Record([buffer_obj = buffer->Handle(), offset,
stride = params.stride](vk::CommandBuffer cmdbuf) {
cmdbuf.DrawIndirectByteCountEXT(1, 0, buffer_obj, offset, 0,
static_cast<u32>(stride));
});
if (!device.IsExtTransformFeedbackSupported()) {
scheduler.Record([buffer_obj = buffer->Handle(), offset,
stride = params.stride](vk::CommandBuffer cmdbuf) {
cmdbuf.DrawIndirect(buffer_obj, offset, 1, static_cast<u32>(stride));
});
} else {
scheduler.Record([buffer_obj = buffer->Handle(), offset,
stride = params.stride](vk::CommandBuffer cmdbuf) {
cmdbuf.DrawIndirectByteCountEXT(1, 0, buffer_obj, offset, 0,
static_cast<u32>(stride));
});
}
return;
}
if (params.include_count) {