Mesa (staging/21.2): crocus/gen5: reemit shaders on gen5 after new program cache bo.

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


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

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

crocus/gen5: reemit shaders on gen5 after new program cache bo.

This fixes gtk4 programs.

Fixes: f3630548f1da ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13281>
(cherry picked from commit 7079286945211a9af38e0e8c22d14fa217c52e82)

---

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

diff --git a/.pick_status.json b/.pick_status.json
index 7db08c7a345..9c1ded941ed 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -202,7 +202,7 @@
         "description": "crocus/gen5: reemit shaders on gen5 after new program cache bo.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "f3630548f1da904ec6c63b43ece7e68afdb8867e"
     },
diff --git a/src/gallium/drivers/crocus/crocus_program_cache.c b/src/gallium/drivers/crocus/crocus_program_cache.c
index d2d4b821754..52d8bbf0b4c 100644
--- a/src/gallium/drivers/crocus/crocus_program_cache.c
+++ b/src/gallium/drivers/crocus/crocus_program_cache.c
@@ -155,10 +155,11 @@ crocus_cache_new_bo(struct crocus_context *ice,
    ice->shaders.cache_bo = new_bo;
    ice->shaders.cache_bo_map = map;
 
-   if (screen->devinfo.ver == 4) {
+   if (screen->devinfo.ver <= 5) {
       /* reemit all shaders on GEN4 only. */
       ice->state.dirty |= CROCUS_DIRTY_CLIP | CROCUS_DIRTY_RASTER |
          CROCUS_DIRTY_WM;
+      ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_VS;
    }
    ice->batches[CROCUS_BATCH_RENDER].state_base_address_emitted = false;
    ice->batches[CROCUS_BATCH_COMPUTE].state_base_address_emitted = false;



More information about the mesa-commit mailing list