Mesa (master): mesa: create program resource hash in a single place

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jan 9 06:21:38 UTC 2020


Module: Mesa
Branch: master
Commit: 1e29ff7b3dab02aa8cf87144e38b10d2c9e19813
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e29ff7b3dab02aa8cf87144e38b10d2c9e19813

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Tue Jan  7 17:56:26 2020 +0200

mesa: create program resource hash in a single place

This is a cleanup but also a fix for commit dd09f1d806b. In case of
i965 we did not actually create hash for cached shader programs.

Fixes: dd09f1d806b "mesa/st/i965: add a ProgramResourceHash for quicker resource lookup"
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/mesa/drivers/dri/i965/brw_link.cpp     | 2 --
 src/mesa/program/ir_to_mesa.cpp            | 3 +++
 src/mesa/state_tracker/st_glsl_to_nir.cpp  | 2 --
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 --
 4 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp b/src/mesa/drivers/dri/i965/brw_link.cpp
index 8a62ffd760b..2a844575c3d 100644
--- a/src/mesa/drivers/dri/i965/brw_link.cpp
+++ b/src/mesa/drivers/dri/i965/brw_link.cpp
@@ -388,8 +388,6 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
    else
       nir_build_program_resource_list(ctx, shProg, true);
 
-   _mesa_create_program_resource_hash(shProg);
-
    for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) {
       struct gl_linked_shader *shader = shProg->_LinkedShaders[stage];
       if (!shader)
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 293c412d23d..bcf50c505e1 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -3187,6 +3187,9 @@ _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
       prog->data->LinkStatus = LINKING_FAILURE;
    }
 
+   if (prog->data->LinkStatus != LINKING_FAILURE)
+      _mesa_create_program_resource_hash(prog);
+
    /* Return early if we are loading the shader from on-disk cache */
    if (prog->data->LinkStatus == LINKING_SKIPPED)
       return;
diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp
index b01cc3fd8d9..c92b1c365a7 100644
--- a/src/mesa/state_tracker/st_glsl_to_nir.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp
@@ -843,8 +843,6 @@ st_link_nir(struct gl_context *ctx,
       prev_info = info;
    }
 
-   _mesa_create_program_resource_hash(shader_program);
-
    return true;
 }
 
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index cd77effebc4..b6c2c2deb77 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -7428,7 +7428,5 @@ st_link_tgsi(struct gl_context *ctx, struct gl_shader_program *prog)
       }
    }
 
-   _mesa_create_program_resource_hash(prog);
-
    return GL_TRUE;
 }




More information about the mesa-commit mailing list