Bug 223358 - webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails
Summary: webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebGL (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: webgl2conformance
  Show dependency treegraph
 
Reported: 2021-03-17 00:46 PDT by Kimmo Kinnunen
Modified: 2022-08-08 08:04 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kimmo Kinnunen 2021-03-17 00:46:55 PDT
webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails
Comment 1 Kimmo Kinnunen 2021-03-17 00:55:52 PDT
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
Comment 2 Kimmo Kinnunen 2021-03-17 01:45:38 PDT
At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56
Comment 3 Radar WebKit Bug Importer 2021-03-24 00:47:14 PDT
<rdar://problem/75774492>
Comment 4 EWS 2022-08-08 08:04:39 PDT
Committed 253210@main (4c366686ccd2): <https://commits.webkit.org/253210@main>

Reviewed commits have been landed. Closing PR #3087 and removing active labels.