in a stream like:
* set fb state (A)
* flush
* set fb state (B)
* draw -> driver query
* flush
the "driver query" should return the tc info corresponding to the most
recent fb state (B). previously this would increment to C because
the flag for incrementing at the start of a batch was set
Fixes:
07017aa137b ("util/tc: implement renderpass tracking")
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25206>
if (tc->options.parse_renderpass_info) {
+ /* ensure this is treated as the first fb set if no fb activity has occurred */
+ if (!tc->renderpass_info_recording->has_draw &&
+ !tc->renderpass_info_recording->cbuf_clear &&
+ !tc->renderpass_info_recording->cbuf_load &&
+ !tc->renderpass_info_recording->zsbuf_load &&
+ !tc->renderpass_info_recording->zsbuf_clear_partial)
+ tc->batch_slots[tc->next].first_set_fb = false;
/* store existing zsbuf data for possible persistence */
uint8_t zsbuf = tc->renderpass_info_recording->has_draw ?
0 :