[Mesa-dev] mistake in "mesa/vbo: move some Draw checks out of validation"?
Brian Paul
brianp at vmware.com
Fri Aug 18 22:02:54 UTC 2017
Hi Timothy,
I happened to be looking at the VBO vertex array code and I think I
spotted a mistake in this commit:
commit 4df2931a87fe082f90871564a89a09c826641f5b
Author: Timothy Arceri <tarceri at itsqueeze.com>
Date: Mon Apr 3 16:38:18 2017 +1000
mesa/vbo: move some Draw checks out of validation
These checks do not generate any errors. Move them so we can add
KHR_no_error support and still make sure we do these checks.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
Specifically, the old code in check_valid_to_render() to check whether
vertex attribute array 0 is enabled for API_OPENGLES was:
/* For OpenGL ES, only draw if we have vertex positions
*/
if (!ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Enabled)
return false; //BP: don't draw
your patch moved this into skip_validated_draw() where the return value
is basically inverted from the old code.
/* For OpenGL ES, only draw if we have vertex positions
*/
if (ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Enabled)
return false;
break;
if we don't return false there, we'll unconditionally return false at
the end of the function (i.e. we can never return true).
I think the above condition should read:
if (!ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_POS].Enabled)
return true; //BP: skip draw
The //BP: comments are added by me.
I guess we don't have any piglit tests for ES that check that drawing is
skipped when the vertex position array is disabled.
-Brian
More information about the mesa-dev
mailing list