Commit Graph

51 Commits

Author SHA1 Message Date
Leon Scroggins III
a4c8098aea Remove gendered language
Bug: chromium:1101491
Bug: b/161896447

Found using

  git grep -wiEIl \ '(he)|(she)|(his)|(hers)|(him)|(her)|(guy)|(guys)'

Change-Id: I6b91853de067fd4c2e84f7ec70275522ce6c8bfc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/306186
Commit-Queue: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-07-28 15:02:41 +00:00
Mike Reed
1f60733fb3 Revert "Revert "move onto new factories for SkMatrix""
This reverts commit c80ee456ad.

fix: update flutter's gn file to add guard

Change-Id: Iac5171c8475d9a862d06255dab1c6f38f10de2f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291361
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-21 16:58:39 +00:00
Mike Reed
c80ee456ad Revert "move onto new factories for SkMatrix"
This reverts commit 046c2b7d90.

Reason for revert: need to update/guard flutter

Original change's description:
> move onto new factories for SkMatrix
> 
> Just rename, no functional changes expected.
> 
> Change-Id: Id77ab1cf6b1cab35087a7c56000750912cf47383
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290831
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Florin Malita <fmalita@chromium.org>

TBR=fmalita@chromium.org,reed@google.com

Change-Id: Ic74f177128913374b8c60b4df88f04cf72fbacb3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/291359
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-05-21 16:05:20 +00:00
Mike Reed
046c2b7d90 move onto new factories for SkMatrix
Just rename, no functional changes expected.

Change-Id: Id77ab1cf6b1cab35087a7c56000750912cf47383
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/290831
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2020-05-21 15:04:09 +00:00
Mike Reed
92b33354dd more rect api simplifications
set --> setLTRB
set(pts, count) --> setBounds

Bug: skia:9328
Change-Id: I807c0598a8b23b2f721db118ec41c1607114205a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/237038
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-08-25 10:12:57 +00:00
Mike Klein
c0bd9f9fe5 rewrite includes to not need so much -Ifoo
Current strategy: everything from the top

Things to look at first are the manual changes:

   - added tools/rewrite_includes.py
   - removed -Idirectives from BUILD.gn
   - various compile.sh simplifications
   - tweak tools/embed_resources.py
   - update gn/find_headers.py to write paths from the top
   - update gn/gn_to_bp.py SkUserConfig.h layout
     so that #include "include/config/SkUserConfig.h" always
     gets the header we want.

