Mesa (master): mesa: move _Used to gl_program

Timothy Arceri tarceri at kemper.freedesktop.org
Thu Dec 29 23:57:41 UTC 2016


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

Author: Timothy Arceri <timothy.arceri at collabora.com>
Date:   Mon Oct 31 22:08:24 2016 +1100

mesa: move _Used to gl_program

We no longer need to initialise it because gl_program is never reused.

Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/compiler/glsl/linker.cpp | 1 -
 src/mesa/main/api_validate.c | 8 ++++----
 src/mesa/main/mtypes.h       | 3 ++-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index f825678..e5cc6de 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -4748,7 +4748,6 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
 {
    prog->data->LinkStatus = true; /* All error paths will set this to false */
    prog->data->Validated = false;
-   prog->_Used = false;
 
    /* Section 7.3 (Program Objects) of the OpenGL 4.5 Core Profile spec says:
     *
diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
index 33e8086..2f9980e 100644
--- a/src/mesa/main/api_validate.c
+++ b/src/mesa/main/api_validate.c
@@ -197,8 +197,8 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where)
       gl_shader_stage i;
 
       for (i = 0; i < MESA_SHADER_STAGES; i++) {
-	 if (shProg[i] == NULL || shProg[i]->_Used
-	     || shProg[i]->_LinkedShaders[i] == NULL)
+	 if (shProg[i] == NULL || shProg[i]->_LinkedShaders[i] == NULL ||
+             shProg[i]->_LinkedShaders[i]->Program->_Used)
 	    continue;
 
 	 /* This is the first time this shader is being used.
@@ -214,8 +214,8 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where)
       }
 
       for (i = 0; i < MESA_SHADER_STAGES; i++) {
-	 if (shProg[i] != NULL)
-	    shProg[i]->_Used = GL_TRUE;
+	 if (shProg[i] != NULL && shProg[i]->_LinkedShaders[i] != NULL)
+	    shProg[i]->_LinkedShaders[i]->Program->_Used = GL_TRUE;
       }
    }
 #endif
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 1da76b8..8842791 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1921,6 +1921,8 @@ struct gl_program
    GLenum Target;    /**< GL_VERTEX/FRAGMENT_PROGRAM_ARB, GL_GEOMETRY_PROGRAM_NV */
    GLenum Format;    /**< String encoding format */
 
+   GLboolean _Used;        /**< Ever used for drawing? Used for debugging */
+
    struct nir_shader *nir;
 
    GLbitfield64 SecondaryOutputsWritten; /**< Subset of OutputsWritten outputs written with non-zero index. */
@@ -2842,7 +2844,6 @@ struct gl_shader_program
     */
    struct string_to_uint_map *UniformHash;
 
-   GLboolean _Used;        /**< Ever used for drawing? */
    GLboolean SamplersValidated; /**< Samplers validated against texture units? */
 
    bool IsES;              /**< True if this program uses GLSL ES */




More information about the mesa-commit mailing list