diff options
Diffstat (limited to 'bench/Xfer4fBench.cpp')
-rw-r--r-- | bench/Xfer4fBench.cpp | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/bench/Xfer4fBench.cpp b/bench/Xfer4fBench.cpp deleted file mode 100644 index 5e679a826e..0000000000 --- a/bench/Xfer4fBench.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "Benchmark.h" -#include "SkPM4f.h" -#include "SkString.h" -#include "SkXfermodePriv.h" - -#define USE_AA (1 << 31) // merge with Xfermode::PMFlags w/o conflict - -#define INNER_LOOPS 1000 - -// Benchmark that draws non-AA rects or AA text with an SkXfermode::Mode. -class XferD32Bench : public Benchmark { -public: - XferD32Bench(SkBlendMode mode, const char name[], bool doN, uint32_t flags) - : fDoN(doN) - , fFlags(flags & ~USE_AA) - { - fMode = mode; - fProc1 = SkXfermode::GetD32Proc(fMode, fFlags | SkXfermode::kSrcIsSingle_D32Flag); - fProcN = SkXfermode::GetD32Proc(fMode, fFlags); - fName.printf("xfer4f_%s_%s_%c_%s_%s", - name, - (flags & USE_AA) ? "aa" : "bw", - fDoN ? 'N' : '1', - (flags & SkXfermode::kSrcIsOpaque_D32Flag) ? "opaque" : "alpha", - (flags & SkXfermode::kDstIsSRGB_D32Flag) ? "srgb" : "linear"); - - for (int i = 0; i < N; ++i) { - fSrc[i] = {{ 1, 1, 1, 1 }}; - fDst[i] = 0; - fAAStorage[i] = i * 255 / (N - 1); - } - - if (flags & USE_AA) { - fAA = fAAStorage; - } else { - fAA = nullptr; - } - } - -protected: - bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; } - - const char* onGetName() override { return fName.c_str(); } - - void onDraw(int loops, SkCanvas*) override { - for (int i = 0; i < loops * INNER_LOOPS; ++i) { - if (fDoN) { - fProcN(fMode, fDst, fSrc, N, fAA); - } else { - fProc1(fMode, fDst, fSrc, N, fAA); - } - } - } - -private: - SkBlendMode fMode; - SkString fName; - SkXfermode::D32Proc fProc1; - SkXfermode::D32Proc fProcN; - const SkAlpha* fAA; - bool fDoN; - uint32_t fFlags; - - enum { - N = 1000, - }; - SkPM4f fSrc[N]; - SkPMColor fDst[N]; - uint8_t fAAStorage[N]; - - typedef Benchmark INHERITED; -}; - -#define F00 0 -#define F01 (SkXfermode::kSrcIsOpaque_D32Flag) -#define F10 (SkXfermode::kDstIsSRGB_D32Flag) -#define F11 (SkXfermode::kSrcIsOpaque_D32Flag | SkXfermode::kDstIsSRGB_D32Flag) - -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F10); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F00); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F11); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F01); ) - -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F10); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F00); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F11); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F01); ) - -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F10 | USE_AA); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F00 | USE_AA); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F11 | USE_AA); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", false, F01 | USE_AA); ) - -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F10 | USE_AA); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F00 | USE_AA); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F11 | USE_AA); ) -DEF_BENCH( return new XferD32Bench(SkBlendMode::kSrcOver, "srcover", true, F01 | USE_AA); ) |