radv: Reserve space in framebuffer emission.

In the execute secondary scenario nothing else does it for us.

Fixes: 203f60ebf2 ("radv: emit framebuffer state from primary if secondary doesn't inherit it")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22392>
(cherry picked from commit 4879f309a6)
This commit is contained in:
Bas Nieuwenhuizen 2022-12-05 00:51:19 +01:00 committed by Dylan Baker
parent 60fd425cae
commit d99aa64f07
2 changed files with 6 additions and 1 deletions

View File

@ -3964,7 +3964,7 @@
"description": "radv: Reserve space in framebuffer emission.",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "203f60ebf2f64dab3dc77ce9c098a6ae3d2aca43",
"notes": null

View File

@ -3389,6 +3389,9 @@ radv_emit_framebuffer_state(struct radv_cmd_buffer *cmd_buffer)
? S_028C70_FORMAT_GFX11(V_028C70_COLOR_INVALID)
: S_028C70_FORMAT_GFX6(V_028C70_COLOR_INVALID);
ASSERTED unsigned cdw_max =
radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 48 + MAX_RTS * 70);
for (i = 0; i < render->color_att_count; ++i) {
struct radv_image_view *iview = render->color_att[i].iview;
if (!iview) {
@ -3520,6 +3523,8 @@ radv_emit_framebuffer_state(struct radv_cmd_buffer *cmd_buffer)
}
}
assert(cmd_buffer->cs->cdw <= cdw_max);
cmd_buffer->state.dirty &= ~RADV_CMD_DIRTY_FRAMEBUFFER;
}