Module: Mesa Branch: 9.1 Commit: 5611a5a38725a7c0e5d76c5a55f10165c3e02b96 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5611a5a38725a7c0e5d76c5a55f10165c3e02b96
Author: Paul Berry <[email protected]> Date: Thu Feb 7 17:54:59 2013 -0800 mesa: Don't check (offset + size <= bufObj->Size) in BindBufferRange. In the documentation for BindBufferRange, OpenGL specs from 3.0 through 4.1 contain this language: "The error INVALID_VALUE is generated if size is less than or equal to zero or if offset + size is greater than the value of BUFFER_SIZE." This text was dropped from OpenGL 4.2, and it does not appear in the GLES 3.0 spec. Presumably the reason for the change is because come clients change the size of the buffer after calling BindBufferRange. We don't want to generate an error at the time of the BindBufferRange call just because the old size of the buffer was too small, when the buffer is about to be resized. Since this is a deliberate relaxation of error conditions in order to allow clients to work, it seems sensible to apply it to all versions of GL, not just GL 4.2 and above. (Note that there is no danger of this change allowing a client to access data beyond the end of a buffer. We already have code to ensure that that doesn't happen in the case where the client shrinks the buffer after calling BindBufferRange). Eliminates a spurious error message in the gles3 conformance test "transform_feedback_offset_size". Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Ian Romanick <[email protected]> (cherry picked from commit 04f0d6cc2235ba50f7525446004f634e03632eeb) --- src/mesa/main/bufferobj.c | 7 ------- 1 files changed, 0 insertions(+), 7 deletions(-) diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 7c06938..b82ba7b 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -2152,13 +2152,6 @@ _mesa_BindBufferRange(GLenum target, GLuint index, (int) size); return; } - - if (offset + size > bufObj->Size) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glBindBufferRange(offset + size %d > buffer size %d)", - (int) (offset + size), (int) (bufObj->Size)); - return; - } } switch (target) { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
