Performance difference in drawlooper with multiple blurs
Reported by email@example.com, Jun 5 2013
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.
Jun 5 2013,
Robert, okay if I assign this to you?
Aug 16 2013,
Dec 7 2015,
Jun 9 2017,
Sign in to add a comment