Mesa (main): crocus/gen5: add dirty flags for urb fences.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 11 03:52:53 UTC 2021


Module: Mesa
Branch: main
Commit: 2d15557fd3a36ce22ad1996d5159e5912ec49b70
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d15557fd3a36ce22ad1996d5159e5912ec49b70

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Oct 11 13:30:55 2021 +1000

crocus/gen5: add dirty flags for urb fences.

Fixes hang with some gtk4 apps.

Fixes: f3630548f1da ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13282>

---

 src/gallium/drivers/crocus/crocus_state.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c
index 632cddbbb2f..95a28803a4d 100644
--- a/src/gallium/drivers/crocus/crocus_state.c
+++ b/src/gallium/drivers/crocus/crocus_state.c
@@ -5876,8 +5876,10 @@ crocus_upload_dirty_render_state(struct crocus_context *ice,
      bool ret = crocus_calculate_urb_fence(batch, ice->curbe.total_size,
                                            brw_vue_prog_data(ice->shaders.prog[MESA_SHADER_VERTEX]->prog_data)->urb_entry_size,
                                            ((struct brw_sf_prog_data *)ice->shaders.sf_prog->prog_data)->urb_entry_size);
-     if (ret)
-        dirty |= CROCUS_DIRTY_GEN5_PIPELINED_POINTERS;
+     if (ret) {
+	dirty |= CROCUS_DIRTY_GEN5_PIPELINED_POINTERS | CROCUS_DIRTY_RASTER | CROCUS_DIRTY_CLIP;
+	stage_dirty |= CROCUS_STAGE_DIRTY_GS | CROCUS_STAGE_DIRTY_VS;
+     }
    }
 #endif
    if (dirty & CROCUS_DIRTY_CC_VIEWPORT) {



More information about the mesa-commit mailing list