Last Comment Bug 754364 - optimize scaled/repeated path (when CreateSamplingRestrictedDrawable is not in use)
: optimize scaled/repeated path (when CreateSamplingRestrictedDrawable is not i...
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: Graphics (show other bugs)
: Trunk
: ARM Android
: -- normal (vote)
: mozilla15
Assigned To: Jeff Muizelaar [:jrmuizel]
:
Mentors:
Depends on:
Blocks: 749426
  Show dependency treegraph
 
Reported: 2012-05-11 10:57 PDT by Vladimir Vukicevic [:vlad] [:vladv]
Modified: 2012-05-22 07:46 PDT (History)
6 users (show)
ryanvm: in‑testsuite-
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---
fixed
+


Attachments
Add nearest repeat fast paths (25.39 KB, patch)
2012-05-11 12:37 PDT, Jeff Muizelaar [:jrmuizel]
joe: approval‑mozilla‑aurora+
Details | Diff | Review
Add bilinear non-repeat and repeat fast paths (9.52 KB, patch)
2012-05-14 08:51 PDT, Jeff Muizelaar [:jrmuizel]
joe: review+
joe: approval‑mozilla‑aurora+
Details | Diff | Review

Description Vladimir Vukicevic [:vlad] [:vladv] 2012-05-11 10:57:17 PDT
Bug 749426 will disable CSRD on mobile, because we tend to render entire pages when we snapshot which causes us to do crazy things like allocate 500MB.  So we don't do that any more.  But the resulting path is slower in cases where it did work before, so Jeff wants to optimize it.
Comment 1 Joe Drew (not getting mail) 2012-05-11 11:00:38 PDT
Our tests show that disabling CreateSamplingRestrictedDrawable can make drawing a tiled background slower in some cases. Specifically,:

NEON
bilinear: faster
nearest: 2x slower

No neon
bilinear: 1.4x slower
nearest: 4x slower

Thus the nom for blocking. We think we can make this a lot better.
Comment 2 Jeff Muizelaar [:jrmuizel] 2012-05-11 12:37:48 PDT
Created attachment 623255 [details] [diff] [review]
Add nearest repeat fast paths

This is a patch from Siarhei that fixes these.
Comment 3 Jeff Muizelaar [:jrmuizel] 2012-05-12 07:03:25 PDT
https://hg.mozilla.org/integration/mozilla-inbound/rev/d61928d439b4
Comment 4 Matt Brubeck (:mbrubeck) 2012-05-13 17:40:19 PDT
https://hg.mozilla.org/mozilla-central/rev/d61928d439b4
Comment 5 Jeff Muizelaar [:jrmuizel] 2012-05-14 08:51:13 PDT
Created attachment 623687 [details] [diff] [review]
Add bilinear non-repeat and repeat fast paths

This makes faster
Comment 6 Vladimir Vukicevic [:vlad] [:vladv] 2012-05-14 08:54:08 PDT
What's with the #if 1 / #else bits?  Second part looks to be from Skia, do we not want to use it (just kill it off if we don't?)..
Comment 7 Joe Drew (not getting mail) 2012-05-14 12:44:59 PDT
Not all on central yet
Comment 8 Jeff Muizelaar [:jrmuizel] 2012-05-15 15:27:29 PDT
(In reply to Vladimir Vukicevic (:vlad) from comment #6)
> What's with the #if 1 / #else bits?  Second part looks to be from Skia, do
> we not want to use it (just kill it off if we don't?)..

We want to use it, I just want to do that as a second pass. It's faster but produces different results.
Comment 9 Jeff Muizelaar [:jrmuizel] 2012-05-15 15:30:30 PDT
https://hg.mozilla.org/integration/mozilla-inbound/rev/df38ed62a24a
Comment 10 Ryan VanderMeulen [:RyanVM] 2012-05-15 17:35:21 PDT
http://mozillamemes.tumblr.com/post/21637966463/yes-i-have-a-condition-that-forces-me-to-insert

Backed out due to Windows build bustage.
https://hg.mozilla.org/integration/mozilla-inbound/rev/5cc2cbb8c43b

https://tbpl.mozilla.org/php/getParsedLog.php?id=11782268&tree=Mozilla-Inbound
pixman-fast-path.c

e:/builds/moz2_slave/m-in-w32/build/gfx/cairo/libpixman/src/pixman-fast-path.c(1247) : warning C4101: 'result' : unreferenced local variable

e:/builds/moz2_slave/m-in-w32/build/gfx/cairo/libpixman/src/pixman-fast-path.c(1318) : error C2143: syntax error : missing ';' before 'type'

e:/builds/moz2_slave/m-in-w32/build/gfx/cairo/libpixman/src/pixman-fast-path.c(1319) : error C2065: 'xy' : undeclared identifier

e:/builds/moz2_slave/m-in-w32/build/gfx/cairo/libpixman/src/pixman-fast-path.c(1320) : error C2065: 'xy' : undeclared identifier

e:/builds/moz2_slave/m-in-w32/build/gfx/cairo/libpixman/src/pixman-fast-path.c(1321) : error C2065: 'xy' : undeclared identifier

e:/builds/moz2_slave/m-in-w32/build/gfx/cairo/libpixman/src/pixman-fast-path.c(1322) : error C2065: 'xy' : undeclared identifier
Comment 11 Jeff Muizelaar [:jrmuizel] 2012-05-16 07:08:29 PDT
Relanded: https://hg.mozilla.org/integration/mozilla-inbound/rev/4a3efede4904
Comment 13 Mark Finkle (:mfinkle) (use needinfo?) 2012-05-16 20:27:58 PDT
This patch caused a dramatic improvement in Tcheckerboard, not so much on Tcheckerboard2.
Comment 14 Jeff Muizelaar [:jrmuizel] 2012-05-18 06:09:25 PDT
Comment on attachment 623687 [details] [diff] [review]
Add bilinear non-repeat and repeat fast paths

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 750598
User impact if declined: Slower paints (more checkerboarding on Tegra)
Testing completed (on m-c, etc.): Has been on mozilla-central a couple of days
Risk to taking this patch (and alternatives if risky): Mobile only, the functions added are all pretty simple and don't have any conditional paths.
Comment 15 Jeff Muizelaar [:jrmuizel] 2012-05-18 06:11:08 PDT
Comment on attachment 623255 [details] [diff] [review]
Add nearest repeat fast paths

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 750598, 749426
User impact if declined: Slower paints on Tegra and not Tegra
Testing completed (on m-c, etc.): Has been on mozilla-central a couple of days
Risk to taking this patch (and alternatives if risky): Mobile only, the functions added are all pretty simple and don't have any conditional paths.

Note You need to log in before you can comment on or make changes to this bug.