History log of /external/skia/bench/PMFloatBench.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3d626834b4b5ee2d6dda34da365dfe40520253aa 03-Apr-2015 mtklein <mtklein@chromium.org> New names for SkPMFloat methods.

BUG=skia:

Review URL: https://codereview.chromium.org/1055123002
/external/skia/bench/PMFloatBench.cpp
0340df5b3698aff1c9540fcdbc3dafd9d5ddb0b0 31-Mar-2015 mtklein <mtklein@chromium.org> back to Sk4f for SkPMColor
#floats

BUG=skia:
BUG=skia:3592

Review URL: https://codereview.chromium.org/1047823002
/external/skia/bench/PMFloatBench.cpp
c9adb05b64fa0bfadf9d1a782afcda470da68c9e 30-Mar-2015 mtklein <mtklein@chromium.org> Refactor Sk2x<T> + Sk4x<T> into SkNf<N,T> and SkNi<N,T>

The primary feature this delivers is SkNf and SkNd for arbitrary power-of-two N. Non-specialized types or types larger than 128 bits should now Just Work (and we can drop in a specialization to make them faster). Sk4s is now just a typedef for SkNf<4, SkScalar>; Sk4d is SkNf<4, double>, Sk2f SkNf<2, float>, etc.

This also makes implementing new specializations easier and more encapsulated. We're now using template specialization, which means the specialized versions don't have to leak out so much from SkNx_sse.h and SkNx_neon.h.

This design leaves us room to grow up, e.g to SkNf<8, SkScalar> == Sk8s, and to grown down too, to things like SkNi<8, uint16_t> == Sk8h.

To simplify things, I've stripped away most APIs (swizzles, casts, reinterpret_casts) that no one's using yet. I will happily add them back if they seem useful.

You shouldn't feel bad about using any of the typedef Sk4s, Sk4f, Sk4d, Sk2s, Sk2f, Sk2d, Sk4i, etc. Here's how you should feel:
- Sk4f, Sk4s, Sk2d: feel awesome
- Sk2f, Sk2s, Sk4d: feel pretty good

No public API changes.
TBR=reed@google.com

BUG=skia:3592

Review URL: https://codereview.chromium.org/1048593002
/external/skia/bench/PMFloatBench.cpp
3d4c4a5a9feff961c6ba70443fa40ea1ca0a503e 26-Mar-2015 mtklein <mtklein@chromium.org> SkPMFloat::trunc()

Add and test trunc(), which is what get() used to be before rounding.
Using trunc() is a ~40% speedup on our linear gradient bench.

#neon #floats
BUG=skia:3592
#n5
#n9
CQ_INCLUDE_TRYBOTS=client.skia.android:Test-Android-Nexus5-Adreno330-Arm7-Debug-Trybot;client.skia.android:Test-Android-Nexus9-TegraK1-Arm64-Release-Trybot

Review URL: https://codereview.chromium.org/1032243002
/external/skia/bench/PMFloatBench.cpp
36352bf5e38f45a70ee4f4fc132a38048d38206d 26-Mar-2015 mtklein <mtklein@chromium.org> C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}

NOPRESUBMIT=true

BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002

Review URL: https://codereview.chromium.org/1037793002
/external/skia/bench/PMFloatBench.cpp
02fd592c8d190058652bb715fb34feb7a72992e5 26-Mar-2015 mtklein <mtklein@chromium.org> hack on linear gradient

Am I going nuts or can we get this down to just adds and converts in the loop?

#floats #n9
BUG=skia:3592
CQ_INCLUDE_TRYBOTS=client.skia.android:Test-Android-Nexus9-TegraK1-Arm64-Release-Trybot

Review URL: https://codereview.chromium.org/1008973004
/external/skia/bench/PMFloatBench.cpp
15391ee4acaa092f52742f64968ad8046b74ca81 25-Mar-2015 mtklein <mtklein@chromium.org> Update 4-at-a-time APIs.

There is no reason to require the 4 SkPMFloats (registers) to be adjacent.
The only potential win in loads and stores comes from the SkPMColors being adjacent.

Makes no difference to existing bench.

BUG=skia:

Review URL: https://codereview.chromium.org/1035583002
/external/skia/bench/PMFloatBench.cpp
548bf38b28986fab6770350b72247d7114d98184 05-Mar-2015 mtklein <mtklein@chromium.org> 4-at-a-time SkPMColor -> SkPMFloat API.

Please see if this looks usable. It may even give a perf boost if you use it, even without custom implementations for each instruction set.

I've been trying this morning to beat this naive loop implementation, but so far no luck with either _SSE2.h or _SSSE3.h. It's possible this is an artifact of the microbenchmark, because we're not doing anything between the conversions. I'd like to see how this fits into real code, what assembly's generated, what the hot spots are, etc.

I've updated the tests to test these new APIs, and splintered off a pair of new benchmarks that use the new APIs. This required some minor rejiggering in the benches.

BUG=skia:

Review URL: https://codereview.chromium.org/978213003
/external/skia/bench/PMFloatBench.cpp
4e644f5d5020a6ec904734a3f521bfad173cb450 04-Mar-2015 mtklein <mtklein@chromium.org> Update SkPMFloat API a bit.

Instead of set(SkPMColor), add a constructor SkPMFloat(SkPMColor).
Replace setA(), setR(), etc. with a 4 float constructor.

And, promise to stick to SkPMColor order.

BUG=skia:

Review URL: https://codereview.chromium.org/977773002
/external/skia/bench/PMFloatBench.cpp
60ff4582ae76aa131aeb20a3e16c89fa3a40a41c 03-Mar-2015 mtklein <mtklein@chromium.org> Trim the fat off SkPMFloat bench.

This bench was ~75% overhead, ~25% good bench. It is now just about the
opposite: about 30% of the runtime is loop and random number overhead, and
about 70% of the time is spent doing SkPMColor <-> SkPMFloat work.

BUG=skia:

NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/968133005
/external/skia/bench/PMFloatBench.cpp
a2f4be76a9d453f1fdfd55b0cec6a683f23ffe0f 23-Feb-2015 mtklein <mtklein@chromium.org> Sketch SkPMFloat

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/50d2b3114b3e59dc84811881591bf25b2c1ecb9f

CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu13.10-GCC4.8-Arm7-Release-Android_Neon-Trybot

http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu13.10-GCC4.8-Arm7-Release-Android_Neon/builds/2120/steps/build%20most/logs/stdio

Review URL: https://codereview.chromium.org/936633002
/external/skia/bench/PMFloatBench.cpp
088302756bde25083d6712b18dcd24644d4dcdbb 23-Feb-2015 mtklein <mtklein@google.com> Revert of Sketch SkPMFloat (patchset #15 id:270001 of https://codereview.chromium.org/936633002/)

Reason for revert:
http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu13.10-GCC4.8-Arm7-Release-Android_Neon/builds/2120/steps/build%20most/logs/stdio

Original issue's description:
> Sketch SkPMFloat
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/50d2b3114b3e59dc84811881591bf25b2c1ecb9f

TBR=reed@google.com,msarrett@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/952453004
/external/skia/bench/PMFloatBench.cpp
50d2b3114b3e59dc84811881591bf25b2c1ecb9f 23-Feb-2015 mtklein <mtklein@chromium.org> Sketch SkPMFloat

BUG=skia:

Review URL: https://codereview.chromium.org/936633002
/external/skia/bench/PMFloatBench.cpp