<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>223358</bug_id>
          
          <creation_ts>2021-03-17 00:46:55 -0700</creation_ts>
          <short_desc>webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails</short_desc>
          <delta_ts>2022-08-08 08:04:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>222812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1740479</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-17 00:46:55 -0700</bug_when>
    <thetext>webgl/2.0.1/conformance2/transform_feedback/simultaneous_binding.html fails</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740489</commentid>
    <comment_count>1</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-17 00:55:52 -0700</bug_when>
    <thetext>https://www.khronos.org/registry/webgl/sdk/tests/conformance2/transform_feedback/simultaneous_binding.html?webglVersion=2&amp;quiet=0&amp;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 &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.


PASS WebGL context exists
PASS getError was expected value: NO_ERROR : linking transform feedback shader should not set an error
With draw functions ()=&gt;gl.drawArrays(gl.POINTS, 0, 4) and ()=&gt;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 ()=&gt;gl.drawArraysInstanced(gl.POINTS, 0, 4, 1) and ()=&gt;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 ()=&gt;gl.drawArrays(gl.POINTS, 0, 4) and ()=&gt;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 ()=&gt;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 ()=&gt;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 ()=&gt;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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740563</commentid>
    <comment_count>2</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-03-17 01:45:38 -0700</bug_when>
    <thetext>At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743204</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-24 00:47:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/75774492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889674</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-08 08:04:39 -0700</bug_when>
    <thetext>Committed 253210@main (4c366686ccd2): &lt;https://commits.webkit.org/253210@main&gt;

Reviewed commits have been landed. Closing PR #3087 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>