| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 #include "SkBenchmark.h" | 8 #include "SkBenchmark.h" |
| 9 #include "SkMatrix.h" | 9 #include "SkMatrix.h" |
| 10 #include "SkMatrixUtils.h" | 10 #include "SkMatrixUtils.h" |
| 11 #include "SkRandom.h" | 11 #include "SkRandom.h" |
| 12 #include "SkString.h" | 12 #include "SkString.h" |
| 13 | 13 |
| 14 class MatrixBench : public SkBenchmark { | 14 class MatrixBench : public SkBenchmark { |
| 15 SkString fName; | 15 SkString fName; |
| 16 public: | 16 public: |
| 17 MatrixBench(void* param, const char name[]) : INHERITED(param) { | 17 MatrixBench(const char name[]) { |
| 18 fName.printf("matrix_%s", name); | 18 fName.printf("matrix_%s", name); |
| 19 fIsRendering = false; | 19 fIsRendering = false; |
| 20 } | 20 } |
| 21 | 21 |
| 22 virtual void performTest() = 0; | 22 virtual void performTest() = 0; |
| 23 | 23 |
| 24 protected: | 24 protected: |
| 25 virtual int mulLoopCount() const { return 1; } | 25 virtual int mulLoopCount() const { return 1; } |
| 26 | 26 |
| 27 virtual const char* onGetName() { | 27 virtual const char* onGetName() { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 45 | 45 |
| 46 #define always_do(pred) \ | 46 #define always_do(pred) \ |
| 47 do { \ | 47 do { \ |
| 48 if (pred) { \ | 48 if (pred) { \ |
| 49 ++gMatrixBench_NonStaticGlobal; \ | 49 ++gMatrixBench_NonStaticGlobal; \ |
| 50 } \ | 50 } \ |
| 51 } while (0) | 51 } while (0) |
| 52 | 52 |
| 53 class EqualsMatrixBench : public MatrixBench { | 53 class EqualsMatrixBench : public MatrixBench { |
| 54 public: | 54 public: |
| 55 EqualsMatrixBench(void* param) : INHERITED(param, "equals") {} | 55 EqualsMatrixBench() : INHERITED("equals") {} |
| 56 protected: | 56 protected: |
| 57 virtual void performTest() { | 57 virtual void performTest() { |
| 58 SkMatrix m0, m1, m2; | 58 SkMatrix m0, m1, m2; |
| 59 | 59 |
| 60 m0.reset(); | 60 m0.reset(); |
| 61 m1.reset(); | 61 m1.reset(); |
| 62 m2.reset(); | 62 m2.reset(); |
| 63 always_do(m0 == m1); | 63 always_do(m0 == m1); |
| 64 always_do(m1 == m2); | 64 always_do(m1 == m2); |
| 65 always_do(m2 == m0); | 65 always_do(m2 == m0); |
| 66 } | 66 } |
| 67 private: | 67 private: |
| 68 typedef MatrixBench INHERITED; | 68 typedef MatrixBench INHERITED; |
| 69 }; | 69 }; |
| 70 | 70 |
| 71 class ScaleMatrixBench : public MatrixBench { | 71 class ScaleMatrixBench : public MatrixBench { |
| 72 public: | 72 public: |
| 73 ScaleMatrixBench(void* param) : INHERITED(param, "scale") { | 73 ScaleMatrixBench() : INHERITED("scale") { |
| 74 fSX = fSY = SkFloatToScalar(1.5f); | 74 fSX = fSY = SkFloatToScalar(1.5f); |
| 75 fM0.reset(); | 75 fM0.reset(); |
| 76 fM1.setScale(fSX, fSY); | 76 fM1.setScale(fSX, fSY); |
| 77 fM2.setTranslate(fSX, fSY); | 77 fM2.setTranslate(fSX, fSY); |
| 78 } | 78 } |
| 79 protected: | 79 protected: |
| 80 virtual void performTest() { | 80 virtual void performTest() { |
| 81 SkMatrix m; | 81 SkMatrix m; |
| 82 m = fM0; m.preScale(fSX, fSY); | 82 m = fM0; m.preScale(fSX, fSY); |
| 83 m = fM1; m.preScale(fSX, fSY); | 83 m = fM1; m.preScale(fSX, fSY); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 96 SkRandom rand; | 96 SkRandom rand; |
| 97 for (int i = 0; i < 9; i++) { | 97 for (int i = 0; i < 9; i++) { |
| 98 array[i] = rand.nextSScalar1(); | 98 array[i] = rand.nextSScalar1(); |
| 99 } | 99 } |
| 100 } | 100 } |
| 101 | 101 |
| 102 // Test the performance of setConcat() non-perspective case: | 102 // Test the performance of setConcat() non-perspective case: |
| 103 // using floating point precision only. | 103 // using floating point precision only. |
| 104 class FloatConcatMatrixBench : public MatrixBench { | 104 class FloatConcatMatrixBench : public MatrixBench { |
| 105 public: | 105 public: |
| 106 FloatConcatMatrixBench(void* p) : INHERITED(p, "concat_floatfloat") { | 106 FloatConcatMatrixBench() : INHERITED("concat_floatfloat") { |
| 107 init9(mya); | 107 init9(mya); |
| 108 init9(myb); | 108 init9(myb); |
| 109 init9(myr); | 109 init9(myr); |
| 110 } | 110 } |
| 111 protected: | 111 protected: |
| 112 virtual int mulLoopCount() const { return 4; } | 112 virtual int mulLoopCount() const { return 4; } |
| 113 | 113 |
| 114 static inline void muladdmul(float a, float b, float c, float d, | 114 static inline void muladdmul(float a, float b, float c, float d, |
| 115 float* result) { | 115 float* result) { |
| 116 *result = a * b + c * d; | 116 *result = a * b + c * d; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 139 | 139 |
| 140 static inline float SkDoubleToFloat(double x) { | 140 static inline float SkDoubleToFloat(double x) { |
| 141 return static_cast<float>(x); | 141 return static_cast<float>(x); |
| 142 } | 142 } |
| 143 | 143 |
| 144 // Test the performance of setConcat() non-perspective case: | 144 // Test the performance of setConcat() non-perspective case: |
| 145 // using floating point precision but casting up to float for | 145 // using floating point precision but casting up to float for |
| 146 // intermediate results during computations. | 146 // intermediate results during computations. |
| 147 class FloatDoubleConcatMatrixBench : public MatrixBench { | 147 class FloatDoubleConcatMatrixBench : public MatrixBench { |
| 148 public: | 148 public: |
| 149 FloatDoubleConcatMatrixBench(void* p) : INHERITED(p, "concat_floatdouble") { | 149 FloatDoubleConcatMatrixBench() : INHERITED("concat_floatdouble") { |
| 150 init9(mya); | 150 init9(mya); |
| 151 init9(myb); | 151 init9(myb); |
| 152 init9(myr); | 152 init9(myr); |
| 153 } | 153 } |
| 154 protected: | 154 protected: |
| 155 virtual int mulLoopCount() const { return 4; } | 155 virtual int mulLoopCount() const { return 4; } |
| 156 | 156 |
| 157 static inline void muladdmul(float a, float b, float c, float d, | 157 static inline void muladdmul(float a, float b, float c, float d, |
| 158 float* result) { | 158 float* result) { |
| 159 *result = SkDoubleToFloat((double)a * b + (double)c * d); | 159 *result = SkDoubleToFloat((double)a * b + (double)c * d); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 177 float mya [9]; | 177 float mya [9]; |
| 178 float myb [9]; | 178 float myb [9]; |
| 179 float myr [9]; | 179 float myr [9]; |
| 180 typedef MatrixBench INHERITED; | 180 typedef MatrixBench INHERITED; |
| 181 }; | 181 }; |
| 182 | 182 |
| 183 // Test the performance of setConcat() non-perspective case: | 183 // Test the performance of setConcat() non-perspective case: |
| 184 // using double precision only. | 184 // using double precision only. |
| 185 class DoubleConcatMatrixBench : public MatrixBench { | 185 class DoubleConcatMatrixBench : public MatrixBench { |
| 186 public: | 186 public: |
| 187 DoubleConcatMatrixBench(void* p) : INHERITED(p, "concat_double") { | 187 DoubleConcatMatrixBench() : INHERITED("concat_double") { |
| 188 init9(mya); | 188 init9(mya); |
| 189 init9(myb); | 189 init9(myb); |
| 190 init9(myr); | 190 init9(myr); |
| 191 } | 191 } |
| 192 protected: | 192 protected: |
| 193 virtual int mulLoopCount() const { return 4; } | 193 virtual int mulLoopCount() const { return 4; } |
| 194 | 194 |
| 195 static inline void muladdmul(double a, double b, double c, double d, | 195 static inline void muladdmul(double a, double b, double c, double d, |
| 196 double* result) { | 196 double* result) { |
| 197 *result = a * b + c * d; | 197 *result = a * b + c * d; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 213 } | 213 } |
| 214 private: | 214 private: |
| 215 double mya [9]; | 215 double mya [9]; |
| 216 double myb [9]; | 216 double myb [9]; |
| 217 double myr [9]; | 217 double myr [9]; |
| 218 typedef MatrixBench INHERITED; | 218 typedef MatrixBench INHERITED; |
| 219 }; | 219 }; |
| 220 | 220 |
| 221 class GetTypeMatrixBench : public MatrixBench { | 221 class GetTypeMatrixBench : public MatrixBench { |
| 222 public: | 222 public: |
| 223 GetTypeMatrixBench(void* param) | 223 GetTypeMatrixBench() |
| 224 : INHERITED(param, "gettype") { | 224 : INHERITED("gettype") { |
| 225 fArray[0] = (float) fRnd.nextS(); | 225 fArray[0] = (float) fRnd.nextS(); |
| 226 fArray[1] = (float) fRnd.nextS(); | 226 fArray[1] = (float) fRnd.nextS(); |
| 227 fArray[2] = (float) fRnd.nextS(); | 227 fArray[2] = (float) fRnd.nextS(); |
| 228 fArray[3] = (float) fRnd.nextS(); | 228 fArray[3] = (float) fRnd.nextS(); |
| 229 fArray[4] = (float) fRnd.nextS(); | 229 fArray[4] = (float) fRnd.nextS(); |
| 230 fArray[5] = (float) fRnd.nextS(); | 230 fArray[5] = (float) fRnd.nextS(); |
| 231 fArray[6] = (float) fRnd.nextS(); | 231 fArray[6] = (float) fRnd.nextS(); |
| 232 fArray[7] = (float) fRnd.nextS(); | 232 fArray[7] = (float) fRnd.nextS(); |
| 233 fArray[8] = (float) fRnd.nextS(); | 233 fArray[8] = (float) fRnd.nextS(); |
| 234 } | 234 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 258 } | 258 } |
| 259 private: | 259 private: |
| 260 SkMatrix fMatrix; | 260 SkMatrix fMatrix; |
| 261 float fArray[9]; | 261 float fArray[9]; |
| 262 SkRandom fRnd; | 262 SkRandom fRnd; |
| 263 typedef MatrixBench INHERITED; | 263 typedef MatrixBench INHERITED; |
| 264 }; | 264 }; |
| 265 | 265 |
| 266 class ScaleTransMixedMatrixBench : public MatrixBench { | 266 class ScaleTransMixedMatrixBench : public MatrixBench { |
| 267 public: | 267 public: |
| 268 ScaleTransMixedMatrixBench(void* p) : INHERITED(p, "scaletrans_mixed") { | 268 ScaleTransMixedMatrixBench() : INHERITED("scaletrans_mixed") { |
| 269 fMatrix.setAll(fRandom.nextSScalar1(), fRandom.nextSScalar1(), fRandom.n
extSScalar1(), | 269 fMatrix.setAll(fRandom.nextSScalar1(), fRandom.nextSScalar1(), fRandom.n
extSScalar1(), |
| 270 fRandom.nextSScalar1(), fRandom.nextSScalar1(), fRandom.n
extSScalar1(), | 270 fRandom.nextSScalar1(), fRandom.nextSScalar1(), fRandom.n
extSScalar1(), |
| 271 fRandom.nextSScalar1(), fRandom.nextSScalar1(), fRandom.n
extSScalar1()); | 271 fRandom.nextSScalar1(), fRandom.nextSScalar1(), fRandom.n
extSScalar1()); |
| 272 int i; | 272 int i; |
| 273 for (i = 0; i < kCount; i++) { | 273 for (i = 0; i < kCount; i++) { |
| 274 fSrc[i].fX = fRandom.nextSScalar1(); | 274 fSrc[i].fX = fRandom.nextSScalar1(); |
| 275 fSrc[i].fY = fRandom.nextSScalar1(); | 275 fSrc[i].fY = fRandom.nextSScalar1(); |
| 276 fDst[i].fX = fRandom.nextSScalar1(); | 276 fDst[i].fX = fRandom.nextSScalar1(); |
| 277 fDst[i].fY = fRandom.nextSScalar1(); | 277 fDst[i].fY = fRandom.nextSScalar1(); |
| 278 } | 278 } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 299 }; | 299 }; |
| 300 SkMatrix fMatrix; | 300 SkMatrix fMatrix; |
| 301 SkPoint fSrc [kCount]; | 301 SkPoint fSrc [kCount]; |
| 302 SkPoint fDst [kCount]; | 302 SkPoint fDst [kCount]; |
| 303 SkRandom fRandom; | 303 SkRandom fRandom; |
| 304 typedef MatrixBench INHERITED; | 304 typedef MatrixBench INHERITED; |
| 305 }; | 305 }; |
| 306 | 306 |
| 307 class ScaleTransDoubleMatrixBench : public MatrixBench { | 307 class ScaleTransDoubleMatrixBench : public MatrixBench { |
| 308 public: | 308 public: |
| 309 ScaleTransDoubleMatrixBench(void* p) : INHERITED(p, "scaletrans_double") { | 309 ScaleTransDoubleMatrixBench() : INHERITED("scaletrans_double") { |
| 310 init9(fMatrix); | 310 init9(fMatrix); |
| 311 int i; | 311 int i; |
| 312 for (i = 0; i < kCount; i++) { | 312 for (i = 0; i < kCount; i++) { |
| 313 fSrc[i].fX = fRandom.nextSScalar1(); | 313 fSrc[i].fX = fRandom.nextSScalar1(); |
| 314 fSrc[i].fY = fRandom.nextSScalar1(); | 314 fSrc[i].fY = fRandom.nextSScalar1(); |
| 315 fDst[i].fX = fRandom.nextSScalar1(); | 315 fDst[i].fX = fRandom.nextSScalar1(); |
| 316 fDst[i].fY = fRandom.nextSScalar1(); | 316 fDst[i].fY = fRandom.nextSScalar1(); |
| 317 } | 317 } |
| 318 } | 318 } |
| 319 protected: | 319 protected: |
| (...skipping 19 matching lines...) Expand all Loading... |
| 339 }; | 339 }; |
| 340 double fMatrix [9]; | 340 double fMatrix [9]; |
| 341 SkPoint fSrc [kCount]; | 341 SkPoint fSrc [kCount]; |
| 342 SkPoint fDst [kCount]; | 342 SkPoint fDst [kCount]; |
| 343 SkRandom fRandom; | 343 SkRandom fRandom; |
| 344 typedef MatrixBench INHERITED; | 344 typedef MatrixBench INHERITED; |
| 345 }; | 345 }; |
| 346 | 346 |
| 347 class DecomposeMatrixBench : public MatrixBench { | 347 class DecomposeMatrixBench : public MatrixBench { |
| 348 public: | 348 public: |
| 349 DecomposeMatrixBench(void* param) : INHERITED(param, "decompose") {} | 349 DecomposeMatrixBench() : INHERITED("decompose") {} |
| 350 | 350 |
| 351 protected: | 351 protected: |
| 352 virtual void onPreDraw() { | 352 virtual void onPreDraw() { |
| 353 for (int i = 0; i < 10; ++i) { | 353 for (int i = 0; i < 10; ++i) { |
| 354 SkScalar rot0 = (fRandom.nextBool()) ? fRandom.nextRangeF(-180, 180)
: 0.0f; | 354 SkScalar rot0 = (fRandom.nextBool()) ? fRandom.nextRangeF(-180, 180)
: 0.0f; |
| 355 SkScalar sx = fRandom.nextRangeF(-3000.f, 3000.f); | 355 SkScalar sx = fRandom.nextRangeF(-3000.f, 3000.f); |
| 356 SkScalar sy = (fRandom.nextBool()) ? fRandom.nextRangeF(-3000.f, 300
0.f) : sx; | 356 SkScalar sy = (fRandom.nextBool()) ? fRandom.nextRangeF(-3000.f, 300
0.f) : sx; |
| 357 SkScalar rot1 = fRandom.nextRangeF(-180, 180); | 357 SkScalar rot1 = fRandom.nextRangeF(-180, 180); |
| 358 fMatrix[i].setRotate(rot0); | 358 fMatrix[i].setRotate(rot0); |
| 359 fMatrix[i].postScale(sx, sy); | 359 fMatrix[i].postScale(sx, sy); |
| 360 fMatrix[i].postRotate(rot1); | 360 fMatrix[i].postRotate(rot1); |
| 361 } | 361 } |
| 362 } | 362 } |
| 363 virtual void performTest() { | 363 virtual void performTest() { |
| 364 SkPoint rotation1, scale, rotation2; | 364 SkPoint rotation1, scale, rotation2; |
| 365 for (int i = 0; i < 10; ++i) { | 365 for (int i = 0; i < 10; ++i) { |
| 366 (void) SkDecomposeUpper2x2(fMatrix[i], &rotation1, &scale, &rotation
2); | 366 (void) SkDecomposeUpper2x2(fMatrix[i], &rotation1, &scale, &rotation
2); |
| 367 } | 367 } |
| 368 } | 368 } |
| 369 private: | 369 private: |
| 370 SkMatrix fMatrix[10]; | 370 SkMatrix fMatrix[10]; |
| 371 SkRandom fRandom; | 371 SkRandom fRandom; |
| 372 typedef MatrixBench INHERITED; | 372 typedef MatrixBench INHERITED; |
| 373 }; | 373 }; |
| 374 | 374 |
| 375 class InvertMapRectMatrixBench : public MatrixBench { | 375 class InvertMapRectMatrixBench : public MatrixBench { |
| 376 public: | 376 public: |
| 377 InvertMapRectMatrixBench(void* param, const char* name, int flags) | 377 InvertMapRectMatrixBench(const char* name, int flags) |
| 378 : INHERITED(param, name) | 378 : INHERITED(name) |
| 379 , fFlags(flags) { | 379 , fFlags(flags) { |
| 380 fMatrix.reset(); | 380 fMatrix.reset(); |
| 381 fIteration = 0; | 381 fIteration = 0; |
| 382 if (flags & kScale_Flag) { | 382 if (flags & kScale_Flag) { |
| 383 fMatrix.postScale(SkFloatToScalar(1.5f), SkFloatToScalar(2.5f)); | 383 fMatrix.postScale(SkFloatToScalar(1.5f), SkFloatToScalar(2.5f)); |
| 384 } | 384 } |
| 385 if (flags & kTranslate_Flag) { | 385 if (flags & kTranslate_Flag) { |
| 386 fMatrix.postTranslate(SkFloatToScalar(1.5f), SkFloatToScalar(2.5f)); | 386 fMatrix.postTranslate(SkFloatToScalar(1.5f), SkFloatToScalar(2.5f)); |
| 387 } | 387 } |
| 388 if (flags & kRotate_Flag) { | 388 if (flags & kRotate_Flag) { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 } | 422 } |
| 423 private: | 423 private: |
| 424 SkMatrix fMatrix; | 424 SkMatrix fMatrix; |
| 425 int fFlags; | 425 int fFlags; |
| 426 unsigned fIteration; | 426 unsigned fIteration; |
| 427 typedef MatrixBench INHERITED; | 427 typedef MatrixBench INHERITED; |
| 428 }; | 428 }; |
| 429 | 429 |
| 430 /////////////////////////////////////////////////////////////////////////////// | 430 /////////////////////////////////////////////////////////////////////////////// |
| 431 | 431 |
| 432 DEF_BENCH( return new EqualsMatrixBench(p); ) | 432 DEF_BENCH( return new EqualsMatrixBench(); ) |
| 433 DEF_BENCH( return new ScaleMatrixBench(p); ) | 433 DEF_BENCH( return new ScaleMatrixBench(); ) |
| 434 DEF_BENCH( return new FloatConcatMatrixBench(p); ) | 434 DEF_BENCH( return new FloatConcatMatrixBench(); ) |
| 435 DEF_BENCH( return new FloatDoubleConcatMatrixBench(p); ) | 435 DEF_BENCH( return new FloatDoubleConcatMatrixBench(); ) |
| 436 DEF_BENCH( return new DoubleConcatMatrixBench(p); ) | 436 DEF_BENCH( return new DoubleConcatMatrixBench(); ) |
| 437 DEF_BENCH( return new GetTypeMatrixBench(p); ) | 437 DEF_BENCH( return new GetTypeMatrixBench(); ) |
| 438 DEF_BENCH( return new DecomposeMatrixBench(p); ) | 438 DEF_BENCH( return new DecomposeMatrixBench(); ) |
| 439 | 439 |
| 440 DEF_BENCH( return new InvertMapRectMatrixBench(p, "invert_maprect_identity", 0);
) | 440 DEF_BENCH( return new InvertMapRectMatrixBench("invert_maprect_identity", 0); ) |
| 441 | 441 |
| 442 DEF_BENCH(return new InvertMapRectMatrixBench(p, | 442 DEF_BENCH(return new InvertMapRectMatrixBench( |
| 443 "invert_maprect_rectstaysrect", | 443 "invert_maprect_rectstaysrect", |
| 444 InvertMapRectMatrixBench::kScale_Flag | | 444 InvertMapRectMatrixBench::kScale_Flag | |
| 445 InvertMapRectMatrixBench::kTranslate_Flag); ) | 445 InvertMapRectMatrixBench::kTranslate_Flag); ) |
| 446 | 446 |
| 447 DEF_BENCH(return new InvertMapRectMatrixBench(p, | 447 DEF_BENCH(return new InvertMapRectMatrixBench( |
| 448 "invert_maprect_translate", | 448 "invert_maprect_translate", |
| 449 InvertMapRectMatrixBench::kTranslate_Flag); ) | 449 InvertMapRectMatrixBench::kTranslate_Flag); ) |
| 450 | 450 |
| 451 DEF_BENCH(return new InvertMapRectMatrixBench(p, | 451 DEF_BENCH(return new InvertMapRectMatrixBench( |
| 452 "invert_maprect_nonpersp", | 452 "invert_maprect_nonpersp", |
| 453 InvertMapRectMatrixBench::kScale_Flag | | 453 InvertMapRectMatrixBench::kScale_Flag | |
| 454 InvertMapRectMatrixBench::kRotate_Flag | | 454 InvertMapRectMatrixBench::kRotate_Flag | |
| 455 InvertMapRectMatrixBench::kTranslate_Flag); ) | 455 InvertMapRectMatrixBench::kTranslate_Flag); ) |
| 456 | 456 |
| 457 DEF_BENCH( return new InvertMapRectMatrixBench(p, | 457 DEF_BENCH( return new InvertMapRectMatrixBench( |
| 458 "invert_maprect_persp", | 458 "invert_maprect_persp", |
| 459 InvertMapRectMatrixBench::kPerspective_Flag); ) | 459 InvertMapRectMatrixBench::kPerspective_Flag); ) |
| 460 | 460 |
| 461 DEF_BENCH( return new InvertMapRectMatrixBench(p, | 461 DEF_BENCH( return new InvertMapRectMatrixBench( |
| 462 "invert_maprect_typemask_rectstaysrect", | 462 "invert_maprect_typemask_rectstaysrect", |
| 463 InvertMapRectMatrixBench::kUncachedTypeMask_Flag | | 463 InvertMapRectMatrixBench::kUncachedTypeMask_Flag | |
| 464 InvertMapRectMatrixBench::kScale_Flag | | 464 InvertMapRectMatrixBench::kScale_Flag | |
| 465 InvertMapRectMatrixBench::kTranslate_Flag); ) | 465 InvertMapRectMatrixBench::kTranslate_Flag); ) |
| 466 | 466 |
| 467 DEF_BENCH( return new InvertMapRectMatrixBench(p, | 467 DEF_BENCH( return new InvertMapRectMatrixBench( |
| 468 "invert_maprect_typemask_nonpersp", | 468 "invert_maprect_typemask_nonpersp", |
| 469 InvertMapRectMatrixBench::kUncachedTypeMask_Flag | | 469 InvertMapRectMatrixBench::kUncachedTypeMask_Flag | |
| 470 InvertMapRectMatrixBench::kScale_Flag | | 470 InvertMapRectMatrixBench::kScale_Flag | |
| 471 InvertMapRectMatrixBench::kRotate_Flag | | 471 InvertMapRectMatrixBench::kRotate_Flag | |
| 472 InvertMapRectMatrixBench::kTranslate_Flag); ) | 472 InvertMapRectMatrixBench::kTranslate_Flag); ) |
| 473 | 473 |
| 474 DEF_BENCH( return new ScaleTransMixedMatrixBench(p); ) | 474 DEF_BENCH( return new ScaleTransMixedMatrixBench(); ) |
| 475 DEF_BENCH( return new ScaleTransDoubleMatrixBench(p); ) | 475 DEF_BENCH( return new ScaleTransDoubleMatrixBench(); ) |
| OLD | NEW |