<?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>203650</bug_id>
          
          <creation_ts>2019-10-30 18:16:56 -0700</creation_ts>
          <short_desc>Unbounded memory growth due to WebGL buffers not being freed</short_desc>
          <delta_ts>2024-01-17 01:50:36 -0800</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 12</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.14</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arindam Bose">arindam.bose</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>justin_fan</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1585698</commentid>
    <comment_count>0</comment_count>
      <attachid>382401</attachid>
    <who name="Arindam Bose">arindam.bose</who>
    <bug_when>2019-10-30 18:16:56 -0700</bug_when>
    <thetext>Created attachment 382401
GL delete buffer memory growth example.

This is coming through from a bug report on Mapbox GL-JS
https://github.com/mapbox/mapbox-gl-js/issues/8771

Safari is seeing unbounded memory growth in interactions wherein the user is constantly loading and unloading tiles by panning or zooming the interactive map.
We were able to run use the Xcode instruments allocation tracker on a debug build of WebKit, and found that calls to `WebGLRenderingContext.deleteBuffer` was not freeing up memory.

We were able to confirm this by creating an isolated example page that repeatedly creates-&gt;uploads and then deletes a vertex buffer every frame, the example page is attached.
The process for the tab grows upto 6gb of memory consumption in 30s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585804</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-30 23:29:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/56772525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2005554</commentid>
    <comment_count>2</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2024-01-17 01:50:36 -0800</bug_when>
    <thetext>Thank you for the report. This is fixed now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>382401</attachid>
            <date>2019-10-30 18:16:56 -0700</date>
            <delta_ts>2019-10-30 18:16:56 -0700</delta_ts>
            <desc>GL delete buffer memory growth example.</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>1508</size>
            <attacher name="Arindam Bose">arindam.bose</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgICA8aGVhZD4KICAgICAgICA8dGl0bGU+IFNhZmFyaSBXZWJHTCBidWZmZXIgbGVh
azwvdGl0bGU+CiAgICA8L2hlYWQ+CiAgICA8Ym9keT4KICAgICAgICA8Y2FudmFzIHdpZHRoPTgw
MCBoZWlnaHQ9ODAwIGlkPSd0ZXN0Jz48L2NhbnZhcz4KICAgICAgICA8c2NyaXB0PgogICAgICAg
ICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwogICAg
ICAgICAgICBjb25zdCBnbCA9IGNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbCcpOwogICAgICAgICAg
ICBsZXQgdmVydEJ1ZmZlciA9IG51bGw7CiAgICAgICAgICAgIGxldCBpbmRleEJ1ZmZlciA9IG51
bGw7CgogICAgICAgICAgICBjb25zdCBzaXplID0gMWU2ICogMzsKICAgICAgICAgICAgY29uc3Qg
dmVydGV4QXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KHNpemUpOwogICAgICAgICAgICBjb25zdCBp
bmRleEFycmF5ID0gbmV3IFVpbnQxNkFycmF5KHNpemUpOwogICAgICAgICAgICBmdW5jdGlvbiBj
cmVhdGVHbEJ1ZmZlcnMoKXsKICAgICAgICAgICAgICAgIHZlcnRCdWZmZXIgPSBnbC5jcmVhdGVC
dWZmZXIoKTsKICAgICAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2
ZXJ0QnVmZmVyKTsKICAgICAgICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVS
LCB2ZXJ0ZXhBcnJheSwgZ2wuU1RBVElDX0RSQVcpOwogICAgICAgICAgICAgICAgaW5kZXhCdWZm
ZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTsKICAgICAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wu
RUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4QnVmZmVyKTsKICAgICAgICAgICAgICAgIGdsLmJ1
ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGluZGV4QXJyYXksIGdsLlNUQVRJQ19E
UkFXKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlR2xCdWZmZXIo
KXsKICAgICAgICAgICAgICAgIGlmKHZlcnRCdWZmZXIpewogICAgICAgICAgICAgICAgICAgIGds
LmRlbGV0ZUJ1ZmZlcih2ZXJ0QnVmZmVyKTsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmVy
dEJ1ZmZlcjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZihpbmRleEJ1ZmZl
cil7CiAgICAgICAgICAgICAgICAgICAgZ2wuZGVsZXRlQnVmZmVyKGluZGV4QnVmZmVyKTsKICAg
ICAgICAgICAgICAgICAgICBkZWxldGUgaW5kZXhCdWZmZXI7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgIH0KCgogICAgICAgICAgICBmdW5jdGlvbiBldmVyeUZyYW1lKCl7CiAgICAgICAg
ICAgICAgICBkZWxldGVHbEJ1ZmZlcigpOwogICAgICAgICAgICAgICAgY3JlYXRlR2xCdWZmZXJz
KCk7CiAgICAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGV2ZXJ5RnJh
bWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGV2ZXJ5RnJhbWUoKTsKCiAgICAgICAgPC9z
Y3JpcHQ+CiAgICA8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
      

    </bug>

</bugzilla>