mesa: Don't error on glFeedbackBuffer(size = 0, buffer = NULL)
authorEric Anholt <eric@anholt.net>
Tue, 28 Jun 2011 23:39:15 +0000 (16:39 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 6 Jul 2011 18:17:20 +0000 (11:17 -0700)
The existing error result doesn't appear in the GL 2.1 or 3.2
compatibility specs, and triggers an unexpected GL error in Intel's
oglconform when it tries to reset the feedback state after usage so
that the "diff the state at error time vs. context init time" code
doesn't generate spurious diffs.  The unexpected GL error then
translates into testcase failure.  Brian wants the safety check on
buffer = NULL, though, so that people can't as easily set up a broken
buffer.

src/mesa/main/feedback.c

index fcb089f1f31eae7049159f7d2457715ec9fd57e9..597ec1e3f9aae0492b37bfa3df49a93e417b041e 100644 (file)
@@ -64,7 +64,7 @@ _mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer )
       _mesa_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(size<0)" );
       return;
    }
-   if (!buffer) {
+   if (!buffer && size > 0) {
       _mesa_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(buffer==NULL)" );
       ctx->Feedback.BufferSize = 0;
       return;