1d65fe2932
The recording bench must record some source material into some sort of display list, and fundamentally cannot separate the timing of the two. This CL makes it so the source material and display list are of the same type. So instead of previous: --nolite: SkRecord-based picture -> SkRecord-based picture --lite: SkRecord-based picture -> threadsafe SkLiteDL Now this times --nolite: SkRecord-based picture -> SkRecord-based picture --lite: SkLiteDL -> threadsafe SkLiteDL This makes it easier to profile SkLiteDL and explore both recording and playback overhead hot spots. The threadsafety is incidental for the source (and doesn't affect playback speed), but I think it's handy to keep around on the destination to make a more fair comparison. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2230323002 Review-Url: https://codereview.chromium.org/2230323002
35 lines
757 B
C++
35 lines
757 B
C++
/*
|
|
* Copyright 2014 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#ifndef RecordingBench_DEFINED
|
|
#define RecordingBench_DEFINED
|
|
|
|
#include "Benchmark.h"
|
|
#include "SkPicture.h"
|
|
#include "SkLiteDL.h"
|
|
|
|
class RecordingBench : public Benchmark {
|
|
public:
|
|
RecordingBench(const char* name, const SkPicture*, bool useBBH, bool lite);
|
|
|
|
protected:
|
|
const char* onGetName() override;
|
|
bool isSuitableFor(Backend) override;
|
|
void onDraw(int loops, SkCanvas*) override;
|
|
SkIPoint onGetSize() override;
|
|
|
|
private:
|
|
sk_sp<const SkPicture> fSrc;
|
|
SkString fName;
|
|
sk_sp<SkLiteDL> fDL;
|
|
bool fUseBBH;
|
|
|
|
typedef Benchmark INHERITED;
|
|
};
|
|
|
|
#endif//RecordingBench_DEFINED
|