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 <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
committed by
Kenneth Graunke
parent
d5f936367f
commit
ead200d156
@@ -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()");
|
||||
|
||||
Reference in New Issue
Block a user