i965: Drop assertion about buffer offset at draw time.
authorEric Anholt <eric@anholt.net>
Mon, 15 Aug 2016 15:58:27 +0000 (08:58 -0700)
committerEric Anholt <eric@anholt.net>
Sat, 17 Sep 2016 16:48:16 +0000 (17:48 +0100)
Given robust access, we should just be returning zeroes if the user gives
us a base pointer that's too big, which is what was happens on a release
build.  This was caught by a webgl conformance test for out-of-bounds
draws on servo.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_draw_upload.c

index fdb1b35f4c35412cdaa7849ceeb68ff2e9e175de..a44e04be6be6f29ebaf2eda7b376fffd0df77ea2 100644 (file)
@@ -552,17 +552,6 @@ brw_prepare_vertices(struct brw_context *brw)
            input->buffer = j++;
            input->offset = 0;
         }
-
-        /* This is a common place to reach if the user mistakenly supplies
-         * a pointer in place of a VBO offset.  If we just let it go through,
-         * we may end up dereferencing a pointer beyond the bounds of the
-         * GTT.
-         *
-         * The VBO spec allows application termination in this case, and it's
-         * probably a service to the poor programmer to do so rather than
-         * trying to just not render.
-         */
-        assert(input->offset < intel_buffer->Base.Size);
       } else {
         /* Queue the buffer object up to be uploaded in the next pass,
          * when we've decided if we're doing interleaved or not.