[Mesa-dev] [PATCH] mesa: cleanup _mesa_valid_to_render code
Tapani Pälli
tapani.palli at intel.com
Wed Oct 8 02:45:10 PDT 2014
Patch moves shader_linked_or_absent functionality as part of
_mesa_valid_to_render function. Function contained code marked as
"not normally enabled" which would not work any more and removing
that made it small enough to justify the move.
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
src/mesa/main/context.c | 38 +++++++++-----------------------------
1 file changed, 9 insertions(+), 29 deletions(-)
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 5a8f718..fb62275 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1858,32 +1858,6 @@ _mesa_check_blend_func_error(struct gl_context *ctx)
return GL_TRUE;
}
-static bool
-shader_linked_or_absent(struct gl_context *ctx,
- const struct gl_shader_program *shProg,
- bool *shader_present, const char *where)
-{
- if (shProg) {
- *shader_present = true;
-
- if (!shProg->LinkStatus) {
- _mesa_error(ctx, GL_INVALID_OPERATION, "%s(shader not linked)", where);
- return false;
- }
-#if 0 /* not normally enabled */
- {
- char errMsg[100];
- if (!_mesa_validate_shader_program(ctx, shProg, errMsg)) {
- _mesa_warning(ctx, "Shader program %u is invalid: %s",
- shProg->Name, errMsg);
- }
- }
-#endif
- }
-
- return true;
-}
-
/**
* Prior to drawing anything with glBegin, glDrawArrays, etc. this function
* is called to see if it's valid to render. This involves checking that
@@ -1902,10 +1876,16 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where)
if (ctx->NewState)
_mesa_update_state(ctx);
+ /* Check if the programs are linked and mark which ones are present */
for (i = 0; i < MESA_SHADER_COMPUTE; i++) {
- if (!shader_linked_or_absent(ctx, ctx->_Shader->CurrentProgram[i],
- &from_glsl_shader[i], where))
- return GL_FALSE;
+ if (ctx->_Shader->CurrentProgram[i]) {
+ from_glsl_shader[i] = true;
+ if (!ctx->_Shader->CurrentProgram[i]->LinkStatus) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "%s(shader not linked)", where);
+ return GL_FALSE;
+ }
+ }
}
/* Any shader stages that are not supplied by the GLSL shader and have
--
1.9.3
More information about the mesa-dev
mailing list