mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
panvk/csf: use DEFERRED_FLUSH for fragment job cache flush
The correct dependence is cs_flush_caches.cs_defer.signal to signal cs_sync32_set.cs_defer.wait in occulusion query path. Fixes:443ddac("panvk/csf: merge v10 and v11 paths in issue_fragment_jobs") Fixed: many random fail cases in VK-GL-CTS 1.4.4.2, eg. dEQP-VK.query_pool.occlusion_query.get_results_conservative _size_64_wait_query_without_availability_draw_points_clear_color Signed-off-by: Ryan Zhang <ryan.zhang@nxp.com> Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com> (cherry picked from commit93b58064f7) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40488>
This commit is contained in:
parent
5bbdfb0da5
commit
ae58d184b0
2 changed files with 5 additions and 1 deletions
|
|
@ -1044,7 +1044,7 @@
|
|||
"description": "panvk/csf: use DEFERRED_FLUSH for fragment job cache flush",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "443ddace70695bd490d959d783e22ad49c69ccb2",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -3622,12 +3622,16 @@ issue_fragment_jobs(struct panvk_cmd_buffer *cmdbuf)
|
|||
* indirect mode */
|
||||
cs_set_state_imm32(b, MALI_CS_SET_STATE_TYPE_SB_SEL_DEFERRED,
|
||||
SB_ID(DEFERRED_FLUSH));
|
||||
#else
|
||||
async = cs_defer(SB_WAIT_ITER(sb_upd_ctx.cur_sb), SB_ID(DEFERRED_FLUSH));
|
||||
#endif
|
||||
cs_flush_caches(b, MALI_CS_FLUSH_MODE_CLEAN, MALI_CS_FLUSH_MODE_CLEAN,
|
||||
MALI_CS_OTHER_FLUSH_MODE_NONE, flush_id, async);
|
||||
#if PAN_ARCH >= 11
|
||||
cs_set_state_imm32(b, MALI_CS_SET_STATE_TYPE_SB_SEL_DEFERRED,
|
||||
SB_ID(DEFERRED_SYNC));
|
||||
#else
|
||||
async = cs_defer(SB_WAIT_ITER(sb_upd_ctx.cur_sb), SB_ID(DEFERRED_SYNC));
|
||||
#endif
|
||||
|
||||
cs_load64_to(b, oq_chain, cs_subqueue_ctx_reg(b),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue