<?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>235845</bug_id>
          
          <creation_ts>2022-01-28 17:57:53 -0800</creation_ts>
          <short_desc>REGRESSION: iOS 15.4b1 – gl.texture2D uploads not working</short_desc>
          <delta_ts>2022-10-08 12:19:50 -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>Safari 15</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>rigel</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>connell</cc>
    
    <cc>dino</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>nb</cc>
    
    <cc>simontaylor1</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1835205</commentid>
    <comment_count>0</comment_count>
    <who name="">rigel</who>
    <bug_when>2022-01-28 17:57:53 -0800</bug_when>
    <thetext>In iOS 15.4b1 (tested on iPhone 11), using the captureStream() method to set the srcObject of the &lt;video&gt; element is not working, resulting in a black screen.

Minimum repro test: https://webrtc.github.io/samples/src/content/capture/video-video/
Expectation: the video on the left is streamed to the &lt;video&gt; on the right
Result: a black screen instead of the video stream

link to image: https://imgur.com/a/TCRANaP

As a result of this bug, all 8th Wall and Zappar sites are broken impacting major brands including: Marvel, LA Dodgers, Universal Pictures, MGM, Xbox, &amp; More

Example 1: https://aircards.8thwall.app/dodgers/
Example 2: https://idareyou.candymanmovie.com/
More examples: https://www.8thwall.com/8thwall</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835282</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-29 06:56:30 -0800</bug_when>
    <thetext>I do not think https://webrtc.github.io/samples/src/content/capture/video-video/ is expected to work in iOS. captureStream works for with a canvas source but is not implemented for video sources. The workaround is for now to use a canvas.
https://webrtc.github.io/samples/src/content/capture/canvas-video/ should be working.
@rigel, can you clarify?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835283</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-29 06:57:28 -0800</bug_when>
    <thetext>Especially can you clarify whether it is a regression or a feature request?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835352</commentid>
    <comment_count>3</comment_count>
    <who name="">rigel</who>
    <bug_when>2022-01-29 21:05:01 -0800</bug_when>
    <thetext>youenn, I just tested https://webrtc.github.io/samples/src/content/capture/video-video/ on an iOS 15.3 device and found the same behavior. I then tested https://webrtc.github.io/samples/src/content/capture/canvas-video/ on the 15.4b1 device and that test is working.

It seems this may not be the root cause of the black camera feed issue. The behavior of the example sites I listed appear the same as this bug marked as resolved: https://bugs.webkit.org/show_bug.cgi?id=230617.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835355</commentid>
    <comment_count>4</comment_count>
    <who name="">rigel</who>
    <bug_when>2022-01-29 21:17:52 -0800</bug_when>
    <thetext>To be clear, I am reporting a regression in 15.4b1, this is breaking all commercial websites I am aware of that rely on camera access and WebGL.

This link https://8th.io/fps works on iOS 15.3 but does not on iOS 15.4b1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835438</commentid>
    <comment_count>5</comment_count>
      <attachid>450383</attachid>
    <who name="Nicholas Butko">nb</who>
    <bug_when>2022-01-30 23:14:55 -0800</bug_when>
    <thetext>Created attachment 450383
Minimal WebGL Camera Pipeline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835439</commentid>
    <comment_count>6</comment_count>
    <who name="Nicholas Butko">nb</who>
    <bug_when>2022-01-30 23:16:06 -0800</bug_when>
    <thetext>I have attached a standalone repro case for this regression. For convenience, here is a link to a published version of the attached code:

https://8w.8thwall.app/webgl-camera

Per rigel@8thwall&apos;s testing:
- iOS 15.3 - Working: this sample renders a sepia camera feed.
- iOS 15.4 beta 1 - Regression: this sample just shows a white screen.

