<?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>214660</bug_id>
          
          <creation_ts>2020-07-22 15:07:52 -0700</creation_ts>
          <short_desc>markContextChangedAndNotifyCanvasObserver and markContextChanged over-notify</short_desc>
          <delta_ts>2020-07-29 15:08:37 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>126447</dependson>
    
    <dependson>126448</dependson>
    
    <dependson>212461</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1673999</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-22 15:07:52 -0700</bug_when>
    <thetext>WebGLRenderingContextBase::markContextChanged and WebGLRenderingContextBase::markContextChangedAndNotifyCanvasObserver dispatch too many notifications:

- markContextChangedAndNotifyCanvasObserver doesn&apos;t take into account whether a user-level framebuffer is bound. If one is, then it shouldn&apos;t notify.
- markContextChanged calls &quot;htmlCanvas()-&gt;clearCopiedImage()&quot; and &quot;renderBox-&gt;contentChanged(CanvasPixelsChanged)&quot; for every draw call - this seems expensive.

dino@ indicated in discussion on Slack that with the addition of WebGLRenderingContextBase::prepareForDisplay in Bug 212461, at least some of these notifications can be done once per frame, at the end of the frame, rather than on each operation that might touch the WebGL back buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674000</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-22 15:08:57 -0700</bug_when>
    <thetext>Noticed this while fixing Bug 126447 and Bug 126448.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676163</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-29 15:08:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/66294753&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>