Bug 223358
Summary: | webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails | ||
---|---|---|---|
Product: | WebKit | Reporter: | Kimmo Kinnunen <kkinnunen> |
Component: | WebGL | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | dino, kbr, kkinnunen, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | Other | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | |||
Bug Blocks: | 222812 |
Kimmo Kinnunen
webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Kimmo Kinnunen
https://www.khronos.org/registry/webgl/sdk/tests/conformance2/transform_feedback/simultaneous_binding.html?webglVersion=2&quiet=0&quick=1
This test verifies that access to a buffer simultaneously bound to a transform feedback object and a non-transform-feedback binding point is forbidden.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS WebGL context exists
PASS getError was expected value: NO_ERROR : linking transform feedback shader should not set an error
With draw functions ()=>gl.drawArrays(gl.POINTS, 0, 4) and ()=>gl.drawElements(gl.POINTS, 4, gl.UNSIGNED_SHORT, 0)
Test baseline
PASS getError was expected value: NO_ERROR : bufferData to TRANSFORM_FEEDBACK_BUFFER
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test generic bind point set to null
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test generic bind point set to vertex buffer
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test ARRAY_BUFFER
PASS getError was expected value: INVALID_OPERATION : drawArrays: buffer used as vertex attrib and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : drawElements: buffer used as vertex attrib and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : buffer used as vertex attrib and tf simultaneously
PASS should be the same as before as nothing has executed
Test UNIFORM_BUFFER
PASS getError was expected value: INVALID_OPERATION : drawArrays: buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : drawElements: buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: NO_ERROR : drawArrays: tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : drawElements: tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : buffer is no longer bound for transform feedback
Test TF buffer bound to target unused by draw
PASS getError was expected value: INVALID_OPERATION : tf enabled
PASS getError was expected value: NO_ERROR : drawArrays: tf disabled
PASS getError was expected value: NO_ERROR : drawElements: tf disabled
Test TF buffer bound to disabled vertex attrib
PASS getError was expected value: NO_ERROR : tf disabled, draw should succeed
PASS getError was expected value: NO_ERROR : tf disabled, draw should succeed
With draw functions ()=>gl.drawArraysInstanced(gl.POINTS, 0, 4, 1) and ()=>gl.drawElementsInstanced(gl.POINTS, 4, gl.UNSIGNED_SHORT, 0, 1)
Test baseline
PASS getError was expected value: NO_ERROR : bufferData to TRANSFORM_FEEDBACK_BUFFER
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test generic bind point set to null
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test generic bind point set to vertex buffer
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test ARRAY_BUFFER
PASS getError was expected value: INVALID_OPERATION : drawArrays: buffer used as vertex attrib and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : drawElements: buffer used as vertex attrib and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : buffer used as vertex attrib and tf simultaneously
PASS should be the same as before as nothing has executed
Test UNIFORM_BUFFER
PASS getError was expected value: INVALID_OPERATION : drawArrays: buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : drawElements: buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: NO_ERROR : drawArrays: tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : drawElements: tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : buffer is no longer bound for transform feedback
Test TF buffer bound to target unused by draw
PASS getError was expected value: INVALID_OPERATION : tf enabled
PASS getError was expected value: NO_ERROR : drawArrays: tf disabled
PASS getError was expected value: NO_ERROR : drawElements: tf disabled
Test TF buffer bound to disabled vertex attrib
PASS getError was expected value: NO_ERROR : tf disabled, draw should succeed
PASS getError was expected value: NO_ERROR : tf disabled, draw should succeed
With draw functions ()=>gl.drawArrays(gl.POINTS, 0, 4) and ()=>gl.drawRangeElements(gl.POINTS, 0, 3, 4, gl.UNSIGNED_SHORT, 0)
Test baseline
PASS getError was expected value: NO_ERROR : bufferData to TRANSFORM_FEEDBACK_BUFFER
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test generic bind point set to null
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test generic bind point set to vertex buffer
PASS getError was expected value: NO_ERROR : drawElements should be successful
PASS getError was expected value: NO_ERROR : transform feedback should be successful
PASS buffer should match expected values
Test ARRAY_BUFFER
PASS getError was expected value: INVALID_OPERATION : drawArrays: buffer used as vertex attrib and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : drawElements: buffer used as vertex attrib and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : buffer used as vertex attrib and tf simultaneously
PASS should be the same as before as nothing has executed
Test UNIFORM_BUFFER
PASS getError was expected value: INVALID_OPERATION : drawArrays: buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : drawElements: buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: INVALID_OPERATION : buffer used as uniform buffer and tf simultaneously
PASS getError was expected value: NO_ERROR : drawArrays: tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : drawElements: tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : tf buffer not used as uniform buffer anymore
PASS getError was expected value: NO_ERROR : buffer is no longer bound for transform feedback
Test TF buffer bound to target unused by draw
PASS getError was expected value: INVALID_OPERATION : tf enabled
PASS getError was expected value: NO_ERROR : drawArrays: tf disabled
PASS getError was expected value: NO_ERROR : drawElements: tf disabled
Test TF buffer bound to disabled vertex attrib
PASS getError was expected value: NO_ERROR : tf disabled, draw should succeed
PASS getError was expected value: NO_ERROR : tf disabled, draw should succeed
Non-drawing tests
Test bufferData
PASS getError was expected value: NO_ERROR : bufferData to TRANSFORM_FEEDBACK_BUFFER
PASS getError was expected value: INVALID_OPERATION : bufferData with double bound buffer
With TRANSFORM_FEEDBACK_BUFFER generic bind point value ()=>null
Test PIXEL_UNPACK_BUFFER
PASS getError was expected value: NO_ERROR : PIXEL_UNPACK_BUFFER is not bound for transform feedback
PASS getError was expected value: INVALID_OPERATION : PIXEL_UNPACK_BUFFER is bound for transform feedback
Test PIXEL_PACK_BUFFER
PASS getError was expected value: NO_ERROR : PIXEL_PACK_BUFFER is not bound for transform feedback
PASS getError was expected value: INVALID_OPERATION : PIXEL_PACK_BUFFER is bound for transform feedback
Test bufferData family with tf object bound
PASS getError was expected value: INVALID_OPERATION : bufferData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : bufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : getBufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : copyBufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : copyBufferSubData with double bound buffer
Test bufferData family with tf object unbound
PASS getError was expected value: NO_ERROR : bufferData should succeed
PASS getError was expected value: NO_ERROR : bufferSubData should succeed
PASS getError was expected value: NO_ERROR : getBufferSubData should succeed
PASS getError was expected value: NO_ERROR : copyBufferSubData should succeed
PASS getError was expected value: NO_ERROR : copyBufferSubData should succeed
With TRANSFORM_FEEDBACK_BUFFER generic bind point value ()=>tfBuffer
Test PIXEL_UNPACK_BUFFER
PASS getError was expected value: NO_ERROR : PIXEL_UNPACK_BUFFER is not bound for transform feedback
PASS getError was expected value: INVALID_OPERATION : PIXEL_UNPACK_BUFFER is bound for transform feedback
Test PIXEL_PACK_BUFFER
PASS getError was expected value: NO_ERROR : PIXEL_PACK_BUFFER is not bound for transform feedback
PASS getError was expected value: INVALID_OPERATION : PIXEL_PACK_BUFFER is bound for transform feedback
Test bufferData family with tf object bound
PASS getError was expected value: INVALID_OPERATION : bufferData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : bufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : getBufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : copyBufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : copyBufferSubData with double bound buffer
Test bufferData family with tf object unbound
PASS getError was expected value: NO_ERROR : bufferData should succeed
PASS getError was expected value: NO_ERROR : bufferSubData should succeed
PASS getError was expected value: NO_ERROR : getBufferSubData should succeed
PASS getError was expected value: NO_ERROR : copyBufferSubData should succeed
PASS getError was expected value: NO_ERROR : copyBufferSubData should succeed
With TRANSFORM_FEEDBACK_BUFFER generic bind point value ()=>vertexBuffer
Test PIXEL_UNPACK_BUFFER
PASS getError was expected value: NO_ERROR : PIXEL_UNPACK_BUFFER is not bound for transform feedback
PASS getError was expected value: INVALID_OPERATION : PIXEL_UNPACK_BUFFER is bound for transform feedback
Test PIXEL_PACK_BUFFER
PASS getError was expected value: NO_ERROR : PIXEL_PACK_BUFFER is not bound for transform feedback
PASS getError was expected value: INVALID_OPERATION : PIXEL_PACK_BUFFER is bound for transform feedback
Test bufferData family with tf object bound
PASS getError was expected value: INVALID_OPERATION : bufferData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : bufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : getBufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : copyBufferSubData with double bound buffer
FAIL getError expected: INVALID_OPERATION. Was INVALID_VALUE : copyBufferSubData with double bound buffer
Test bufferData family with tf object unbound
PASS getError was expected value: NO_ERROR : bufferData should succeed
PASS getError was expected value: NO_ERROR : bufferSubData should succeed
PASS getError was expected value: NO_ERROR : getBufferSubData should succeed
PASS getError was expected value: NO_ERROR : copyBufferSubData should succeed
PASS getError was expected value: NO_ERROR : copyBufferSubData should succeed
PASS successfullyParsed is true
TEST COMPLETE
Kimmo Kinnunen
At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56
Radar WebKit Bug Importer
<rdar://problem/75774492>
EWS
Committed 253210@main (4c366686ccd2): <https://commits.webkit.org/253210@main>
Reviewed commits have been landed. Closing PR #3087 and removing active labels.