Module: Mesa Branch: mesa_7_7_branch Commit: 23eda89ec89e2bd5bc26077bd56e8d6b5d4040d4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=23eda89ec89e2bd5bc26077bd56e8d6b5d4040d4
Author: Brian Paul <[email protected]> Date: Thu Jan 28 13:02:40 2010 -0700 mesa: do state validation in _mesa_valid_to_render() ...rather than checking/validating before all the calls to _mesa_valid_to_render() and valid_to_render(). The next patch will actually fix some bugs... --- src/mesa/main/api_validate.c | 9 --------- src/mesa/main/context.c | 4 ++++ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index e71e5a6..013048b 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -190,9 +190,6 @@ _mesa_validate_DrawElements(GLcontext *ctx, return GL_FALSE; } - if (ctx->NewState) - _mesa_update_state(ctx); - if (!check_valid_to_render(ctx, "glDrawElements")) return GL_FALSE; @@ -254,9 +251,6 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode, return GL_FALSE; } - if (ctx->NewState) - _mesa_update_state(ctx); - if (!check_valid_to_render(ctx, "glDrawRangeElements")) return GL_FALSE; @@ -304,9 +298,6 @@ _mesa_validate_DrawArrays(GLcontext *ctx, return GL_FALSE; } - if (ctx->NewState) - _mesa_update_state(ctx); - if (!check_valid_to_render(ctx, "glDrawArrays")) return GL_FALSE; diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 87eae96..f5d9a30 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1580,6 +1580,10 @@ _mesa_set_mvp_with_dp4( GLcontext *ctx, GLboolean _mesa_valid_to_render(GLcontext *ctx, const char *where) { + /* This depends on having up to date derived state (shaders) */ + if (ctx->NewState) + _mesa_update_state(ctx); + if (ctx->Shader.CurrentProgram) { /* using shaders */ if (!ctx->Shader.CurrentProgram->LinkStatus) { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