Note that because this sample uses getUserMedia, the attached files must be served with https.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835565</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-31 09:43:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/88276617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835633</commentid>
    <comment_count>8</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-31 12:22:14 -0800</bug_when>
    <thetext>Thanks for checking! Bug 230617 did not seem to make it to seed 1. Leaving this open, I&apos;ll comment more once future releases are shipping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839308</commentid>
    <comment_count>9</comment_count>
    <who name="">rigel</who>
    <bug_when>2022-02-09 11:29:44 -0800</bug_when>
    <thetext>I just tested the supplied sample link: https://8w.8thwall.app/webgl-camera on iOS 15.4b2, and while I&apos;m no longer seeing a missing camera feed, I am now seeing collections of old ghosted frames flashing between new frames. This creates a strobe-like effect seen in the video below:

https://youtu.be/iPbo-7dkESk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839606</commentid>
    <comment_count>10</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-10 05:16:04 -0800</bug_when>
    <thetext>(In reply to rigel from comment #9)
&gt; I just tested the supplied sample link: https://8w.8thwall.app/webgl-camera
&gt; on iOS 15.4b2, and while I&apos;m no longer seeing a missing camera feed, I am
&gt; now seeing collections of old ghosted frames flashing between new frames.

Thanks for re-testing. I can repro the issue in the seed build and it is fixed in trunk.

Was it the case that the test app uses the &quot;draw the video frame to alternative textures at alternative iterations&quot;? Unfortunately that triggers a long-standing edge case bug 203148. This bug is now fixed in trunk but it is not shipping in 15.4b2. 

Note, in case the app used the double-buffering scheme:

The suggested alternative, if it is only remotely possible, is to use only one texture, at least until the bug fix ships. This would be also good for memory use.


In bug 203148 given rationale for the double buffering is this:

&gt; rAF #1:
&gt; upload frame 1 to tex 1
&gt; start processing data in tex 1
&gt; rAF #2:
&gt; upload frame 2 to tex 2
&gt; start processing data in tex 2
&gt; render from tex 1 (frame 1) along with processed result
&gt; rAF #3:
&gt; upload frame 3 to tex 1
&gt; start processing data in tex 1
&gt; render from tex 2 (frame 2) along with processed result


Given the rationale that the texture is uploaded in rAF, this is actually inferior strategy to uploading it to just one texture. The browsers implement the optimization to skip uploads if nothing changes. So in this scenario, uploading to alternating textures causes extra uploads.

The above is specific to initiating the video texture uploads via rAF: If the rAF completes at 60FPS and the camera at 24, 30 fps, then there is bound to be redundant uploads.

Trunk (and maybe the seed you refer to?) has support for requestVideoFrameCallback. So theoretically with that, one could make the case for the double-buffering. However, I&apos;m not entirely convinced that the double-buffering uploads should be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839610</commentid>
    <comment_count>11</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-10 05:28:21 -0800</bug_when>
    <thetext>At least the attached minimal webgl camera pipeline test-case uses
`PIPELINE_SIZE = 10`. This would trigger bug 203148.

So on iOS, the frame rate would typically default to 30fps, and rAF is 60FPS, so from the get-go the pipeline is filled with 5 identical textures.

If you want to necessarily use multiple textures, one approach to test would be to upload 1 pixel sized sub image to each texture before uploading the video element. This would clear the buggy cache. I know it&apos;s a bit inconvenient and, probably it is quite a bit extra overhead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839611</commentid>
    <comment_count>12</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-10 05:31:48 -0800</bug_when>
    <thetext>&gt; So on iOS, the frame rate would typically default to 30fps, and rAF is
&gt; 60FPS, so from the get-go the pipeline is filled with 5 identical textures.

That went wrong.
The pipeline contains, on average, 5 unique frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839833</commentid>
    <comment_count>13</comment_count>
    <who name="Nicholas Butko">nb</who>
    <bug_when>2022-02-10 11:16:11 -0800</bug_when>
    <thetext>The rationale for a multi-texture pipeline (not double-buffering per se) is laid out above. Keeping a pipeline of textures is a requirement. In order to power the same pipeline with a single texture in getUserMedia would require a framebuffer pipeline instead, adding an extra unneeded draw-with-shader to copy the full resolution texture to a framebuffer in addition to the texture upload. Is there another pipelining paradigm that&apos;s expected to be more efficient?

video.currentTime increments by ~16ms per frame. If the framerate were lower than 60FPS, we would expect that this should not increment.

Setting `framerate: {min: 60}` improves the current sample somewhat, but still gives unacceptable visible artifacts which are also not present in iOS 15.3.

We had seen similar issues previously, which we had noted in https://bugs.webkit.org/show_bug.cgi?id=206636. It was suggested in Jan 2020 that this had been fixed, and in our testing this issue no longer reproduced in iOS 14 and above. We have since removed our workarounds for iOS Safari versions 14 and higher.

The current issue is a REGRESSION from 15.3 to 15.4 beta. The hypothesized cause for the issue only accounts for the observed regressions if 15.3 had a framerate that was always higher than 60FPS AND 15.4 beta sets a lower default AND doesn&apos;t reliably provide 60FPS at 60FPS capture.

Regardless, this is a business critical regression in iOS 15.4 beta. If the fix for https://bugs.webkit.org/show_bug.cgi?id=203148 is also expected to fix this issue, we look forward to testing in upcoming versions of iOS 15.4 beta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841619</commentid>
    <comment_count>14</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-15 01:19:18 -0800</bug_when>
    <thetext>(In reply to Nicholas Butko from comment #13)
&gt; still gives unacceptable visible artifacts which are also not present in iOS
&gt; 15.3.
&gt; The current issue is a REGRESSION from 15.3 to 15.4 beta.

You are right -- while the same bug has existed for video, it would be unfortunate if this performance improvement would bring it to user media too. I&apos;ll see what I can do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841645</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Taylor">simontaylor1</who>
    <bug_when>2022-02-15 03:32:33 -0800</bug_when>
    <thetext>That makes sense - applying the logic to skip unnecessary uploads to user media without fixing Bug 203148 too may have made this visible on sites where it wasn&apos;t before.

Kimmo&apos;s suggested texSubImage2d workaround does seem to force a &quot;full&quot; upload of the video, at least in the mp4 case from 203148 (tested on 15.2 only for now). Checking with Systrace in Instruments it looks to add minimal overhead.

// A 1-pixel array buffer
let greenPixel = new Uint8Array([0, 128, 0, 255]);

// Inside rAF loop
  gl.bindTexture(gl.TEXTURE_2D, tex2);
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, greenPixel);
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, video);

I&apos;m going to add support for user media in my test case and then update to 15.4b2 to see what&apos;s changed. Will also check out requestVideoFrameCallback, that would save unnecessary uploads at all, as well as helping to avoid 203148.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841851</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Taylor">simontaylor1</who>
    <bug_when>2022-02-15 11:55:00 -0800</bug_when>
    <thetext>I&apos;ve got 15.4b2 installed now (iPhone 12 Pro).

As suspected, Bug 203148 does now also apply to video elements with a getUserMedia MediaStream. On the plus side, the actual texImage2D is much faster now, and the workaround of setting a pixel with texSubImage2D does allow the same frame to be uploaded to multiple textures.

So not too bad overall for user media streams.

However there is a *catastrophic* performance regression with the texImage2d with the normal mp4 source. It&apos;s over 40ms per upload now! I haven&apos;t done a search to see if there&apos;s a specific bug for that. I also don&apos;t have beta Xcode installed yet so can&apos;t take a look with Systrace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841935</commentid>
    <comment_count>17</comment_count>
    <who name="Nicholas Butko">nb</who>
    <bug_when>2022-02-15 14:00:20 -0800</bug_when>
    <thetext>(In reply to Simon Taylor from comment #16)
&gt; the workaround of setting a pixel with texSubImage2D does
&gt; allow the same frame to be uploaded to multiple textures.

Thanks for confirming this workaround.

&gt; So not too bad overall for user media streams.

Since this is a regression, all websites that don&apos;t upgrade to the above workaround will see this bug. Many commercial customers choose to freeze the version of javascript libraries that their sites use for enhanced reliability and stability. Without a fix browser level fix for this regression, any such experience would suddenly break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841977</commentid>
    <comment_count>18</comment_count>
    <who name="">rigel</who>
    <bug_when>2022-02-15 15:22:39 -0800</bug_when>
    <thetext>I just updated a test device to the latest beta and this regression is still present in 15.4b3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842195</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Taylor">simontaylor1</who>
    <bug_when>2022-02-16 02:25:29 -0800</bug_when>
    <thetext>(In reply to Nicholas Butko from comment #17)
&gt; 
&gt; &gt; So not too bad overall for user media streams.
&gt; 
&gt; Since this is a regression, all websites that don&apos;t upgrade to the above
&gt; workaround will see this bug. Many commercial customers choose to freeze the
&gt; version of javascript libraries that their sites use for enhanced
&gt; reliability and stability. Without a fix browser level fix for this
&gt; regression, any such experience would suddenly break.

Yes of course, I&apos;m with you that patching all of our live sites would be a massive pain, and many previously-working sites would instantly break.

I just wanted to add a slight note of positivity that I see and appreciate the work to make MediaStream uploads faster too - it&apos;s 5x or more faster in 15.4b2 than previously in iOS 15, and now there is a patch we can apply to get our sites to work - it&apos;s a strictly better situation than beta 1, though of course still not ideal yet.

Kimmo&apos;s acknowledged it would be unfortunate to ship with this regression, so I&apos;m still hoping it will get resolved in time. I suspect the &quot;texture pool&quot; pattern is pretty common in sites applying JS/Wasm processing to MediaStreams.

I&apos;ve added Bug 236699 to track the mp4 texImage2D regression, so we can keep this one focussed on the MediaStream case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846581</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Taylor">simontaylor1</who>
    <bug_when>2022-02-28 02:20:37 -0800</bug_when>
    <thetext>I&apos;m pleased to report this is now fixed in the latest 15.4 beta 4.

Thanks Kimmo and team for getting this resolved before 15.4!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904275</commentid>
    <comment_count>21</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-10-08 12:19:50 -0700</bug_when>
    <thetext>Based on Comment 20, it seems that the issue is fixed. Hence, marking this as &quot;RESOLVED CONFIGURATION CHANGED&quot;.

Please reopen, if it is still not working. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>450383</attachid>
            <date>2022-01-30 23:14:55 -0800</date>
            <delta_ts>2022-01-30 23:14:55 -0800</delta_ts>
            <desc>Minimal WebGL Camera Pipeline</desc>
            <filename>webgl-camera.zip</filename>
            <type>application/octet-stream</type>
            <size>5107</size>
            <attacher name="Nicholas Butko">nb</attacher>
            
              <data encoding="base64">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
AAAAAAAAAAAAAAAADQAgAAAAAAAAAAAA7UEAAAAAd2ViZ2wtY2FtZXJhL1VUDQAHIoz3YSiM92Em
jPdhdXgLAAEE9QEAAAQUAAAAUEsBAhQDFAAIAAgAprE+VI8PMf7RDQAA2ysAABwAIAAAAAAAAAAA
AKSBSwAAAHdlYmdsLWNhbWVyYS93ZWJnbC1jYW1lcmEuanNVVA0AB/h992EkjPdhIoz3YXV4CwAB
BPUBAAAEFAAAAFBLAQIUAxQACAAIAKaxPlSnQh+CQQEAAOQBAAAnACAAAAAAAAAAAACkgYYOAABf
X01BQ09TWC93ZWJnbC1jYW1lcmEvLl93ZWJnbC1jYW1lcmEuanNVVA0AB/h992EkjPdhLoz3YXV4
CwABBPUBAAAEFAAAAFBLAQIUAxQACAAIAPOxPlRRSD4/RQAAAFYAAAAeACAAAAAAAAAAAACkgTwQ
AAB3ZWJnbC1jYW1lcmEvd2ViZ2wtY2FtZXJhLmh0bWxVVA0AB4t+92EGjPdhIoz3YXV4CwABBPUB
AAAEFAAAAFBLAQIUAxQACAAIAPOxPlRCskUgXAAAALAAAAApACAAAAAAAAAAAACkge0QAABfX01B
Q09TWC93ZWJnbC1jYW1lcmEvLl93ZWJnbC1jYW1lcmEuaHRtbFVUDQAHi373YQaM92EujPdhdXgL
AAEE9QEAAAQUAAAAUEsFBgAAAAAFAAUAHQIAAMARAAAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>