New issue
Advanced search Search tips
Starred by 6 users

Issue metadata

Status: Accepted
Owner:
Area: ----
Priority: Medium
Type: Defect



Sign in to add a comment

Performance difference in drawlooper with multiple blurs

Reported by robertphillips@chromium.org, Jun 5 2013

Issue description

It appears that the lower-level drawRect methods are not appropriately rejecting clipped rect draws in some cases. In particular the new raster-side fast path for drawing blurred rects doesn't perform a cull step.
This bug manifests itself as a performance difference in drawing a rect with multiple blurs either as 1 4-deep draw looper vs. 4 1-deep draw loopers (with the 1 4-deep case being slower than expected). 
This can be reproduced in Skia by modifying the kWidth and kHeight constants in the megalooper GM to be 2000x2000. The generate the .skps via:
gm -p <out-dir> --match megalooper
This will generate 3 skp files (megalooper_[0x0 | 4x1 | 1x4]). Next run bench_pictures on the resulting .skps to see the performance variation.
This CL (Added megalooper GM - https://codereview.chromium.org/16004011/) has some timings on Win7. 
This CL ("Fix" for megalooper "bug" - https://codereview.chromium.org/16325008/) has a preliminary fix.  It has been paused in favor of fixing the problem at a lower level.
 
Project Member

Comment 1 by scro...@google.com, Jun 5 2013

Cc: scro...@google.com
Owner: robertph...@google.com
Robert, okay if I assign this to you?
Project Member

Comment 2 by robertph...@google.com, Aug 16 2013

Status: Accepted
Project Member

Comment 3 by hcm@google.com, Dec 7 2015

Labels: Hotlist-Fixit
Project Member

Comment 4 by scro...@google.com, Jun 9 2017

Cc: -scro...@google.com

Sign in to add a comment