History log of /external/skia/bench/MatrixBench.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f168b86d7fafc5c20c87bebc6fd393cb17e120ca 19-Jun-2014 tfarina <tfarina@chromium.org> Remove Sk prefix from some bench classes.

This idea came while commenting on
https://codereview.chromium.org/343583005/

Since SkBenchmark, SkBenchLogger and SkGMBench are not part of the Skia library,
they should not have the Sk prefix.

BUG=None
TEST=make all
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/347823004
/external/skia/bench/MatrixBench.cpp
cf44feb0e192f255d598fa9a3f81b70968c98305 03-Jun-2014 mtklein <mtklein@chromium.org> Clean up another silly race in benches when run concurrently.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/309193003
/external/skia/bench/MatrixBench.cpp
3361471a3504ecd0351ff70f4c42d8d6fee963d4 03-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Simplify benchmark internal API.

I'm not quite sure why I wrote such a convoluted API with setLoops()/getLoops().
This replaces it with a loops argument passed to onDraw().

This CL is largely mechanical translation from the old API to the new one.
MathBench used this->getLoops() outside onDraw(), which seems incorrect. I
fixed it.

BUG=
R=djsollen@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/99893003

git-svn-id: http://skia.googlecode.com/svn/trunk@12466 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
4b413c8bb123e42ca4b9c7bfa6bc2167283cb84c 25-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkFloatToScalar macro

BUG=
R=reed@google.com, djsollen@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/85463005

git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
644629c1c7913a43ced172b98d56e0f471bc348b 21-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement a benchmark for GrResourceCache

Adds "grresourcecache_add" and "grresourcecache_find" bench tests to test
GrResourceCache::add and GrResourceCache::find. The tests work only
with GPU backends, since GrResourceCache needs an GrGpu.

Modifies bench tests to override SkBenchmark::isSuitableFor(Backend)
function that specifies what kind of backend the test is inteded
for. This replaces the previous "fIsRendering" flag that would
indicate test that did no rendering.

Adds SkCanvas::getGrContext() call to get the GrContext that the
canvas ends up drawing to. The member function solves a common
use-case that is also used in the benchmark added here.

R=mtklein@google.com, bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/73643005

git-svn-id: http://skia.googlecode.com/svn/trunk@12334 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
410e6e80f00a6c660675c80904807a041c7b7d2a 13-Sep-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactoring: get rid of the SkBenchmark void* parameter.

While I was doing massive sed-ing, I also converted every bench to use DEF_BENCH instead of registering the ugly manual way.

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/23876006

git-svn-id: http://skia.googlecode.com/svn/trunk@11263 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
c289743864e2ab926a95e617a5cd1d29b26d1825 10-Sep-2013 mtklein@google.com <mtklein@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Major bench refactoring.
- Use FLAGS_.
- Remove outer repeat loop.
- Tune inner loop automatically.

BUG=skia:1590
R=epoger@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/23478013

git-svn-id: http://skia.googlecode.com/svn/trunk@11187 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
e0e7cfe44bb9d66d76120a79e5275c294bacaa22 09-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Change old PRG to be SkLCGRandom; change new one to SkRandom

The goal here is to get people to start using the new random number
generator, while leaving the old one in place so we don't have to
rebaseline GMs.

R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23576015

git-svn-id: http://skia.googlecode.com/svn/trunk@11169 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
6485b0be74f66587b51ca3c476b24b0e2674ca5b 06-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Switch out random number generator for tests, benches, samples.

This change makes tests, benches and samples use the new SkMWCRandom PRNG. GMs will be saved for another time, as they'll require rebaselining.

R=reed@google.com, bsalomon@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23653018

git-svn-id: http://skia.googlecode.com/svn/trunk@11136 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
5b2e2640ed345c4670b99b349f62eb6f9446ec1e 03-Sep-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revise SVD code to remove arctangents.
Also added bench for timing matrix decomposition.

R=reed@google.com

Author: jvanverth@google.com

Review URL: https://chromiumcodereview.appspot.com/23596006

git-svn-id: http://skia.googlecode.com/svn/trunk@11066 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
7731eada5bfeb14db403cfee5c1439198c39a05b 05-Apr-2013 tfarina@chromium.org <tfarina@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix more clang errors.

Fixed -Wunused-private-field errors.

R=reed@google.com,bsalomon@google.com

Review URL: https://codereview.chromium.org/13474012

git-svn-id: http://skia.googlecode.com/svn/trunk@8547 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
77472f06f88b85e85fb690584c85d0a42e74b685 05-Mar-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Bench : Unused parameters cleanup

I removed unused parameters in bench wherever it was trivial to do so.
Review URL: https://codereview.appspot.com/7411046

git-svn-id: http://skia.googlecode.com/svn/trunk@7988 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
90533be035236c9ff0fc3a9944eae2ec160bc60d 04-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add matrixbench for invert_translate



git-svn-id: http://skia.googlecode.com/svn/trunk@7015 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
82bf8bbcbcd27ca35c24f0eae9f68183619af26f 04-Jan-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use DEF_BENCH to simplify registration



git-svn-id: http://skia.googlecode.com/svn/trunk@7012 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
31f8f73e83fad2241b1350d8d253c170e96e46ff 17-Sep-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixed valgrind complaint in MatrixBench

https://codereview.appspot.com/6492129/



git-svn-id: http://skia.googlecode.com/svn/trunk@5566 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
9dc2713fc4a75e7fbee2f985057fde680a07c7f0 13-Sep-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Let SkBenchmark classes specify that they do no rendering.
Doing this gives us a 15-20% speedup in bench cycle time.
Here again I'm just picking the easy targets.

http://codereview.appspot.com/6500115/



git-svn-id: http://skia.googlecode.com/svn/trunk@5525 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
fbfcd5602128ec010c82cb733c9cdc0a3254f9f3 23-Aug-2012 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)

This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
6fc5699e777c27c4eea9587a131aecf6e92a677a 12-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing type mask computation in SkMatrix to make it faster and make it so that matrices have the same type masks as their inverses.
This patch also add bench tests that call invert() followed by mapRect() on various types of matrices. Performance of these tests was greatly affected by typemask computation

Review URL: http://codereview.appspot.com/6380043/
BUG=https://code.google.com/p/chromium/issues/detail?id=135259



git-svn-id: http://skia.googlecode.com/svn/trunk@4562 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
3d3dfe011ca477ed96ccac2d1a293cd302fb245e 10-Nov-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixes int to scalar warnings. This checkin changes the range of random matrix values in a benchmark but it is believed not to affect the runtime.

Review URL: http://codereview.appspot.com/5371045/


git-svn-id: http://skia.googlecode.com/svn/trunk@2653 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
ca529d303e50072aa25405c651b16f96b5b3fa4b 28-Oct-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> In debug builds, only run each benchmark 1 time (test for assertion-breakage,
not performance).
codereview.appspot.com/5314064/



git-svn-id: http://skia.googlecode.com/svn/trunk@2552 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
820e80ad6390e120d4991a5280d0452ec87beaeb 24-Oct-2011 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some warnings on VS2010
Review URL: http://codereview.appspot.com/5312051/



git-svn-id: http://skia.googlecode.com/svn/trunk@2520 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e 28-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Automatic update of all copyright notices to reflect new license terms.

I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
f5f83e1f7ed75d6ed74669c6af23de8510d8b723 24-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix bad merge which broke compiles.



git-svn-id: http://skia.googlecode.com/svn/trunk@1716 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
317d540409bc1d246a272b7f61ffba0097c4bd29 24-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New benchmark for SkMatrix::computeType().
Utility function in SkMatrix to make benchmarking more accurate.



git-svn-id: http://skia.googlecode.com/svn/trunk@1710 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
20809009855e9ff683af5eef0dabbe1a500f9c3a 08-Jun-2011 bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix scale metric bench.


git-svn-id: http://skia.googlecode.com/svn/trunk@1549 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
288ff33d06776d6b105f8056af30191510ca0e3f 07-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> New benchmarks to determine performance of matrix-point multiplication for floating point vs. double matrices.

Over-the-shoulder review by reed@.



git-svn-id: http://skia.googlecode.com/svn/trunk@1525 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
cbefd7d842945a8a7cc21770b19f41e0f3f3b205 06-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add internal multiplier for loopcount, to reduce variance for simple/fast tests



git-svn-id: http://skia.googlecode.com/svn/trunk@1510 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
e0dcde73991a13be48f2aed9829d5e744d7fe508 06-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make concat_float distinguishable using -match
init our float/double arrays, so we get reliable timings (NaNs are slow)



git-svn-id: http://skia.googlecode.com/svn/trunk@1509 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
a20416b010068df452fbfb1d2ccec9c855ae3dcc 03-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove warnings, improve benchmark quality, complicate benchmark results:
- data on heap instead of stack
- more closely match operations of actual SkMatrix::setConcat()
- avoid random perturbations, do_always;
use perf annotate to verify that assembly isn't getting optimized away



git-svn-id: http://skia.googlecode.com/svn/trunk@1500 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
7b4e1073226e07d279d6f28883f8aa4b27ade183 03-Jun-2011 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> <body onunload="M_unloadPage();">

<!-- Begin help window -->
<script type="text/javascript"><!--
var xsrfToken = 'dd5d1a57ca1d5440593050fdc596d377';
var helpDisplayed = false;
document.onclick = M_clickCommon;
var media_url = "/static/";
var base_url = "/";

var publish_link = "/4571045/publish";

// -->
</script>
<div id="help" style="display: none;">

<div style="font-size: medium; text-align: center;">Keyboard Shortcuts</div>
<hr>
<table width="100%">

<tbody><tr valign="top">
<td>
<table width="100%">
<tbody><tr>
<td></td><th>File</th>
</tr>
<tr>
<td class="shortcut"><span class="letter">u</span> <b>:</b></td><td>up to issue</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">m</span> <b>:</b></td><td>publish + mail comments</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">M</span> <b>:</b></td><td>edit review message</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to file after / before current file</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">J</span> / <span class="letter">K</span> <b>:</b></td><td>jump to next file with a comment after / before current file</td>
</tr>
<tr>
<td></td><th>Side-by-side diff</th>
</tr>
<tr>
<td class="shortcut"><span class="letter">i</span> <b>:</b></td><td>toggle intra-line diffs</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">e</span> <b>:</b></td><td>expand all comments</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">c</span> <b>:</b></td><td>collapse all comments</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">s</span> <b>:</b></td><td>toggle showing all comments</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">n</span> / <span class="letter">p</span> <b>:</b></td><td>next / previous diff chunk or comment</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">N</span> / <span class="letter">P</span> <b>:</b></td><td>next / previous comment</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>respond to / edit current comment</td>
</tr>
</tbody></table>
</td>
<td>
<table width="100%">
<tbody><tr>
<td></td><th>Issue</th>
</tr>
<tr>
<td class="shortcut"><span class="letter">u</span> <b>:</b></td><td>up to list of issues</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">m</span> <b>:</b></td><td>publish + mail comments</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to patch after / before current patch</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">o</span> / <span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>open current patch in side-by-side view</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">i</span> <b>:</b></td><td>open current patch in unified diff view</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr><td></td><th>Issue List</th></tr>
<tr>
<td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to issue after / before current issue</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">o</span> / <span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>open current issue</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">#</span> <b>:</b></td>
<td>close issue</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td></td><th>Comment/message editing</th>
</tr>
<tr>
<td class="shortcut"><span class="letter">&lt;Ctrl&gt;</span> + <span class="letter">s</span> <b>:</b></td><td>save comment</td>
</tr>
<tr>
<td class="shortcut"><span class="letter">&lt;Esc&gt;</span> <b>:</b></td><td>cancel edit</td>
</tr>
</tbody></table>
</td>
</tr>

</tbody></table>
</div>
<!-- End help window -->

<div align="right">

<div style="float:left; font-weight:bold"><i>Rietveld</i> Code Review Tool</div>


<b>tomhudson@google.com (TomH)</b>
|

<a class="novisit" href="/settings">Settings</a>
|


<a class="novisit" target="_blank" href="http://code.google.com/p/rietveld/wiki/CodeReviewHelp">Help</a>
|
<a class="novisit" target="_blank" href="http://code.google.com/p/rietveld/issues/list">Bug tracker</a>
|
<a class="novisit" target="_blank" href="http://groups.google.com/group/codereview-discuss">Discussion group</a>
|
<a class="novisit" target="_blank" href="http://code.google.com/p/rietveld">Source code</a>
|

<a class="novisit" href="http://codereview.appspot.com/_ah/logout?continue=https://www.google.com/accounts/Logout%3Fcontinue%3Dhttps://appengine.google.com/_ah/logout%253Fcontinue%253Dhttp://codereview.appspot.com/4571045/%26service%3Dah">Sign out</a>

</div>

<div class="counter">(691)</div>
<div class="mainmenu">

<a href="/" class="active">Issues</a>
<a href="/repos">Repositories</a>
<a href="/search">Search</a>

</div>
<div class="mainmenu2">



<a href="/use_uploadpy">Create Issue</a>

|
<a href="/mine">My Issues</a>
|
<a href="/starred">Starred</a>
|
<a href="/all">Open</a>
|
<a href="/all?closed=1">All</a>


</div>

<div>

<h2>
<span id="issue-star-4571045">


<a href="javascript:M_addIssueStar(4571045)">
<img src="/static/star-dark.gif" width="15" height="15" border="0"></a>


</span>


<span class="issue-close" id="issue-close-4571045">
<a href="javascript:M_closeIssue(4571045)">
<img src="/static/close.gif" title="Close This Issue" width="15" height="15" border="0"></a>
</span>

Issue <a href="/4571045/" onmouseover="M_showPopUp(this, 'popup-issue');">
4571045</a>:
New matrix benchmarks to evaluate ::setConcat implementation options
</h2>

<table class="issue-details" border="0" width="100%">
<tbody><tr valign="top">

<td class="meta" width="20%">

<div>

<a class="novisit" href="/4571045/edit">
Edit Issue
</a>

<br>

<a class="novisit" href="/4571045/publish">
Publish+Mail Comments
</a> ('m')


<br>
<a class="novisit" href="/4571045/diff/1/bench/MatrixBench.cpp">
<b>Start Review</b>
</a>

</div>

<div class="issue_details_sidebar">
<div><b>Created:</b><br>
16 minutes ago by me
</div>
<div><b>Modified:</b><br>
0 minutes ago
</div>
<div><b>Reviewers:</b><br>
<a href="/user/reed1" onmouseover="M_showUserInfoPopup(this)">reed1</a>
</div>
<div><b>CC:</b><br>

</div>
<div><b>Base URL:</b><br>
http://skia.googlecode.com/svn/trunk/
</div>
<div><b>Visibility:</b><br>

Public.

</div>
</div>
</td>

<td style="padding-left: .8em; padding-right: .8em;" width="80%">





<h3><a id="issue-description-pointer" href="javascript:M_toggleSection('issue-description')" class="toggled-section opentriangle">
Description</a></h3>
<div id="issue-description" style="margin-left:15px;">
<pre>On platforms that use Float (instead of Fixed), SkMatrix stores its internal
values as floats, but setConcat() needs extra precision and so uses doubles to
contain intermediate values.
These three benchmarks compare the speed of float-only, double-only, and
float-cast-to-double implementations of a chunk of code extracted from the
non-perspective case of setConcat().
</pre>
</div>




<h3>
<a id="ps-1-pointer" href="javascript:M_toggleSectionForPS('4571045', '1')" class="toggled-section opentriangle">
Patch Set 1

</a>
</h3>



<div id="ps-1" style="">

<div class="issue-list">

<div class="pagination">
<div style="float: left;">
<i>Created:</i> 16 minutes ago
</div>
<div style="float: right;">

<a href="/download/issue4571045_1.diff">
Download raw patch set</a>


</div>
<div style="clear:both;"></div>
</div>

<table id="queues" style="clear:both;">
<tbody><tr align="left">
<th colspan="2"></th>
<th>Unified diffs</th>
<th>Side-by-side diffs</th>
<th>Delta from patch set</th>
<th colspan="3">Stats</th>
<th>Patch</th>
</tr>


<tr name="patch">
<td class="first" width="14"><img src="/static/closedtriangle.gif" style="" width="12" height="9"></td>
<td style="white-space: nowrap">M </td>
<td>
<a class="noul" href="/4571045/patch/1/2">
bench/MatrixBench.cpp
</a>
</td>
<td>
<a class="noul" href="/4571045/diff/1/bench/MatrixBench.cpp">
View
</a>
</td>
<td style="white-space: nowrap">

</td>
<td style="white-space: nowrap">4 chunks</td>
<td style="white-space: nowrap">+114 lines, -3 lines</td>
<td style="white-space: nowrap">

0 comments


</td>
<td>
<a href="/download/issue4571045_1_2.diff" title="Download patch for bench/MatrixBench.cpp">
Download
</a>
</td>
</tr>


</tbody></table>
</div>


</div>









<h3>
<a id="messages-pointer" href="javascript:M_toggleSection('messages')" class="toggled-section opentriangle">
Messages
</a>
</h3>

<div><i>Total messages: 3</i></div>

<div id="messages">
<div style="margin-bottom: .5em;">
<a href="javascript:M_showAllComments('cl', 3)">
Expand All Messages</a>
|
<a href="javascript:M_hideAllComments('cl', 3)">
Collapse All Messages</a>
</div>


<div class="message " id="msg-agpjb2RlcmV2aWV3chwLEgVJc3N1ZRil_5YCDAsSB01lc3NhZ2UY6QcM" name="0">
<a name="msg-agpjb2RlcmV2aWV3chwLEgVJc3N1ZRil_5YCDAsSB01lc3NhZ2UY6QcM"></a>
<div class="header">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tbody><tr class="comment_title" onclick="M_switchChangelistComment(0)">
<td style="padding-left: 5px; white-space: nowrap;">
<b>me</b>
</td>
<td width="100%">
<table style="table-layout:fixed; white-space: nowrap;" width="100%">
<tbody><tr>
<td>
<div style="white-space: nowrap; overflow: hidden;" class="extra" id="cl-preview-0">

</div>
</td>
</tr>
</tbody></table>
</td>
<td align="right" style="white-space: nowrap; padding-right: 5px;">
13 minutes ago
</td>
</tr>
</tbody></table>
</div>

<div id="cl-comment-0" style="display: none;">
<div class="message-body">
<pre name="cl-message-0"></pre>
</div>
<div class="message-actions">

<a href="javascript:M_replyToMessage('0', '2011/06/03 18:57:35', 'TomH')" id="message-reply-href-0">Reply</a>
<textarea rows="7" cols="70" name="message" style="display:none"></textarea>
<div id="message-reply-0" style="display:none;"></div>

</div>
</div>

</div>

<div class="message " id="msg-agpjb2RlcmV2aWV3chwLEgVJc3N1ZRil_5YCDAsSB01lc3NhZ2UY0Q8M" name="1">
<a name="msg-agpjb2RlcmV2aWV3chwLEgVJc3N1ZRil_5YCDAsSB01lc3NhZ2UY0Q8M"></a>
<div class="header">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tbody><tr class="comment_title" onclick="M_switchChangelistComment(1)">
<td style="padding-left: 5px; white-space: nowrap;">
<b>reed1</b>
</td>
<td width="100%">
<table style="table-layout:fixed; white-space: nowrap;" width="100%">
<tbody><tr>
<td>
<div style="white-space: nowrap; overflow: hidden;" class="extra" id="cl-preview-1">
1. lets remove the "fix" from the function name. just muladdmul I think 2. we ...
</div>
</td>
</tr>
</tbody></table>
</td>
<td align="right" style="white-space: nowrap; padding-right: 5px;">
10 minutes ago
</td>
</tr>
</tbody></table>
</div>

<div id="cl-comment-1" style="display: none;">
<div class="message-body">
<pre name="cl-message-1">1. lets remove the "fix" from the function name. just muladdmul I think
2. we can remove the return, since it will be compiled away anyway
3. nice checkin comment!
4. what are the results like?</pre>
</div>
<div class="message-actions">

<a href="javascript:M_replyToMessage('1', '2011/06/03 19:00:39', 'reed1')" id="message-reply-href-1">Reply</a>
<textarea rows="7" cols="70" name="message" style="display:none"></textarea>
<div id="message-reply-1" style="display:none;"></div>

</div>
</div>

</div>

<div class="message " id="msg-agpjb2RlcmV2aWV3chwLEgVJc3N1ZRil_5YCDAsSB01lc3NhZ2UYuRcM" name="2">
<a name="msg-agpjb2RlcmV2aWV3chwLEgVJc3N1ZRil_5YCDAsSB01lc3NhZ2UYuRcM"></a>
<div class="header">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tbody><tr class="comment_title" onclick="M_switchChangelistComment(2)">
<td style="padding-left: 5px; white-space: nowrap;">
<b>me</b>
</td>
<td width="100%">
<table style="table-layout:fixed; white-space: nowrap;" width="100%">
<tbody><tr>
<td>
<div style="white-space: nowrap; overflow: hidden; visibility: hidden;" class="extra" id="cl-preview-2">
&gt; 4. what are the results like? For posterity: tomhudson@tomhudson-zx600-linux:/usr/local/google/src/skia3$ out/bench/bench -match matrix_concat -repeat 1000 ...
</div>
</td>
</tr>
</tbody></table>
</td>
<td align="right" style="white-space: nowrap; padding-right: 5px;">
0 minutes ago
</td>
</tr>
</tbody></table>
</div>

<div id="cl-comment-2">
<div class="message-body">
<pre name="cl-message-2">&gt; 4. what are the results like?

For posterity:

tomhudson@tomhudson-zx600-linux:/usr/local/google/src/skia3$ out/bench/bench
-match matrix_concat -repeat 1000
skia bench: alpha=0xFF antialias=1 filter=0
running bench [640 480] matrix_concat_double 8888: msecs = 0.79 565:
msecs = 0.79 GPU: msecs = 0.79
running bench [640 480] matrix_concat_floatdouble 8888: msecs = 0.97 565:
msecs = 0.97 GPU: msecs = 0.97
running bench [640 480] matrix_concat_float 8888: msecs = 0.74 565:
msecs = 0.73 GPU: msecs = 0.74</pre>
</div>
<div class="message-actions">

<a href="javascript:M_replyToMessage('2', '2011/06/03 19:11:06', 'TomH')" id="message-reply-href-2">Reply</a>
<textarea rows="7" cols="70" name="message" style="display:none"></textarea>
<div id="message-reply-2" style="display:none;"></div>

</div>
</div>

</div>


<div>
<a href="javascript:M_showAllComments('cl', 3)">
Expand All Messages</a>
|
<a href="javascript:M_hideAllComments('cl', 3)">
Collapse All Messages</a>
</div>

</div>



<script language="JavaScript" type="text/javascript">
<!--
document.onkeydown = M_changelistKeyDown;
var dashboardState = new M_DashboardState(window, 'patch', 'M_CLPatchMarker');
M_switchChangelistCommentByAnchor();
// -->
</script>



<div style="display:none;">
<form method="POST" action="/4571045/publish" id="message-reply-form">
<input type="hidden" name="xsrf_token" value="dd5d1a57ca1d5440593050fdc596d377">
<div></div>
<input type="hidden" name="subject" value="New matrix benchmarks to evaluate ::setConcat implementation options">
<input type="hidden" name="message_only" value="1">
<input type="submit" value="Send Message">
<input type="button" value="Discard" name="discard">
<input type="checkbox" name="send_mail" value="1" id="message-reply-send-mail" checked="checked">
<label>Send mail to reviewers</label>
</form>
</div>
<a id="resizer" class="resizer" style="display:none;cursor:pointer">
<img src="/static/zippyplus.gif">
</a>



</td>
</tr>
</tbody></table>

</div>


<div class="popup" id="popup-issue" style="left: 104px; top: 116px; visibility: hidden; ">
<b>Issue 4571045: New matrix benchmarks to evaluate ::setConcat implementation options
</b><br>
Created 16 minutes ago by me<br>
Modified 0 minutes ago<br>
Reviewers: reed1<br>
Base URL: http://skia.googlecode.com/svn/trunk/<br>
Comments: 0

</div>



<p></p>
<div style="float: left;">
<a target="_blank" href="http://code.google.com/appengine/"><img border="0" src="/static/appengine-noborder-120x30.gif" alt="Powered by Google App Engine"></a>
</div>

<div class="extra" style="font-size: 9pt; float: right; text-align: right;">
<div style="height:14px;">
<img src="/static/rss.gif" alt="RSS Feeds" width="14" height="14" align="top">
<a href="/rss/all">Recent Issues</a>

|
<a href="/rss/mine/TomH">My Issues</a>
|
<a href="/rss/reviews/TomH">My Reviews</a>
|
<a href="/rss/closed/TomH">My Closed</a>


|
<a href="/rss/issue/4571045">This issue</a>

</div>
<div style="margin-top: .3em;">This is Rietveld <a href="http://code.google.com/p/rietveld/updates/list">r756
</a></div>
</div>


<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4803694-4");
pageTracker._initData();
pageTracker._trackPageview();
</script>
On platforms that use Float (instead of Fixed), SkMatrix stores its internal
values as floats, but setConcat() needs extra precision and so uses doubles
to contain intermediate values.
These three benchmarks compare the speed of float-only, double-only, and
float-cast-to-double implementations of a chunk of code extracted from the
non-perspective case of setConcat().




git-svn-id: http://skia.googlecode.com/svn/trunk@1497 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp
3fb5187647397e056843c1f41a508992be22175d 01-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> speed-up SkMatrix::preScale by 3x, by special-casing it instead of just calling
concat. Inspired by the profile of the fishtank site



git-svn-id: http://skia.googlecode.com/svn/trunk@1462 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/bench/MatrixBench.cpp