aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/Matrix44Bench.cpp
diff options
context:
space:
mode:
authorGravatar tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-12-13 09:55:42 +0000
committerGravatar tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-12-13 09:55:42 +0000
commit9973a8a396957afb66c9ba5ee40f829770619ce3 (patch)
tree6e047c60909575ce0c873e1700d505feb50ea174 /bench/Matrix44Bench.cpp
parent306ab9d5de38f2a547fd1d69aedbe69b5c6617cc (diff)
Matrix inversion optimizations and benchmark; originally by whunt@google.com.
Diffstat (limited to 'bench/Matrix44Bench.cpp')
-rw-r--r--bench/Matrix44Bench.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/bench/Matrix44Bench.cpp b/bench/Matrix44Bench.cpp
index f10870c143..653f2b2134 100644
--- a/bench/Matrix44Bench.cpp
+++ b/bench/Matrix44Bench.cpp
@@ -76,6 +76,37 @@ private:
typedef Matrix44Bench INHERITED;
};
+class InvertMatrix44Bench : public Matrix44Bench {
+public:
+ InvertMatrix44Bench(void* param) : INHERITED(param, "invert") {
+ fM0.set(0, 0, -1.1);
+ fM0.set(0, 1, 2.1);
+ fM0.set(0, 2, -3.1);
+ fM0.set(0, 3, 4.1);
+ fM0.set(1, 0, 5.1);
+ fM0.set(1, 1, -6.1);
+ fM0.set(1, 2, 7.1);
+ fM0.set(1, 3, 8.1);
+ fM0.set(2, 0, -9.1);
+ fM0.set(2, 1, 10.1);
+ fM0.set(2, 2, 11.1);
+ fM0.set(2, 3, -12.1);
+ fM0.set(3, 0, -13.1);
+ fM0.set(3, 1, 14.1);
+ fM0.set(3, 2, -15.1);
+ fM0.set(3, 3, 16.1);
+ }
+protected:
+ virtual void performTest() {
+ for (int i = 0; i < 10; ++i) {
+ fM0.invert(&fM1);
+ }
+ }
+private:
+ SkMatrix44 fM0, fM1;
+ typedef Matrix44Bench INHERITED;
+};
+
class PostScaleMatrix44Bench : public Matrix44Bench {
public:
PostScaleMatrix44Bench(void* param) : INHERITED(param, "postscale") {
@@ -135,6 +166,7 @@ private:
DEF_BENCH( return new EqualsMatrix44Bench(p); )
DEF_BENCH( return new PreScaleMatrix44Bench(p); )
DEF_BENCH( return new PostScaleMatrix44Bench(p); )
+DEF_BENCH( return new InvertMatrix44Bench(p); )
DEF_BENCH( return new SetConcatMatrix44Bench(p); )
DEF_BENCH( return new GetTypeMatrix44Bench(p); )