Matrix44Bench.cpp revision 950457543860eb1c545e0ef8bb2c20e2ddc6196e
17d68335eb427547606497eb4edea81acce7891f9reed@google.com/* 27d68335eb427547606497eb4edea81acce7891f9reed@google.com * Copyright 2012 Google Inc. 37d68335eb427547606497eb4edea81acce7891f9reed@google.com * 47d68335eb427547606497eb4edea81acce7891f9reed@google.com * Use of this source code is governed by a BSD-style license that can be 57d68335eb427547606497eb4edea81acce7891f9reed@google.com * found in the LICENSE file. 67d68335eb427547606497eb4edea81acce7891f9reed@google.com */ 77d68335eb427547606497eb4edea81acce7891f9reed@google.com 87d68335eb427547606497eb4edea81acce7891f9reed@google.com#include "SkBenchmark.h" 97d68335eb427547606497eb4edea81acce7891f9reed@google.com#include "SkMatrix44.h" 107d68335eb427547606497eb4edea81acce7891f9reed@google.com#include "SkRandom.h" 117d68335eb427547606497eb4edea81acce7891f9reed@google.com#include "SkString.h" 127d68335eb427547606497eb4edea81acce7891f9reed@google.com 137d68335eb427547606497eb4edea81acce7891f9reed@google.comclass Matrix44Bench : public SkBenchmark { 147d68335eb427547606497eb4edea81acce7891f9reed@google.com SkString fName; 157d68335eb427547606497eb4edea81acce7891f9reed@google.com enum { N = 10000 }; 167d68335eb427547606497eb4edea81acce7891f9reed@google.compublic: 177d68335eb427547606497eb4edea81acce7891f9reed@google.com Matrix44Bench(void* param, const char name[]) : INHERITED(param) { 187d68335eb427547606497eb4edea81acce7891f9reed@google.com fName.printf("matrix44_%s", name); 197d68335eb427547606497eb4edea81acce7891f9reed@google.com fIsRendering = false; 207d68335eb427547606497eb4edea81acce7891f9reed@google.com } 217d68335eb427547606497eb4edea81acce7891f9reed@google.com 227d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual void performTest() = 0; 237d68335eb427547606497eb4edea81acce7891f9reed@google.com 247d68335eb427547606497eb4edea81acce7891f9reed@google.comprotected: 257d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual int mulLoopCount() const { return 1; } 267d68335eb427547606497eb4edea81acce7891f9reed@google.com 277d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual const char* onGetName() { 287d68335eb427547606497eb4edea81acce7891f9reed@google.com return fName.c_str(); 297d68335eb427547606497eb4edea81acce7891f9reed@google.com } 307d68335eb427547606497eb4edea81acce7891f9reed@google.com 3177472f06f88b85e85fb690584c85d0a42e74b685sugoi@google.com virtual void onDraw(SkCanvas*) { 327d68335eb427547606497eb4edea81acce7891f9reed@google.com int n = SkBENCHLOOP(N * this->mulLoopCount()); 337d68335eb427547606497eb4edea81acce7891f9reed@google.com for (int i = 0; i < n; i++) { 347d68335eb427547606497eb4edea81acce7891f9reed@google.com this->performTest(); 357d68335eb427547606497eb4edea81acce7891f9reed@google.com } 367d68335eb427547606497eb4edea81acce7891f9reed@google.com } 377d68335eb427547606497eb4edea81acce7891f9reed@google.com 387d68335eb427547606497eb4edea81acce7891f9reed@google.comprivate: 397d68335eb427547606497eb4edea81acce7891f9reed@google.com typedef SkBenchmark INHERITED; 407d68335eb427547606497eb4edea81acce7891f9reed@google.com}; 417d68335eb427547606497eb4edea81acce7891f9reed@google.com 427d68335eb427547606497eb4edea81acce7891f9reed@google.comclass EqualsMatrix44Bench : public Matrix44Bench { 437d68335eb427547606497eb4edea81acce7891f9reed@google.compublic: 447d68335eb427547606497eb4edea81acce7891f9reed@google.com EqualsMatrix44Bench(void* param) : INHERITED(param, "equals") { 457d68335eb427547606497eb4edea81acce7891f9reed@google.com fM1.set(0, 0, 0); 467d68335eb427547606497eb4edea81acce7891f9reed@google.com fM2.set(3, 3, 0); 477d68335eb427547606497eb4edea81acce7891f9reed@google.com } 487d68335eb427547606497eb4edea81acce7891f9reed@google.comprotected: 497d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual void performTest() { 507d68335eb427547606497eb4edea81acce7891f9reed@google.com for (int i = 0; i < 10; ++i) { 5105af1afd429808913683da75644e48bece12e820humper@google.com (void) (fM0 == fM1); 5205af1afd429808913683da75644e48bece12e820humper@google.com (void) (fM1 == fM2); 5305af1afd429808913683da75644e48bece12e820humper@google.com (void) (fM2 == fM0); 547d68335eb427547606497eb4edea81acce7891f9reed@google.com } 557d68335eb427547606497eb4edea81acce7891f9reed@google.com } 567d68335eb427547606497eb4edea81acce7891f9reed@google.comprivate: 577d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMatrix44 fM0, fM1, fM2; 587d68335eb427547606497eb4edea81acce7891f9reed@google.com typedef Matrix44Bench INHERITED; 597d68335eb427547606497eb4edea81acce7891f9reed@google.com}; 607d68335eb427547606497eb4edea81acce7891f9reed@google.com 617d68335eb427547606497eb4edea81acce7891f9reed@google.comclass PreScaleMatrix44Bench : public Matrix44Bench { 627d68335eb427547606497eb4edea81acce7891f9reed@google.compublic: 637d68335eb427547606497eb4edea81acce7891f9reed@google.com PreScaleMatrix44Bench(void* param) : INHERITED(param, "prescale") { 647d68335eb427547606497eb4edea81acce7891f9reed@google.com fX = fY = fZ = SkDoubleToMScalar(1.5); 657d68335eb427547606497eb4edea81acce7891f9reed@google.com } 667d68335eb427547606497eb4edea81acce7891f9reed@google.comprotected: 677d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual void performTest() { 687d68335eb427547606497eb4edea81acce7891f9reed@google.com fM0.reset(); 697d68335eb427547606497eb4edea81acce7891f9reed@google.com for (int i = 0; i < 10; ++i) { 707d68335eb427547606497eb4edea81acce7891f9reed@google.com fM0.preScale(fX, fY, fZ); 717d68335eb427547606497eb4edea81acce7891f9reed@google.com } 727d68335eb427547606497eb4edea81acce7891f9reed@google.com } 737d68335eb427547606497eb4edea81acce7891f9reed@google.comprivate: 747d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMatrix44 fM0; 757d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMScalar fX, fY, fZ; 767d68335eb427547606497eb4edea81acce7891f9reed@google.com typedef Matrix44Bench INHERITED; 777d68335eb427547606497eb4edea81acce7891f9reed@google.com}; 787d68335eb427547606497eb4edea81acce7891f9reed@google.com 799973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.comclass InvertMatrix44Bench : public Matrix44Bench { 809973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.compublic: 819973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com InvertMatrix44Bench(void* param) : INHERITED(param, "invert") { 82950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 0, -1.1); 83950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 1, 2.1); 84950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 2, -3.1); 85950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 3, 4.1); 86950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 0, 5.1); 87950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 1, -6.1); 88950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 2, 7.1); 89950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 3, 8.1); 90950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 0, -9.1); 91950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 1, 10.1); 92950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 2, 11.1); 93950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 3, -12.1); 94950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(3, 0, -13.1); 95950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(3, 1, 14.1); 96950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(3, 2, -15.1); 97950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(3, 3, 16.1); 98950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 99950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgprotected: 100950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org virtual void performTest() { 101950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org for (int i = 0; i < 10; ++i) { 102950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.invert(&fM1); 103950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 104950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 105950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgprivate: 106950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org SkMatrix44 fM0, fM1; 107950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org typedef Matrix44Bench INHERITED; 108950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org}; 109950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org 110950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgclass InvertAffineMatrix44Bench : public Matrix44Bench { 111950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgpublic: 112950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org InvertAffineMatrix44Bench(void* param) : INHERITED(param, "invertaffine") { 113950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 0, -1.1); 114950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 1, 2.1); 115950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 2, -3.1); 116950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 3, 4.1); 117950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 0, 5.1); 118950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 1, -6.1); 119950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 2, 7.1); 120950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 3, 8.1); 121950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 0, -9.1); 122950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 1, 10.1); 123950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 2, 11.1); 124950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 3, -12.1); 125950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org // bottom row (perspective component) remains (0, 0, 0, 1). 126950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 127950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgprotected: 128950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org virtual void performTest() { 129950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org for (int i = 0; i < 10; ++i) { 130950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.invert(&fM1); 131950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 132950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 133950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgprivate: 134950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org SkMatrix44 fM0, fM1; 135950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org typedef Matrix44Bench INHERITED; 136950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org}; 137950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org 138950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgclass InvertScaleTranslateMatrix44Bench : public Matrix44Bench { 139950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgpublic: 140950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org InvertScaleTranslateMatrix44Bench(void* param) : INHERITED(param, "invertscaletranslate") { 141950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 0, -1.1); 142950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 3, 4.1); 143950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org 144950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 1, -6.1); 145950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 3, 8.1); 146950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org 147950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 2, 11.1); 148950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 3, -12.1); 149950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 150950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgprotected: 151950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org virtual void performTest() { 152950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org for (int i = 0; i < 10; ++i) { 153950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.invert(&fM1); 154950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 155950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org } 156950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgprivate: 157950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org SkMatrix44 fM0, fM1; 158950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org typedef Matrix44Bench INHERITED; 159950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org}; 160950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org 161950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgclass InvertTranslateMatrix44Bench : public Matrix44Bench { 162950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgpublic: 163950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org InvertTranslateMatrix44Bench(void* param) : INHERITED(param, "inverttranslate") { 164950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(0, 3, 4.1); 165950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(1, 3, 8.1); 166950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.org fM0.set(2, 3, -12.1); 1679973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com } 1689973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.comprotected: 1699973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com virtual void performTest() { 1709973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com for (int i = 0; i < 10; ++i) { 1719973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com fM0.invert(&fM1); 1729973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com } 1739973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com } 1749973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.comprivate: 1759973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com SkMatrix44 fM0, fM1; 1769973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com typedef Matrix44Bench INHERITED; 1779973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com}; 1789973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.com 1797d68335eb427547606497eb4edea81acce7891f9reed@google.comclass PostScaleMatrix44Bench : public Matrix44Bench { 1807d68335eb427547606497eb4edea81acce7891f9reed@google.compublic: 1817d68335eb427547606497eb4edea81acce7891f9reed@google.com PostScaleMatrix44Bench(void* param) : INHERITED(param, "postscale") { 1827d68335eb427547606497eb4edea81acce7891f9reed@google.com fX = fY = fZ = SkDoubleToMScalar(1.5); 1837d68335eb427547606497eb4edea81acce7891f9reed@google.com } 1847d68335eb427547606497eb4edea81acce7891f9reed@google.comprotected: 1857d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual void performTest() { 1867d68335eb427547606497eb4edea81acce7891f9reed@google.com fM0.reset(); 1877d68335eb427547606497eb4edea81acce7891f9reed@google.com for (int i = 0; i < 10; ++i) { 1887d68335eb427547606497eb4edea81acce7891f9reed@google.com fM0.postScale(fX, fY, fZ); 1897d68335eb427547606497eb4edea81acce7891f9reed@google.com } 1907d68335eb427547606497eb4edea81acce7891f9reed@google.com } 1917d68335eb427547606497eb4edea81acce7891f9reed@google.comprivate: 1927d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMatrix44 fM0; 1937d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMScalar fX, fY, fZ; 1947d68335eb427547606497eb4edea81acce7891f9reed@google.com typedef Matrix44Bench INHERITED; 1957d68335eb427547606497eb4edea81acce7891f9reed@google.com}; 1967d68335eb427547606497eb4edea81acce7891f9reed@google.com 1977d68335eb427547606497eb4edea81acce7891f9reed@google.comclass SetConcatMatrix44Bench : public Matrix44Bench { 1987d68335eb427547606497eb4edea81acce7891f9reed@google.compublic: 1997d68335eb427547606497eb4edea81acce7891f9reed@google.com SetConcatMatrix44Bench(void* param) : INHERITED(param, "setconcat") { 2007d68335eb427547606497eb4edea81acce7891f9reed@google.com fX = fY = fZ = SkDoubleToMScalar(1.5); 2017d68335eb427547606497eb4edea81acce7891f9reed@google.com fM1.setScale(fX, fY, fZ); 2027d68335eb427547606497eb4edea81acce7891f9reed@google.com fM2.setTranslate(fX, fY, fZ); 2037d68335eb427547606497eb4edea81acce7891f9reed@google.com } 2047d68335eb427547606497eb4edea81acce7891f9reed@google.comprotected: 2057d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual void performTest() { 2067d68335eb427547606497eb4edea81acce7891f9reed@google.com fM0.reset(); // just to normalize this test with prescale/postscale 2077d68335eb427547606497eb4edea81acce7891f9reed@google.com for (int i = 0; i < 10; ++i) { 2087d68335eb427547606497eb4edea81acce7891f9reed@google.com fM0.setConcat(fM1, fM2); 2097d68335eb427547606497eb4edea81acce7891f9reed@google.com } 2107d68335eb427547606497eb4edea81acce7891f9reed@google.com } 2117d68335eb427547606497eb4edea81acce7891f9reed@google.comprivate: 2127d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMatrix44 fM0, fM1, fM2; 2137d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMScalar fX, fY, fZ; 2147d68335eb427547606497eb4edea81acce7891f9reed@google.com typedef Matrix44Bench INHERITED; 2157d68335eb427547606497eb4edea81acce7891f9reed@google.com}; 2167d68335eb427547606497eb4edea81acce7891f9reed@google.com 2177d68335eb427547606497eb4edea81acce7891f9reed@google.comclass GetTypeMatrix44Bench : public Matrix44Bench { 2187d68335eb427547606497eb4edea81acce7891f9reed@google.compublic: 2197d68335eb427547606497eb4edea81acce7891f9reed@google.com GetTypeMatrix44Bench(void* param) : INHERITED(param, "gettype") {} 2207d68335eb427547606497eb4edea81acce7891f9reed@google.comprotected: 2217d68335eb427547606497eb4edea81acce7891f9reed@google.com // Putting random generation of the matrix inside performTest() 2227d68335eb427547606497eb4edea81acce7891f9reed@google.com // would help us avoid anomalous runs, but takes up 25% or 2237d68335eb427547606497eb4edea81acce7891f9reed@google.com // more of the function time. 2247d68335eb427547606497eb4edea81acce7891f9reed@google.com virtual void performTest() { 2257d68335eb427547606497eb4edea81acce7891f9reed@google.com for (int i = 0; i < 20; ++i) { 2267d68335eb427547606497eb4edea81acce7891f9reed@google.com fMatrix.set(1, 2, 1); // to invalidate the type-cache 2277d68335eb427547606497eb4edea81acce7891f9reed@google.com fMatrix.getType(); 2287d68335eb427547606497eb4edea81acce7891f9reed@google.com } 2297d68335eb427547606497eb4edea81acce7891f9reed@google.com } 2307d68335eb427547606497eb4edea81acce7891f9reed@google.comprivate: 2317d68335eb427547606497eb4edea81acce7891f9reed@google.com SkMatrix44 fMatrix; 2327d68335eb427547606497eb4edea81acce7891f9reed@google.com typedef Matrix44Bench INHERITED; 2337d68335eb427547606497eb4edea81acce7891f9reed@google.com}; 2347d68335eb427547606497eb4edea81acce7891f9reed@google.com 2357d68335eb427547606497eb4edea81acce7891f9reed@google.comDEF_BENCH( return new EqualsMatrix44Bench(p); ) 2367d68335eb427547606497eb4edea81acce7891f9reed@google.comDEF_BENCH( return new PreScaleMatrix44Bench(p); ) 2377d68335eb427547606497eb4edea81acce7891f9reed@google.comDEF_BENCH( return new PostScaleMatrix44Bench(p); ) 2389973a8a396957afb66c9ba5ee40f829770619ce3tomhudson@google.comDEF_BENCH( return new InvertMatrix44Bench(p); ) 239950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgDEF_BENCH( return new InvertAffineMatrix44Bench(p); ) 240950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgDEF_BENCH( return new InvertScaleTranslateMatrix44Bench(p); ) 241950457543860eb1c545e0ef8bb2c20e2ddc6196ecommit-bot@chromium.orgDEF_BENCH( return new InvertTranslateMatrix44Bench(p); ) 2427d68335eb427547606497eb4edea81acce7891f9reed@google.comDEF_BENCH( return new SetConcatMatrix44Bench(p); ) 2437d68335eb427547606497eb4edea81acce7891f9reed@google.comDEF_BENCH( return new GetTypeMatrix44Bench(p); ) 244