From: Ian Romanick Date: Tue, 11 Nov 2014 10:29:34 +0000 (+0000) Subject: mesa: Check for vertex program the same way in desktop GL and ES X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ead200d156c887bed77645ecba7f36ba0be14b8c;p=mesa.git mesa: Check for vertex program the same way in desktop GL and ES On Bay Trail-D using Fedora 20 compile flags (-m64 -O2 -mtune=generic for 64-bit and -m32 -march=i686 -mtune=atom for 32-bit), affects Gl32Multithread: 32-bit: Difference at 95.0% confidence 0.416027% +/- 0.163529% (n=40) 64-bit: Difference at 95.0% confidence 0.494771% +/- 0.259985% (n=40) Gl32Batch7 had no difference proven at 95.0% confidence (n=120) on 32-bit or 64-bit. Signed-off-by: Ian Romanick Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index 869dc4ee47a..b882f0e837d 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -48,9 +48,7 @@ check_valid_to_render(struct gl_context *ctx, const char *function) switch (ctx->API) { case API_OPENGLES2: /* For ES2, we can draw if we have a vertex program/shader). */ - if (!ctx->VertexProgram._Current) - return false; - break; + return ctx->VertexProgram._Current != NULL; case API_OPENGLES: /* For OpenGL ES, only draw if we have vertex positions @@ -83,13 +81,8 @@ check_valid_to_render(struct gl_context *ctx, const char *function) */ return ctx->VertexProgram._Current != NULL; - case API_OPENGL_COMPAT: { - const struct gl_shader_program *const vsProg = - ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX]; - const bool haveVertexShader = (vsProg && vsProg->LinkStatus); - const bool haveVertexProgram = ctx->VertexProgram._Enabled; - - if (haveVertexShader || haveVertexProgram) { + case API_OPENGL_COMPAT: + if (ctx->VertexProgram._Current != NULL) { /* Draw regardless of whether or not we have any vertex arrays. * (Ex: could draw a point using a constant vertex pos) */ @@ -102,7 +95,6 @@ check_valid_to_render(struct gl_context *ctx, const char *function) ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_GENERIC0].Enabled); } break; - } default: unreachable("Invalid API value in check_valid_to_render()");