Created attachment 140323 [details] glxinfo https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html Using the WebGL 1.0.4 conformance test on my Sandybridge laptop. conformance/rendering/draw-elements-out-of-bounds.html (Passed: 43/44 Failed: 1/44 in 621.0 ms) failed: getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, 0) The other subtests are OK. I'm using Mesa 1.8.1.1 on Firefox 60.0.2 Manjaro Linux (i've attached a complete glxinfo).
hi, I checked latests released stable mesa version on ubuntu, ubuntu 16.04 firefox 60.0.2 (latest) chromium (66.0.3359.181) mesa-version for FF (18.1.3 stable) for Chromium (18.2.0 git-c7726fbfa5) Results: failed Mozzila (SNB, SKL) passed Chromium (SNB, SKL) _____ I would say that issue might be in FF browser.
I've retested 2 times the WebGL CTS 1.0.4 with Mesa 18.2.6 and Firefox 64.0 on Manjaro Linux up to date and now the test pass correctly ----------------------------- conformance/rendering/draw-elements-out-of-bounds.html (Passed: 44/44 in 748.0 ms) Test of drawElements with out-of-bounds parameters On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". Test null index buffer PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, 0) Test empty index buffer PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, 0) PASS getError was one of: NO_ERROR or INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_BYTE, 0) PASS getError was one of: NO_ERROR or INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 10000, gl.UNSIGNED_BYTE, 0) PASS getError was one of: NO_ERROR or INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, -1, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, -1) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, -1, gl.UNSIGNED_BYTE, 1) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_BYTE, -1) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 0xffffffff, gl.UNSIGNED_BYTE, 0) Test buffer with 3 byte indexes PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_BYTE, 0) PASS getError was one of: NO_ERROR or INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_BYTE, 2) PASS getError was one of: NO_ERROR or INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 10000, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, -1, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, -1) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, -1, gl.UNSIGNED_BYTE, 1) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_BYTE, -1) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 0xffffffff, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, 4) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 10000, gl.UNSIGNED_BYTE, 10000) PASS getError was expected value: NO_ERROR : after evaluating: gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, (new Uint8Array([ 3, 0, 1, 2 ])).subarray(1), gl.STATIC_DRAW) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: NO_ERROR : after evaluating: gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, new Uint8Array([ 3, 0, 1])) PASS getError was one of: INVALID_OPERATION or NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: NO_ERROR : after evaluating: gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, 0, (new Uint8Array([ 3, 0, 1, 2 ])).subarray(1)) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_BYTE, 0) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_BYTE, 0) Test buffer with interleaved (3+2) float vectors PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 9, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 9, gl.UNSIGNED_SHORT, 1000) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 12, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 15, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 18, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 3, gl.UNSIGNED_SHORT, 30) PASS getError was expected value: INVALID_VALUE : after evaluating: gl.drawElements(gl.TRIANGLES, 0xffffffff, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 1, gl.UNSIGNED_SHORT, 0xffffffff) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 0x7fffffff, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 0, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 1) PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 2) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0) Test buffer setting attrib 0 to a buffer too small and disable it. PASS getError was expected value: NO_ERROR : after evaluating: gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 2) PASS getError was expected value: INVALID_OPERATION : after evaluating: gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 2) PASS successfullyParsed is true TEST COMPLETE
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.