[Mesa-dev] [PATCH 1/6] mesa: Simplify uniform debug logging logic

Ian Romanick idr at freedesktop.org
Fri Oct 7 17:06:47 PDT 2011


From: Ian Romanick <ian.d.romanick at intel.com>

This simplificiation was enabled by the earlier refactors that
eliminated the references to the assembly shaders stored in the
gl_shader_program structure.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 src/mesa/main/context.c       |   22 +++-------------------
 src/mesa/program/prog_print.c |    4 ++--
 src/mesa/program/prog_print.h |    3 +--
 3 files changed, 6 insertions(+), 23 deletions(-)

diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index fc52e8c..e0af6ee 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1833,8 +1833,6 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where)
       shProg[MESA_SHADER_FRAGMENT] = ctx->Shader.CurrentFragmentProgram;
 
       for (i = 0; i < MESA_SHADER_TYPES; i++) {
-	 struct gl_shader *sh;
-
 	 if (shProg[i] == NULL || shProg[i]->_Used
 	     || shProg[i]->_LinkedShaders[i] == NULL)
 	    continue;
@@ -1842,27 +1840,13 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where)
 	 /* This is the first time this shader is being used.
 	  * Append shader's constants/uniforms to log file.
 	  *
-	  * The logic is a little odd here.  We only want to log data for each
-	  * shader target that will actually be used, and we only want to log
-	  * it once.  It's possible to have a program bound to the vertex
+	  * Only log data for the program target that matches the shader
+	  * target.  It's possible to have a program bound to the vertex
 	  * shader target that also supplied a fragment shader.  If that
 	  * program isn't also bound to the fragment shader target we don't
 	  * want to log its fragment data.
 	  */
-	 sh = shProg[i]->_LinkedShaders[i];
-	 switch (sh->Type) {
-	 case GL_VERTEX_SHADER:
-	    _mesa_append_uniforms_to_file(sh, sh->Program);
-	    break;
-
-	 case GL_GEOMETRY_SHADER_ARB:
-	    _mesa_append_uniforms_to_file(sh, sh->Program);
-	    break;
-
-	 case GL_FRAGMENT_SHADER:
-	    _mesa_append_uniforms_to_file(sh, sh->Program);
-	    break;
-	 }
+	 _mesa_append_uniforms_to_file(shProg[i]->_LinkedShaders[i]);
       }
 
       for (i = 0; i < MESA_SHADER_TYPES; i++) {
diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c
index 70412b1..dfccc60 100644
--- a/src/mesa/program/prog_print.c
+++ b/src/mesa/program/prog_print.c
@@ -1068,9 +1068,9 @@ _mesa_write_shader_to_file(const struct gl_shader *shader)
  * _mesa_write_shader_to_file function.
  */
 void
-_mesa_append_uniforms_to_file(const struct gl_shader *shader,
-                              const struct gl_program *prog)
+_mesa_append_uniforms_to_file(const struct gl_shader *shader)
 {
+   const struct gl_program *const prog = shader->Program;
    const char *type;
    char filename[100];
    FILE *f;
diff --git a/src/mesa/program/prog_print.h b/src/mesa/program/prog_print.h
index d962087..b95ec2b 100644
--- a/src/mesa/program/prog_print.h
+++ b/src/mesa/program/prog_print.h
@@ -113,8 +113,7 @@ extern void
 _mesa_write_shader_to_file(const struct gl_shader *shader);
 
 extern void
-_mesa_append_uniforms_to_file(const struct gl_shader *shader,
-                              const struct gl_program *prog);
+_mesa_append_uniforms_to_file(const struct gl_shader *shader);
 
 
 #endif /* PROG_PRINT_H */
-- 
1.7.6



More information about the mesa-dev mailing list