No-Presubmit: true
Change-Id: I73a4b181654e0e38d229bc456c0d0854bae3363e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209706
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-24 16:27:11 +00:00
halcanary
c5769b2e49 Revert of Change mapRectScaleTranslate to pass args/ret by value (patchset #2 id:20001 of https://codereview.chromium.org/2138943002/ )
Reason for revert:
Build-Ubuntu-GCC-Arm7-Release-Android fails.

Original issue's description:
> Change mapRectScaleTranslate to pass args/ret by value
>
> This reverts commit 6092b6e0e5.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2138943002
>
> Committed: https://skia.googlesource.com/skia/+/1bd13ca922d6448d595064faee486eaf3fa56e56

TBR=mtklein@google.com,msarett@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2234843002
2016-08-10 07:13:21 -07:00
reed
1bd13ca922 Change mapRectScaleTranslate to pass args/ret by value
This reverts commit 6092b6e0e5.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2138943002

Review-Url: https://codereview.chromium.org/2138943002
2016-08-10 06:17:54 -07:00
reed
6092b6e0e5 Revert of change mapRectScaleTranslate to pass args/ret by value (patchset #1 id:1 of https://codereview.chromium.org/2137853002/ )
Reason for revert:
Triggered a compiler bug on Android?

FAILED: /usr/bin/ccache /b/work/skia/platform_tools/android/bin/../toolchains/arm-r11c-14/bin/arm-linux-androideabi-g++ -MMD -MF obj/src/core/core.SkMatrix.o.d -DSK_INTERNAL -DSK_GAMMA_APPLY_TO_A8 -DQT_NO_KEYWORDS -DSK_ALLOW_STATIC_GLOBAL_INITIALIZERS=0 -DSK_SUPPORT_GPU=1 -DSK_FORCE_DISTANCE_FIELD_TEXT=0 -DSK_HAS_GIF_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_TEST_QCMS -DSK_IS_BOT -DSK_CODEC_DECODES_RAW -DSK_ARM_HAS_NEON -DSK_BUILD_FOR_ANDROID -DSK_GAMMA_EXPONENT=1.4 -DSK_GAMMA_CONTRAST=0.0 -DSKIA_DLL -DSKIA_IMPLEMENTATION=1 -DSK_SUPPORT_LEGACY_CLIPTOLAYERFLAG -DNDEBUG -I../../../include/c -I../../../include/config -I../../../include/core -I../../../include/pathops -I../../../include/ports -I../../../include/private -I../../../include/utils -I../../../include/images -I../../../src/core -I../../../src/sfnt -I../../../src/image -I../../../src/opts -I../../../src/utils -I../../../include/gpu -I../../../src/gpu -I../../../platform_tools/android/third_party/cpufeatures -fPIC -g -fno-exceptions -fstrict-aliasing -Wall -Wextra -Winit-self -Wpointer-arith -Wsign-compare -Wvla -Wno-unused-parameter -Werror -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -fuse-ld=gold -O2 -std=c++11 -fno-rtti -fno-threadsafe-statics -Wnon-virtual-dtor  -c ../../../src/core/SkMatrix.cpp -o obj/src/core/core.SkMatrix.o
../../../src/core/SkMatrix.cpp: In member function 'SkRect SkMatrix::mapRectScaleTranslate(SkRect) const':
../../../src/core/SkMatrix.cpp:1120:1: error: unrecognizable insn:
 }
 ^
(insn 32 31 33 2 (set (reg:V4SF 115 [ D.83077 ])
        (unspec:V4SF [
                (mem/c:V4SF (reg/f:SI 104 virtual-incoming-args) [0 MEM[(const __builtin_neon_sf[4] *)&src]+0 S16 A32])
            ] UNSPEC_VLD1)) /b/work/skia/platform_tools/android/toolchains/arm-r11c-14/lib/gcc/arm-linux-androideabi/4.9/include/arm_neon.h:8693 -1
     (nil))
../../../src/core/SkMatrix.cpp:1120:1: internal compiler error: in extract_insn, at recog.c:2202
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://source.android.com/source/report-bugs.html> for instructions.

Original issue's description:
> change mapRectScaleTranslate to pass args/ret by value
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2137853002
>
> TBR=mtklein
>
> Committed: https://skia.googlesource.com/skia/+/14dce6ed5934d7a6e1fac79f8e76e12f5670aae2

TBR=msarett@google.com,mtklein@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2139523002
2016-07-10 11:45:35 -07:00
reed
14dce6ed59 change mapRectScaleTranslate to pass args/ret by value
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2137853002

TBR=mtklein

Review-Url: https://codereview.chromium.org/2137853002
2016-07-10 11:35:03 -07:00
reed
47df89ebfd speed up maprect for scale+trans case
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2111703002

Review-Url: https://codereview.chromium.org/2111703002
2016-06-30 06:38:54 -07:00
halcanary
9d524f22bf Style bikeshed - remove extraneous whitespace
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002

Review URL: https://codereview.chromium.org/1842753002
2016-03-29 09:03:53 -07:00
mtklein
a1ebeb25e9 Remove const from const int loops.
This drives me nuts, and prevents `while (loops --> 0)`.

BUG=skia:

Review URL: https://codereview.chromium.org/1379923005
2015-10-01 09:43:39 -07:00
joshualitt
8a6697af95 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
2015-09-30 12:11:07 -07:00
mtklein
f059900f75 Fix up -Winconsistent-missing-override
(and a couple presubmit fixes)

This allows us to turn back on -Werror for LLVM coverage builds,
and more generally supports building with Clang 3.7.

No public API changes.
TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1232463006
2015-07-13 06:18:39 -07:00
reed
7da19014fd use Sk4f for matrix math
Need to land SK_SUPPORT_LEGACY_SCALAR_MAPPOINTS in chrome to suppress Affine
version which causes slight differences (which will need to be rebaselined)

BUG=skia:

Review URL: https://codereview.chromium.org/1045493002
2015-03-29 11:58:48 -07:00
reed
d8b34c26c2 use table of procs (and unrolling) to speed up mapPts
BUG=skia:

Review URL: https://codereview.chromium.org/1040783002
2015-03-27 14:00:41 -07:00
mtklein
36352bf5e3 C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}
NOPRESUBMIT=true

BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002

Review URL: https://codereview.chromium.org/1037793002
2015-03-25 18:17:32 -07:00
reed
8010632f24 remove meaningless matrix benches, add mapPts() and add new benches
mapPts definitely faster than mapPoints (identity and perspective same speed). Up to 3x for large values of N.

cloned from https://codereview.chromium.org/1031443002/

BUG=skia:

Review URL: https://codereview.chromium.org/1030653002
2015-03-23 08:15:14 -07:00
mtklein
72c9faab45 Fix up all the easy virtual ... SK_OVERRIDE cases.
This fixes every case where virtual and SK_OVERRIDE were on the same line,
which should be the bulk of cases.  We'll have to manually clean up the rest
over time unless I level up in regexes.

for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end

BUG=skia:

Review URL: https://codereview.chromium.org/806653007
2015-01-09 10:06:40 -08:00
tfarina
f168b86d7f 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
2014-06-19 12:32:29 -07:00
mtklein
cf44feb0e1 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
2014-06-02 18:22:12 -07:00
commit-bot@chromium.org
3361471a35 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
2013-12-03 18:17:16 +00:00
commit-bot@chromium.org
4b413c8bb1 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
2013-11-25 19:44:07 +00:00
commit-bot@chromium.org
644629c1c7 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
2013-11-21 06:21:58 +00:00
mtklein@google.com
410e6e80f0 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
2013-09-13 19:52:27 +00:00
mtklein@google.com
c289743864 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
2013-09-10 19:23:38 +00:00
commit-bot@chromium.org
e0e7cfe44b 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
2013-09-09 20:09:12 +00:00
commit-bot@chromium.org
6485b0be74 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
2013-09-06 19:05:11 +00:00
commit-bot@chromium.org
5b2e2640ed 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
2013-09-03 19:08:14 +00:00
tfarina@chromium.org
7731eada5b 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
2013-04-05 21:13:14 +00:00
sugoi@google.com
77472f06f8 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
2013-03-05 18:50:01 +00:00
reed@google.com
90533be035 add matrixbench for invert_translate
git-svn-id: http://skia.googlecode.com/svn/trunk@7015 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-04 15:46:42 +00:00
reed@google.com
82bf8bbcbc use DEF_BENCH to simplify registration
git-svn-id: http://skia.googlecode.com/svn/trunk@7012 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-04 14:04:08 +00:00
robertphillips@google.com
31f8f73e83 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
2012-09-17 13:36:47 +00:00
tomhudson@google.com
9dc2713fc4 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
2012-09-13 15:50:24 +00:00
rmistry@google.com
fbfcd56021 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
2012-08-23 18:09:54 +00:00
junov@chromium.org
6fc5699e77 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
2012-07-12 14:01:32 +00:00
bsalomon@google.com
3d3dfe011c 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
2011-11-10 13:50:19 +00:00
tomhudson@google.com
ca529d303e 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
2011-10-28 15:34:49 +00:00
bsalomon@google.com
820e80ad63 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
2011-10-24 21:09:40 +00:00
epoger@google.com
ec3ed6a5eb 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
2011-07-28 14:26:00 +00:00
tomhudson@google.com
f5f83e1f7e Fix bad merge which broke compiles.
git-svn-id: http://skia.googlecode.com/svn/trunk@1716 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-24 19:15:57 +00:00
tomhudson@google.com
317d540409 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
2011-06-24 18:30:49 +00:00
bungeman@google.com
2080900985 Fix scale metric bench.
git-svn-id: http://skia.googlecode.com/svn/trunk@1549 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-06-08 19:38:53 +00:00
tomhudson@google.com
288ff33d06 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
2011-06-07 14:31:38 +00:00
reed@google.com
cbefd7d842 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
2011-06-06 13:31:30 +00:00
reed@google.com
e0dcde7399 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
2011-06-06 13:20:29 +00:00
tomhudson@google.com
a20416b010 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
2011-06-03 20:32:58 +00:00
tomhudson@google.com
7b4e107322 <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
2011-06-03 19:16:56 +00:00