From 8a6697af95b340aad6dee7e6228048fa305c1e59 Mon Sep 17 00:00:00 2001 From: joshualitt Date: Wed, 30 Sep 2015 12:11:07 -0700 Subject: Fix for nexus 5 crashing in GL benches GLBenches do not expect gl state to change between onPerCanvasPreDraw and *PostDraw, but we do a clear and sometimes we clear as draw. This causes us to bind vertex objects / programs / etc. This change creates two new virtual methods which are called right before and immediately after timing. BUG=skia: Review URL: https://codereview.chromium.org/1379853003 --- bench/PathBench.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'bench/PathBench.cpp') diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp index 8c157119d4..e09fc3ecab 100644 --- a/bench/PathBench.cpp +++ b/bench/PathBench.cpp @@ -325,7 +325,7 @@ protected: return "path_create"; } - void onPreDraw() override { + void onDelayedSetup() override { this->createData(10, 100); } @@ -354,7 +354,7 @@ protected: const char* onGetName() override { return "path_copy"; } - void onPreDraw() override { + void onDelayedSetup() override { this->createData(10, 100); fPaths.reset(kPathCnt); fCopies.reset(kPathCnt); @@ -390,7 +390,7 @@ protected: return fInPlace ? "path_transform_in_place" : "path_transform_copy"; } - void onPreDraw() override { + void onDelayedSetup() override { fMatrix.setScale(5 * SK_Scalar1, 6 * SK_Scalar1); this->createData(10, 100); fPaths.reset(kPathCnt); @@ -438,7 +438,7 @@ protected: return "path_equality_50%"; } - void onPreDraw() override { + void onDelayedSetup() override { fParity = 0; this->createData(10, 100); fPaths.reset(kPathCnt); @@ -501,7 +501,7 @@ protected: } } - void onPreDraw() override { + void onDelayedSetup() override { // reversePathTo assumes a single contour path. bool allowMoves = kReversePathTo_AddType != fType; this->createData(10, 100, allowMoves); @@ -769,7 +769,7 @@ private: } } - void onPreDraw() override { + void onDelayedSetup() override { fQueryRects.setCount(kQueryRectCnt); SkRandom rand; -- cgit v1.2.3