We want to finish off cmd emission in the primary CS and add its entry to
the IB, but regardless of whether there had been anything in the primary
CS to emit, we still need a reserved CS entry for the loop below.
Fixes crashes in dEQP-VK.binding_model.shader_access.secondary_cmd_buf.*
and many more in dEQP-VK.renderpass*
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3524>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3524>
assert(cs->mode == TU_CS_MODE_GROW);
assert(target->mode == TU_CS_MODE_GROW);
- if (!tu_cs_is_empty(cs)) {
+ if (!tu_cs_is_empty(cs))
tu_cs_add_entry(cs);
- result = tu_cs_reserve_entry(cs);
- if (result != VK_SUCCESS)
- return result;
- }
for (unsigned i = 0; i < target->entry_count; i++) {
- cs->entries[cs->entry_count++] = target->entries[i];
result = tu_cs_reserve_entry(cs);
if (result != VK_SUCCESS)
return result;
+ cs->entries[cs->entry_count++] = target->entries[i];
}
return VK_SUCCESS;