<?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>90695</bug_id>
          
          <creation_ts>2012-07-06 10:14:00 -0700</creation_ts>
          <short_desc>Performance: 2D Canvas rendering spending a lot of CPU time in RenderLayerCompositor::updateLayerCompositingState</short_desc>
          <delta_ts>2012-07-06 11:08:06 -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>Canvas</component>
          <version>528+ (Nightly build)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Novosad">junov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jamesr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>664167</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-07-06 10:14:00 -0700</bug_when>
    <thetext>While profiling Chrome, executing the benchmark page found here:
https://github.com/sibblingz/PerfMarks

A hot spot was detected detected in RenderLayerCompositor::updateLayerCompositingState (mostly in updateGraphicsLayerConfiguration()), which appears to be called once for every 2D canvas primitive draw.
For some of the sub tests of this benchmark, as much as 20% of CPU time can be spent in that function.  Since canvas draws do not impact the layout of composited layers, there should be no need to visit this code so often.

Related bug: https://bugs.webkit.org/show_bug.cgi?id=90630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664204</commentid>
    <comment_count>1</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-07-06 11:08:06 -0700</bug_when>
    <thetext>fixed by r121987: &lt;http://trac.webkit.org/changeset/121987&gt;

The call to RenderLayerCompositor::updateLayerCompositingState is now bypassed when contentChanged() is called with CanvasPixelsChanged rather than CanvasChanged.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>