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

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 11 16:26:40 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: a285a9d0f4ebdcc4f7040282f7bb4913164e9bae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a285a9d0f4ebdcc4f7040282f7bb4913164e9bae

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>
(cherry picked from commit 2d15557fd3a36ce22ad1996d5159e5912ec49b70)

---

 .pick_status.json                         | 2 +-
 src/gallium/drivers/crocus/crocus_state.c | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 9c1ded941ed..6b51cde1d10 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -193,7 +193,7 @@
         "description": "crocus/gen5: add dirty flags for urb fences.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "f3630548f1da904ec6c63b43ece7e68afdb8867e"
     },
diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c
index 9dbe0a49e2d..4160b6260c6 100644
--- a/src/gallium/drivers/crocus/crocus_state.c
+++ b/src/gallium/drivers/crocus/crocus_state.c
@@ -5861,8 +5861,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