mesa: fix vertex array validation test for attribute 0 (vert pos)
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 3 Jul 2008 01:17:11 +0000 (19:17 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 3 Jul 2008 01:17:11 +0000 (19:17 -0600)
We don't actually need vertex array[0] enabled when using a vertex
program/shader.

src/mesa/main/api_validate.c

index 74b0912bef6c69a9cc11e5ad069c4c38354ed81f..5a199939760fac3e2b5ac2cef1dc91b9a9b447ee 100644 (file)
@@ -108,10 +108,10 @@ _mesa_validate_DrawElements(GLcontext *ctx,
    if (ctx->NewState)
       _mesa_update_state(ctx);
 
-   /* Always need vertex positions */
-   if (!ctx->Array.ArrayObj->Vertex.Enabled
-       && !(ctx->VertexProgram._Enabled
-            && ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
+   /* Always need vertex positions, unless a vertex program is in use */
+   if (!ctx->VertexProgram._Current &&
+       !ctx->Array.ArrayObj->Vertex.Enabled &&
+       !ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
       return GL_FALSE;
 
    /* Vertex buffer object tests */
@@ -190,10 +190,10 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode,
    if (ctx->NewState)
       _mesa_update_state(ctx);
 
-   /* Always need vertex positions */
-   if (!ctx->Array.ArrayObj->Vertex.Enabled
-       && !(ctx->VertexProgram._Enabled
-            && ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
+   /* Always need vertex positions, unless a vertex program is in use */
+   if (!ctx->VertexProgram._Current &&
+       !ctx->Array.ArrayObj->Vertex.Enabled &&
+       !ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
       return GL_FALSE;
 
    /* Vertex buffer object tests */
@@ -261,9 +261,10 @@ _mesa_validate_DrawArrays(GLcontext *ctx,
    if (ctx->NewState)
       _mesa_update_state(ctx);
 
-   /* Always need vertex positions */
-   if (!ctx->Array.ArrayObj->Vertex.Enabled
-       && !ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
+   /* Always need vertex positions, unless a vertex program is in use */
+   if (!ctx->VertexProgram._Current &&
+       !ctx->Array.ArrayObj->Vertex.Enabled &&
+       !ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
       return GL_FALSE;
 
    if (ctx->Const.CheckArrayBounds) {