mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 17:10:11 +01:00
aux/tc: fix rp info handling around tc_sync calls
if a set_framebuffer_state call has occurred but no draws have been
triggered, the rp info must be preserved for the driver to (eventually)
use after the sync
Fixes: 07017aa137 ("util/tc: implement renderpass tracking")
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25227>
This commit is contained in:
parent
c9b7639a7d
commit
81dd39de01
1 changed files with 5 additions and 0 deletions
|
|
@ -695,8 +695,13 @@ _tc_sync(struct threaded_context *tc, UNUSED const char *info, UNUSED const char
|
|||
if (tc->options.parse_renderpass_info) {
|
||||
int renderpass_info_idx = next->renderpass_info_idx;
|
||||
if (renderpass_info_idx > 0) {
|
||||
/* don't reset if fb state is unflushed */
|
||||
bool fb_no_draw = tc->seen_fb_state && !tc->renderpass_info_recording->has_draw;
|
||||
uint32_t fb_info = tc->renderpass_info_recording->data32[0];
|
||||
next->renderpass_info_idx = -1;
|
||||
tc_batch_increment_renderpass_info(tc, tc->next, false);
|
||||
if (fb_no_draw)
|
||||
tc->renderpass_info_recording->data32[0] = fb_info;
|
||||
} else if (tc->renderpass_info_recording->has_draw) {
|
||||
tc->renderpass_info_recording->data32[0] = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue