<?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>230749</bug_id>
          
          <creation_ts>2021-09-24 05:52:48 -0700</creation_ts>
          <short_desc>REGRESSION (Safari 15): Poor WebGL performance on https://downloads.scirra.com/labs/particles</short_desc>
          <delta_ts>2022-03-18 16:50:44 -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>ANGLE</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=232905</see_also>
          <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>231180</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ashley Gullen">ashley</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>ap</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fielding</cc>
    
    <cc>gman</cc>
    
    <cc>kbr</cc>
    
    <cc>kevin_neal</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>le.hoang.q</cc>
    
    <cc>osoker008</cc>
    
    <cc>rdavey</cc>
    
    <cc>tjkoury</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796854</commentid>
    <comment_count>0</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-24 05:52:48 -0700</bug_when>
    <thetext>Safari 15 appears to have a significant performance regression rendering points in WebGL relative to Safari 14. Perhaps this is related to the new Metal backend.

Demo URL: https://downloads.scirra.com/labs/particles/

On an iPad Pro with Safari 15, this starts off very slow, around 12 FPS. There are only a few hundred point sprites being rendered, which should be well within the capability of the hardware. It seems to gradually warm up and end up rendering at either 30 FPS or 60 FPS. The CPU measurement (based on timing how long is spent in JS execution) looks very high.

Conversely, an iPhone 7 Plus with iOS 14.7.1, and a Pixel 3 running Chrome for Android, both run the same demo at a steady 60 FPS right from the start. Safari 15 clearly has unexpectedly bad performance in this case.

In our engine, the particles are drawn with gl.drawArrays(gl.POINTS, ...). The GLSL references both gl_PointSize and gl_PointCoord. We have not found any other performance issues with any of our other WebGL content. I speculate that this points to a performance regression specifically with point rendering in Safari 15&apos;s new Metal backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796857</commentid>
    <comment_count>1</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-24 06:03:15 -0700</bug_when>
    <thetext>Hmm, actually forcing a normal quads rendering path does not seem to improve performance much. So perhaps this is not to do with gl.POINTS after all. I&apos;ll leave it up to a browser engineer to profile!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796863</commentid>
    <comment_count>2</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-24 06:30:24 -0700</bug_when>
    <thetext>Here&apos;s the equivalent demo rendering with quads instead of points: https://downloads.scirra.com/labs/particles-quads/

For unrelated reasons, we already have a quad draw path for particles, so in this test I&apos;ve just flipped the flag to use that. This will instead use lots of calls to gl.drawElements(gl.TRIANGLES, ...) with an index buffer. It&apos;s less efficient with draw calls than our points rendering path, but it still runs at 60 FPS on both the iPhone 7 Plus with iOS 14.7.1 and the Pixel 3, and is still very slow on the iPad Pro with Safari 15. In other words, the same performance characteristics as before.

We need both paths to be fast for Construct content, as we use both rendering techniques depending on the content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796865</commentid>
    <comment_count>3</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-24 06:33:17 -0700</bug_when>
    <thetext>One more thing, do let me know if you can identify a workaround - if possible I&apos;m keen to update our engine to avoid the performance cliff for the time being (assuming it will be 6 months until the next Safari update rolls out).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796889</commentid>
    <comment_count>4</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-24 08:20:48 -0700</bug_when>
    <thetext>Thanks for the report! I tried recent build, and it seems to work 60fps.
If the demo uses index buffers, the root cause might have been bug 230107.

If you want to further report observations:
- Use Settings-&gt;General-&gt;Information to check which iPad you have, and report the model name.
- Check if &quot;WebGL via Metal&quot; == Off has an effect on the FPS. You find the setting from Settings -&gt; Safari -&gt; Advanced -&gt; Experimental settings -&gt; WebGL via Metal.
Remember to turn it back on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796932</commentid>
    <comment_count>5</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-24 10:12:54 -0700</bug_when>
    <thetext>The iPad Pro with Safari 15 that exhibits poor performance is an &quot;iPad Pro (12.9-inch)&quot;, model number ML0H2ZP/A.

I tried turning off &quot;WebGL via Metal&quot; as advised, but it didn&apos;t seem to make much difference. Both samples still run very poorly. I&apos;m not sure if the device needs a reboot in between or something?

I&apos;d also point out the first sample uses dl.drawArrays(gl.POINTS) and does not make use of an index buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797097</commentid>
    <comment_count>6</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2021-09-24 17:28:49 -0700</bug_when>
    <thetext>&gt; This will instead use lots of calls to gl.drawElements(gl.TRIANGLES, ...) with an index buffer. It&apos;s less efficient with draw calls than our points rendering path,

Not a bug fix but you can emulate points with instancing and no extra data (well you need a single unitQuad. You&apos;ll get the benefit that there&apos;s no limit to their size and their offscreen clipping will be consistent across devices, something you don&apos;t get with gl.POINTS

https://jsgist.org/?src=535da7687726e14dc26884e085de7629</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797312</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-09-26 14:35:27 -0700</bug_when>
    <thetext>&gt; The iPad Pro with Safari 15 that exhibits poor performance is an &quot;iPad Pro (12.9-inch)&quot;, model number ML0H2ZP/A.

This is the original iPad Pro from 2015. I have this model with iOS 14.6 installed, and can confirm that it renders at 60 FPS according to what the webpage measures.

&gt; If the demo uses index buffers, the root cause might have been bug 230107.

I don&apos;t think that I can easily get such a build to try out at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797456</commentid>
    <comment_count>8</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-27 07:59:51 -0700</bug_when>
    <thetext>@Gregg - is there any evidence instancing actually performs better in Safari 15? The performance pitfall also seems to apply to just quads, and since it&apos;s not clear why or when the performance pitfall happens, it seems it could also affect instancing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797508</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-27 09:19:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/83576271&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797696</commentid>
    <comment_count>10</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2021-09-27 16:23:57 -0700</bug_when>
    <thetext>Sorry, I didn&apos;t mean to imply that solution solves this particular perf issue. 

Instead I just meant to point out, if you&apos;re using points, as the demo linked above shows then 

(1) lots of your users are having those images disappear when their center hits the edge of the view and others are not. You really shouldn&apos;t be using points at all if you want things to run the same across devices. Checking my own devices I can see the particles are disappearing early on my AMD Mac but moving offscreen smoothly on my NVidia PC.

(2) emulating points is trivial, solves that issue, and only requires a single draw call, same as POINTS, so whatever overhead there is per draw call should disappear  ... separate from any perf bugs in WebKit, ANGLE, the driver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797700</commentid>
    <comment_count>11</comment_count>
    <who name="Richard Davey">rdavey</who>
    <bug_when>2021-09-27 16:29:52 -0700</bug_when>
    <thetext>We&apos;re seeing an inconsistent but significant performance decrease in games made with our library (Phaser 3). Games that run at 60fps solid under iOS14 now struggle to hit 20fps. The inconsistency is that it doesn&apos;t impact them all, so it can&apos;t be our default shaders. We also don&apos;t use GL_POINTS at all, so it&apos;s unrelated to that. We have simple quads and index buffers.

I will start trying to debug this tomorrow and produce a test case for you but just wanted to add this is a very real issue. It&apos;s also not device-specific as we&apos;ve had reports from across pretty much all modern Apple hardware. It&apos;s almost as if something forces Safari into low-power mode, even though that is disabled in the General Settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797706</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-09-27 16:43:25 -0700</bug_when>
    <thetext>&gt; Games that run at 60fps solid under iOS14 now struggle to hit 20fps. 

Please file a new bug about that, unless you are very certain that it&apos;s the same root cause as with https://downloads.scirra.com/labs/particles/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797839</commentid>
    <comment_count>13</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-28 05:21:00 -0700</bug_when>
    <thetext>@Gregg - I tried hacking together code using instancing instead, and it&apos;s also still slow. So I don&apos;t think instancing has anything to do with the performance issue reported here.

I think the issue title might be misleading now - the test case appears to show a serious performance regression in Safari 15 with points rendering, indexed quads, and instancing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797862</commentid>
    <comment_count>14</comment_count>
    <who name="Richard Davey">rdavey</who>
    <bug_when>2021-09-28 06:20:39 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #12)
&gt; &gt; Games that run at 60fps solid under iOS14 now struggle to hit 20fps. 
&gt; 
&gt; Please file a new bug about that, unless you are very certain that it&apos;s the
&gt; same root cause as with https://downloads.scirra.com/labs/particles/

If it turns out to be different, I will. However, as no one actually knows what causes this in this issue yet, it&apos;s too early to say. My guess is that&apos;s it&apos;s all related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797865</commentid>
    <comment_count>15</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-09-28 06:26:59 -0700</bug_when>
    <thetext>Edited issue title myself as it does not appear to be specific to gl.POINTS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798273</commentid>
    <comment_count>16</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-29 05:44:21 -0700</bug_when>
    <thetext>Note: the original report is about bad perf on startup, e.g. slow frame rate during first 10 secs or so.
I can repro the slowness during startup on said iPad Pro model.
Posted the trace to the rdar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798311</commentid>
    <comment_count>17</comment_count>
    <who name="tjkoury@gmail.com">tjkoury</who>
    <bug_when>2021-09-29 07:18:16 -0700</bug_when>
    <thetext>Seeing the same kind of performance hit. FPS are cut in half on all platforms (MacBook, iPhone, iPad):

 https://celestrak.com/cesium/orbit-viz.php?tle=/pub/TLE/catalog.txt&amp;satcat=/pub/satcat.txt&amp;referenceFrame=1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798422</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-09-29 10:08:47 -0700</bug_when>
    <thetext>&gt;  Seeing the same kind of performance hit. FPS are cut in half on all platforms (MacBook, iPhone, iPad):

Please file a new bug report about this. Discussing all WebGL issues in one report makes it LESS likely that they will be fixed soon (because of inevitable confusion), not more likely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808359</commentid>
    <comment_count>19</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-25 05:51:38 -0700</bug_when>
    <thetext>This is most likely due to the same root cause as bug 231607.
The test case appears to ramp up the amount of vertices drawn with drawArrays.
This causes the conversion attribute buffers to be re-allocated for each draw.

To work around the issue, you could try to store each vertex attribute in a separate buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808400</commentid>
    <comment_count>20</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2021-10-25 08:06:02 -0700</bug_when>
    <thetext>IIRC, in the provided demos, each vertex attribute already uses its own separate buffer. So I don&apos;t think that suggested workaround will help here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808816</commentid>
    <comment_count>21</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-26 04:15:08 -0700</bug_when>
    <thetext>Thanks for the info.
Yes, I can see the root cause is not that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808818</commentid>
    <comment_count>22</comment_count>
      <attachid>442478</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-26 04:25:05 -0700</bug_when>
    <thetext>Created attachment 442478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808819</commentid>
    <comment_count>23</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-10-26 04:26:26 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808821</commentid>
    <comment_count>24</comment_count>
      <attachid>442479</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-26 04:27:37 -0700</bug_when>
    <thetext>Created attachment 442479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808951</commentid>
    <comment_count>25</comment_count>
      <attachid>442479</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-10-26 11:19:24 -0700</bug_when>
    <thetext>Comment on attachment 442479
Patch

Fantastic diagnosis Kimmo. Let&apos;s make sure this gets upstreamed. r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808961</commentid>
    <comment_count>26</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-10-26 11:35:05 -0700</bug_when>
    <thetext>Filed:

Metal: Upstream index buffer cache mapping performance improvement 
https://bugs.chromium.org/p/angleproject/issues/detail?id=6620

about upstreaming this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809146</commentid>
    <comment_count>27</comment_count>
    <who name="Le Hoang Quyen">le.hoang.q</who>
    <bug_when>2021-10-26 18:59:30 -0700</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #24)
&gt; Created attachment 442479 [details]
&gt; Patch

Hi, I am interested in this finding.

Would it be more correct to change this condition:
```
if (!noSync &amp;&amp; isCPUReadMemNeedSync())
```
to:
```
if (!noSync &amp;&amp; (isCPUReadMemNeedSync() || !readonly))
```

?

The synchronization should be done if `noSync` is not requested AND
1. either the buffer&apos;s CPU memory needs synchronization due to ongoing GPU modifications.
2. or we are mapping within an intention to WRITE (even if the GPU is not modifying it).

* If we don&apos;t synchronize in the 2nd case then the buffer would be modified while its old content is being drawn by the GPU -&gt; undefined results.

* `isCPUReadMemNeedSync()` flag is only used to indicate that the buffer is being modified by GPU and this modification needs to be made visible to CPU in order for it to read the update-to-date data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809151</commentid>
    <comment_count>28</comment_count>
    <who name="Le Hoang Quyen">le.hoang.q</who>
    <bug_when>2021-10-26 19:05:20 -0700</bug_when>
    <thetext>btw, I didn&apos;t notice that ANGLE needs to update the index range every time `drawElements` is called with a new range.
Previously I mostly worked with &quot;normal&quot; mode OpenGL of ANGLE.
Apparently, ANGLE will always do index range check when it operates in &quot;WebGL compatibility&quot; mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809238</commentid>
    <comment_count>29</comment_count>
      <attachid>442584</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-27 06:26:01 -0700</bug_when>
    <thetext>Created attachment 442584
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809239</commentid>
    <comment_count>30</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-27 06:27:28 -0700</bug_when>
    <thetext>(In reply to Le Hoang Quyen from comment #27)
&gt; (In reply to Kimmo Kinnunen from comment #24)
&gt; &gt; Created attachment 442479 [details]
&gt; &gt; Patch
&gt; 
&gt; Hi, I am interested in this finding.
&gt; 
&gt; Would it be more correct to change this condition:
&gt; ```
&gt; if (!noSync &amp;&amp; isCPUReadMemNeedSync())
&gt; ```
&gt; to:
&gt; ```
&gt; if (!noSync &amp;&amp; (isCPUReadMemNeedSync() || !readonly))
&gt; ```
&gt; 

Yes, exactly! Thanks for review. (I couldn&apos;t put you as the reviewer due to tooling, sorry).

Taking the liberty to land with Ken&apos;s approval and above amends.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809318</commentid>
    <comment_count>31</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-27 10:43:45 -0700</bug_when>
    <thetext>Committed r284927 (243598@main): &lt;https://commits.webkit.org/243598@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442584.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817438</commentid>
    <comment_count>32</comment_count>
    <who name="osoker008">osoker008</who>
    <bug_when>2021-11-23 04:16:52 -0800</bug_when>
    <thetext>How long time does is take for this BugFixed Update in user&apos;s iOS Safari 15?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827704</commentid>
    <comment_count>33</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2022-01-03 06:35:39 -0800</bug_when>
    <thetext>This issue is marked fixed but it still reproduces in Safari 15.2. Is it really fixed? Should I file a new issue again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827754</commentid>
    <comment_count>34</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-01-03 08:38:27 -0800</bug_when>
    <thetext>This fix is not yet included in any Safari release or beta (other than Safari Technology Preview for macOS). We can not comment about future releases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827781</commentid>
    <comment_count>35</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2022-01-03 10:14:44 -0800</bug_when>
    <thetext>I know this is probably out of your hands, but it is a pretty developer-hostile policy. It leaves us having to manually test every release that comes out to find out for ourselves as nobody at Apple is allowed to tell us anything about when anything will actually ship.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442478</attachid>
            <date>2021-10-26 04:25:05 -0700</date>
            <delta_ts>2021-10-26 04:27:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230749-20211026142503.patch</filename>
            <type>text/plain</type>
            <size>2256</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOTU3M2NiMTYwMjM4Mzg3YTQ5YjA2MGNhZDQ2OWJmMjRiYmQ4MDMyMy4uOTcxZjRkYTk0Yzkz
ODNlNTZlODg4OWQyMWZhNjBjNTBmYmU2ODgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTI2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAoU2FmYXJpIDE1KTogUG9vciBXZWJH
TCBwZXJmb3JtYW5jZSBvbiBodHRwczovL2Rvd25sb2Fkcy5zY2lycmEuY29tL2xhYnMvcGFydGlj
bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3
NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTc2MjcxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBzaXRlIHdvdWxkIGRyYXcgaW5kZXhl
ZCBwZXIgZnJhbWUgd2l0aCBlYWNoIGZyYW1lIGluY3JlYXNpbmcgdGhlIHNpemUgb2YgdGhlIGRy
YXcuCisgICAgICAgIFRoaXMgd291bGQgY2F1c2UgaW5kZXggYnVmZmVyIHJhbmdlIGNhY2hlIHVw
ZGF0ZSBmb3IgZWFjaCBkcmF3LgorICAgICAgICBSYW5nZSBjb21wdXRhdGlvbiBuZWVkcyB0byBs
b29rIGluc2lkZSB0aGUgaW5kZXggYnVmZmVyLgorICAgICAgICBNYXBwaW5nIGEgaW5kZXggYnVm
ZmVyIGZvciByZWFkIHdvdWxkIGNhdXNlIGNvbW1hbmQgYnVmZmVyIGZsdXNoIGZvciBlYWNoIGNv
bXB1dGF0aW9uLAorICAgICAgICBzaW5jZSBwcmV2aW91cyBmcmFtZSB3b3VsZCBoYXZlIHVzZWQg
dGhlIGluZGV4IGJ1ZmZlciBmb3IgcmVhZGluZy4gVGhpcyB3b3VsZCBjYXVzZQorICAgICAgICBw
ZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBmb3IgdGhlIGR1cmF0aW9uIHdoZXJlIHRoZSByYW5nZSBj
YWNoZSB3b3VsZCBuZWVkIHVwZGF0ZS4KKworICAgICAgICBTaW5jZSB0aGUgYnVmZmVyIGlzIHJl
YWQgYnkgdGhlIGRyYXcgYnV0IG5vdCB3cml0dGVuLCB0aGUgbWFwIHNob3VsZCBiZSBhIG5vLW9w
LgorICAgICAgICBDb25zdWx0IHRoZSAiQ1BVIG1lbW9yeSBuZWVkcyBzeW5jaHJvbml6aW5nIiBm
bGFnIG9mIHRoZSBtdGw6OlJlc291cmNlIHdoZW4KKyAgICAgICAgbWFwcGluZy4gT25seSBzeW5j
aHJvbml6ZSB3aXRoIEdQVSBpZiB0aGUgbWVtb3J5IG5lZWRzIHN5bmNocm9uaXppbmcuCisKKyAg
ICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbToKKyAg
ICAgICAgKHJ4OjptdGw6OkJ1ZmZlcjo6bWFwV2l0aE9wdCk6CisKIDIwMjEtMTAtMjUgIEt5bGUg
UGlkZGluZ3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChpT1MgMTUpLCBzYWZhcmk2MDQuMTogQ291bGQgbm90IGxpbmsgdGhlIHNoYWRlciBwcm9ncmFt
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tCmluZGV4IDMzOTY0ZjYxNzMw
MWVkNmU2M2Y3NWY3ZGYxYjJjMDY2NzQyODNjZjMuLmI4NmQ5NjQxZmE1ZmFiMGViOWE5Y2VkYjE2
MWQ0MzM2YzU2MTI5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1t
CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCB1aW50OF90ICpCdWZmZXI6Om1hcFdpdGhPcHQoQ29udGV4
dE10bCAqY29udGV4dCwgYm9vbCByZWFkb25seSwgYm9vbCBub1N5bmMpCiB7CiAgICAgbU1hcFJl
YWRPbmx5ID0gcmVhZG9ubHk7CiAKLSAgICBpZiAoIW5vU3luYykKKyAgICBpZiAoIW5vU3luYyAm
JiBpc0NQVVJlYWRNZW1OZWVkU3luYygpKQogICAgIHsKICAgICAgICAgQ29tbWFuZFF1ZXVlICZj
bWRRdWV1ZSA9IGNvbnRleHQtPmNtZFF1ZXVlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442479</attachid>
            <date>2021-10-26 04:27:37 -0700</date>
            <delta_ts>2021-10-27 06:25:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230749-20211026142735.patch</filename>
            <type>text/plain</type>
            <size>2258</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOTU3M2NiMTYwMjM4Mzg3YTQ5YjA2MGNhZDQ2OWJmMjRiYmQ4MDMyMy4uMDU3M2UzNjQ0MzMx
MGMwYTdhMWMwNmZkMzVkYTcwNTNjNjQ3NjBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTI2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAoU2FmYXJpIDE1KTogUG9vciBXZWJH
TCBwZXJmb3JtYW5jZSBvbiBodHRwczovL2Rvd25sb2Fkcy5zY2lycmEuY29tL2xhYnMvcGFydGlj
bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3
NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTc2MjcxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBzaXRlIHdvdWxkIGRyYXcgaW5kZXhl
ZCBwZXIgZnJhbWUgd2l0aCBlYWNoIGZyYW1lIGluY3JlYXNpbmcgdGhlIHNpemUgb2YgdGhlIGRy
YXcuCisgICAgICAgIFRoaXMgd291bGQgY2F1c2UgaW5kZXggYnVmZmVyIHJhbmdlIGNhY2hlIHVw
ZGF0ZSBmb3IgZWFjaCBkcmF3LgorICAgICAgICBSYW5nZSBjb21wdXRhdGlvbiBuZWVkcyB0byBs
b29rIGluc2lkZSB0aGUgaW5kZXggYnVmZmVyLgorICAgICAgICBNYXBwaW5nIHRoZSBpbmRleCBi
dWZmZXIgZm9yIHJlYWQgd291bGQgY2F1c2UgY29tbWFuZCBidWZmZXIgZmx1c2ggZm9yIGVhY2gg
Y29tcHV0YXRpb24sCisgICAgICAgIHNpbmNlIHByZXZpb3VzIGZyYW1lIHdvdWxkIGhhdmUgdXNl
ZCB0aGUgaW5kZXggYnVmZmVyIGZvciByZWFkaW5nLiBUaGlzIHdvdWxkIGNhdXNlCisgICAgICAg
IHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGZvciB0aGUgZHVyYXRpb24gd2hlcmUgdGhlIHJhbmdl
IGNhY2hlIHdvdWxkIG5lZWQgdXBkYXRlLgorCisgICAgICAgIFNpbmNlIHRoZSBidWZmZXIgaXMg
cmVhZCBieSB0aGUgZHJhdyBidXQgbm90IHdyaXR0ZW4sIHRoZSBtYXAgc2hvdWxkIGJlIGEgbm8t
b3AuCisgICAgICAgIENvbnN1bHQgdGhlICJDUFUgbWVtb3J5IG5lZWRzIHN5bmNocm9uaXppbmci
IGZsYWcgb2YgdGhlIG10bDo6UmVzb3VyY2Ugd2hlbgorICAgICAgICBtYXBwaW5nLiBPbmx5IHN5
bmNocm9uaXplIHdpdGggR1BVIGlmIHRoZSBtZW1vcnkgbmVlZHMgc3luY2hyb25pemluZy4KKwor
ICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tOgor
ICAgICAgICAocng6Om10bDo6QnVmZmVyOjptYXBXaXRoT3B0KToKKwogMjAyMS0xMC0yNSAgS3ls
ZSBQaWRkaW5ndG9uICA8a3BpZGRpbmd0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKGlPUyAxNSksIHNhZmFyaTYwNC4xOiBDb3VsZCBub3QgbGluayB0aGUgc2hhZGVyIHByb2dy
YW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZXNvdXJjZXMubW0KaW5kZXggMzM5NjRmNjE3
MzAxZWQ2ZTYzZjc1ZjdkZjFiMmMwNjY3NDI4M2NmMy4uYjg2ZDk2NDFmYTVmYWIwZWI5YTljZWRi
MTYxZDQzMzZjNTYxMjk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZXNvdXJjZXMubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZXNvdXJjZXMu
bW0KQEAgLTEwMDAsNyArMTAwMCw3IEBAIHVpbnQ4X3QgKkJ1ZmZlcjo6bWFwV2l0aE9wdChDb250
ZXh0TXRsICpjb250ZXh0LCBib29sIHJlYWRvbmx5LCBib29sIG5vU3luYykKIHsKICAgICBtTWFw
UmVhZE9ubHkgPSByZWFkb25seTsKIAotICAgIGlmICghbm9TeW5jKQorICAgIGlmICghbm9TeW5j
ICYmIGlzQ1BVUmVhZE1lbU5lZWRTeW5jKCkpCiAgICAgewogICAgICAgICBDb21tYW5kUXVldWUg
JmNtZFF1ZXVlID0gY29udGV4dC0+Y21kUXVldWUoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442584</attachid>
            <date>2021-10-27 06:26:01 -0700</date>
            <delta_ts>2021-10-27 10:43:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230749-20211027162600.patch</filename>
            <type>text/plain</type>
            <size>2274</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOTU3M2NiMTYwMjM4Mzg3YTQ5YjA2MGNhZDQ2OWJmMjRiYmQ4MDMyMy4uMjlmZGViOWY0ZDYx
MGM0OTJkMWQxMmZkYjFjNDQ4NGY3MTc3MTJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTI2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAoU2FmYXJpIDE1KTogUG9vciBXZWJH
TCBwZXJmb3JtYW5jZSBvbiBodHRwczovL2Rvd25sb2Fkcy5zY2lycmEuY29tL2xhYnMvcGFydGlj
bGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3
NDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNTc2MjcxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBUaGUgc2l0ZSB3b3VsZCBkcmF3IGluZGV4
ZWQgcGVyIGZyYW1lIHdpdGggZWFjaCBmcmFtZSBpbmNyZWFzaW5nIHRoZSBzaXplIG9mIHRoZSBk
cmF3LgorICAgICAgICBUaGlzIHdvdWxkIGNhdXNlIGluZGV4IGJ1ZmZlciByYW5nZSBjYWNoZSB1
cGRhdGUgZm9yIGVhY2ggZHJhdy4KKyAgICAgICAgUmFuZ2UgY29tcHV0YXRpb24gbmVlZHMgdG8g
bG9vayBpbnNpZGUgdGhlIGluZGV4IGJ1ZmZlci4KKyAgICAgICAgTWFwcGluZyB0aGUgaW5kZXgg
YnVmZmVyIGZvciByZWFkIHdvdWxkIGNhdXNlIGNvbW1hbmQgYnVmZmVyIGZsdXNoIGZvciBlYWNo
IGNvbXB1dGF0aW9uLAorICAgICAgICBzaW5jZSBwcmV2aW91cyBmcmFtZSB3b3VsZCBoYXZlIHVz
ZWQgdGhlIGluZGV4IGJ1ZmZlciBmb3IgcmVhZGluZy4gVGhpcyB3b3VsZCBjYXVzZQorICAgICAg
ICBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBmb3IgdGhlIGR1cmF0aW9uIHdoZXJlIHRoZSByYW5n
ZSBjYWNoZSB3b3VsZCBuZWVkIHVwZGF0ZS4KKworICAgICAgICBTaW5jZSB0aGUgYnVmZmVyIGlz
IHJlYWQgYnkgdGhlIGRyYXcgYnV0IG5vdCB3cml0dGVuLCB0aGUgbWFwIHNob3VsZCBiZSBhIG5v
LW9wLgorICAgICAgICBDb25zdWx0IHRoZSAiQ1BVIG1lbW9yeSBuZWVkcyBzeW5jaHJvbml6aW5n
IiBmbGFnIG9mIHRoZSBtdGw6OlJlc291cmNlIHdoZW4KKyAgICAgICAgbWFwcGluZy4gT25seSBz
eW5jaHJvbml6ZSB3aXRoIEdQVSBpZiB0aGUgbWVtb3J5IG5lZWRzIHN5bmNocm9uaXppbmcuCisK
KyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbToK
KyAgICAgICAgKHJ4OjptdGw6OkJ1ZmZlcjo6bWFwV2l0aE9wdCk6CisKIDIwMjEtMTAtMjUgIEt5
bGUgUGlkZGluZ3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChpT1MgMTUpLCBzYWZhcmk2MDQuMTogQ291bGQgbm90IGxpbmsgdGhlIHNoYWRlciBwcm9n
cmFtCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tCmluZGV4IDMzOTY0ZjYx
NzMwMWVkNmU2M2Y3NWY3ZGYxYjJjMDY2NzQyODNjZjMuLmZkODliODZhZDFjZWU1ZGFiNTExYjZh
ZDllNjRlYWI5NjI5ZGZlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2Vz
Lm1tCkBAIC0xMDAwLDcgKzEwMDAsNyBAQCB1aW50OF90ICpCdWZmZXI6Om1hcFdpdGhPcHQoQ29u
dGV4dE10bCAqY29udGV4dCwgYm9vbCByZWFkb25seSwgYm9vbCBub1N5bmMpCiB7CiAgICAgbU1h
cFJlYWRPbmx5ID0gcmVhZG9ubHk7CiAKLSAgICBpZiAoIW5vU3luYykKKyAgICBpZiAoIW5vU3lu
YyAmJiAoaXNDUFVSZWFkTWVtTmVlZFN5bmMoKSB8fCAhcmVhZG9ubHkpKQogICAgIHsKICAgICAg
ICAgQ29tbWFuZFF1ZXVlICZjbWRRdWV1ZSA9IGNvbnRleHQtPmNtZFF1ZXVlKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>