This patch is Reviewed-by: Ian Romanick <[email protected]>
On 01/12/2016 08:06 AM, Nicolai Hähnle wrote: > From: Nicolai Hähnle <[email protected]> > > Change the check to be in line with what the quoted spec fragment says. > > I have sent out a piglit test for this as well. > --- > src/mesa/main/bufferobj.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c > index 3aab839..63d563e 100644 > --- a/src/mesa/main/bufferobj.c > +++ b/src/mesa/main/bufferobj.c > @@ -3939,8 +3939,14 @@ _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr > offset, > struct gl_buffer_object *bufObj; > const GLintptr end = offset + length; > > + /* Section 6.5 (Invalidating Buffer Data) of the OpenGL 4.5 (Compatibility > + * Profile) spec says: > + * > + * "An INVALID_VALUE error is generated if buffer is zero or is not > the > + * name of an existing buffer object." > + */ > bufObj = _mesa_lookup_bufferobj(ctx, buffer); > - if (!bufObj) { > + if (!bufObj || bufObj == &DummyBufferObject) { > _mesa_error(ctx, GL_INVALID_VALUE, > "glInvalidateBufferSubData(name = 0x%x) invalid object", > buffer); > @@ -3953,7 +3959,7 @@ _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr > offset, > * negative, or if <offset> + <length> is greater than the value of > * BUFFER_SIZE." > */ > - if (end < 0 || end > bufObj->Size) { > + if (offset < 0 || length < 0 || end > bufObj->Size) { > _mesa_error(ctx, GL_INVALID_VALUE, > "glInvalidateBufferSubData(invalid offset or length)"); > return; > @@ -3986,8 +3992,14 @@ _mesa_InvalidateBufferData(GLuint buffer) > GET_CURRENT_CONTEXT(ctx); > struct gl_buffer_object *bufObj; > > + /* Section 6.5 (Invalidating Buffer Data) of the OpenGL 4.5 (Compatibility > + * Profile) spec says: > + * > + * "An INVALID_VALUE error is generated if buffer is zero or is not > the > + * name of an existing buffer object." > + */ > bufObj = _mesa_lookup_bufferobj(ctx, buffer); > - if (!bufObj) { > + if (!bufObj || bufObj == &DummyBufferObject) { > _mesa_error(ctx, GL_INVALID_VALUE, > "glInvalidateBufferData(name = 0x%x) invalid object", > buffer); > _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
