From: Timothy Arceri Date: Mon, 31 Oct 2016 11:08:24 +0000 (+1100) Subject: mesa: move _Used to gl_program X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=29d70f5de966c18d563475bc5f60f252e9a900a3;p=mesa.git mesa: move _Used to gl_program We no longer need to initialise it because gl_program is never reused. Reviewed-by: Eric Anholt --- 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 */