We are observing failures in the following WebGL conformance test when running on Chromium-based browsers:
Test: https://registry.khronos.org/webgl/sdk/tests/conformance/extensions/angle-instanced-arrays-out-of-bounds.html
Specifically, some cases in the section: "Test out-of-range instanced attributes" are failing.
FAIL getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 9, 1)
Attempted Fix
A change was proposed in ANGLE to explicitly generate GL_INVALID_OPERATION via additional CPU-side validation:
https://chromium-review.googlesource.com/c/angle/angle/+/7588515
Feedback from ANGLE Code Owners
The required CPU-side validation to detect these out-of-range instanced attribute accesses is extremely expensive.
When backends ensure robust buffer access and memory safety, returning GL_INVALID_OPERATION may not provide meaningful additional value. Therefore, it was suggested that the WebGL specification might be reconsidered to avoid requiring this error in such cases.
We are observing failures in the following WebGL conformance test when running on Chromium-based browsers:
Test: https://registry.khronos.org/webgl/sdk/tests/conformance/extensions/angle-instanced-arrays-out-of-bounds.html
Specifically, some cases in the section: "Test out-of-range instanced attributes" are failing.
FAIL getError expected: INVALID_OPERATION. Was NO_ERROR : after evaluating: ext.drawArraysInstancedANGLE(gl.TRIANGLES, 0, 9, 1)
Attempted Fix
A change was proposed in ANGLE to explicitly generate GL_INVALID_OPERATION via additional CPU-side validation:
https://chromium-review.googlesource.com/c/angle/angle/+/7588515
Feedback from ANGLE Code Owners
The required CPU-side validation to detect these out-of-range instanced attribute accesses is extremely expensive.
When backends ensure robust buffer access and memory safety, returning GL_INVALID_OPERATION may not provide meaningful additional value. Therefore, it was suggested that the WebGL specification might be reconsidered to avoid requiring this error in such cases.