summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/glsl/linker.cpp1
-rw-r--r--src/mesa/main/api_validate.c8
-rw-r--r--src/mesa/main/mtypes.h3
3 files changed, 6 insertions, 6 deletions
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index f8256785bca..e5cc6de2d12 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 33e80863842..2f9980e7e6c 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 1da76b891b4..8842791913e 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 */