tfarina
a8e2e1504b
Cleanup: Rename SkOSPath functions.
...
Mostly for brevity and matches better with Python:
Python | Old C++ | New C++
os.path.join | SkOSPath::SkPathJoin | SkOSPath::Join
os.path.basename | SkOSPath::SkBasename | SkOSPath::Basename
BUG=None
TEST=make all
R=mtklein@google.com , bsalomon@google.com
Author: tfarina@chromium.org
Review URL: https://codereview.chromium.org/428443002
2014-07-28 19:26:58 -07:00
Mike Klein
744fb7313f
Enable basic drawing with SkRecord-based pictures.
...
I've tagged all the functions in SkPicture.cpp is // fRecord TODO or // fRecord
OK, depending on whether or not they're totally broken when used from an
SkRecord-based picture. Obviously next steps are to eliminate all the TODOs,
then clean up the notes.
I converted SkPicture over to smart pointers too. It's particularly helpful
that the smart pointers initialize to NULL by default.
For now I've got all the SkRecord-based code jammed in at the bottom of the file. I figure it'll help me keep things straight for a bit, then we can rearrange later.
BUG=skia:
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/333823007
2014-06-23 15:13:26 -04:00
mtklein
9ac68ee259
Move BenchTimer to tools as Timer
...
This breaks a bunch of circular dependencies between tools and gm and bench.
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/4ed75287aed6371c6e4a41ffcc78c8a49c9810ed
CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot,Test-Ubuntu12-ShuttleA-GTX660-x86-Debug-Trybot
R=tfarina@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/344213003
2014-06-20 11:29:21 -07:00
mtklein
9e64b78ff6
Revert of Move BenchTimer to tools as Timer ( https://codereview.chromium.org/344213003/ )
...
Reason for revert:
GpuTimer broken
Original issue's description:
> Move BenchTimer to tools as Timer
>
> This breaks a bunch of circular dependencies between tools and gm and bench.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4ed75287aed6371c6e4a41ffcc78c8a49c9810ed
R=tfarina@chromium.org , mtklein@chromium.org
TBR=mtklein@chromium.org , tfarina@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/346753003
2014-06-20 10:43:07 -07:00
mtklein
4ed75287ae
Move BenchTimer to tools as Timer
...
This breaks a bunch of circular dependencies between tools and gm and bench.
BUG=skia:
R=tfarina@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/344213003
2014-06-20 10:31:49 -07:00
mtklein
887f3979f0
Add EXPERIMENTAL_beginRecording() for SkRecord-based recording.
...
The interesting stuff is in SkPictureRecorder.{h,cpp}. The rest is mostly moving SkRecord from its own directories into core to avoid circular dependencies in GYP.
After plumbing SkRecord all the way through in Picture, I'll delete its old entry point include/record/SkRecording.h. For now it and record.gypi need to stay where they are to keep Chrome building.
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/331573004
2014-06-17 12:08:16 -07:00
mtklein
90c471e73f
Refine bench_record and bench_playback:
...
- use high-precision wall timer only
- warm caches once before measuring
- measure independent samples, calculating statistics
- add --verbose to control how much data we output
Also removed some unloved features from bench_record.
BUG=skia:
R=jcgregorio@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/338203002
2014-06-16 14:04:34 -07:00
robertphillips
9f1c241e0d
Remove SkPicture::kUsePathBoundsForClip_RecordingFlag
...
The real question is whether we ever want to record a picture without using the path bounds for a conservative (but faster) clip answer?
R=reed@google.com , mtklein@google.com , djsollen@google.com , scroggo@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/316143003
2014-06-09 06:25:34 -07:00
commit-bot@chromium.org
a095041f51
Remove SkRecorder's kWriteOnly mode.
...
I'm soon going to have SkRecorder start calling getTotalMatrix(), which
would be broken in write-only mode. That change is big and nebulous,
but it's clear kWriteOnly needs to go, so we might as well kill it now.
My notes in bench_playback about kWriteOnly mode being important were
probably overly cautious. I now think this is a fair enough comparison
even re-recording into a read-write canvas.
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/290653004
git-svn-id: http://skia.googlecode.com/svn/trunk@14963 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 16:52:40 +00:00
commit-bot@chromium.org
8fe89d3124
Use a tilegrid for bench_playback.
...
Using --tile wasn't a fair comparison: SkPicture didn't get to optimize its
playback, but SkRecord did. Numbers here are starting to agree with what I saw
in telemetry: SkRecord with culling is on average at 0.8-0.9 of the speed of
SkPicture (10-30% slower) than SkPicture SkPicture with a tile grid, but some
in some cases it's down at 0.3, taking almost 4x as long to draw a 256x256 tile.
0.4x tabl_mercurynews.skp 0.109889 0.252483
0.5x tabl_cnet.skp 0.250367 0.527789
1.0x desk_mapsvg.skp 1.48698 1.49939
1.2x desk_yahoogames.skp 0.07745 0.065343
0.9x tabl_mlb.skp 0.294509 0.312505
0.8x tabl_hsfi.skp 0.250678 0.316337
0.6x tabl_worldjournal.skp 0.510204 0.828798
0.7x desk_facebook.skp 0.318981 0.483744
0.9x desk_googlehome.skp 0.06983 0.078964
0.9x desk_tigersvg.skp 0.019232 0.022611
1.0x desk_youtubetvvideo.skp 0.401614 0.401862
1.1x desk_amazon.skp 0.415552 0.362111
0.7x desk_yahooanswers.skp 0.237995 0.358659
0.7x desk_twitter.skp 0.323466 0.439772
1.2x desk_fontwipe.skp 0.121577 0.097845
1.1x desk_css3gradients.skp 0.395335 0.362087
0.9x desk_googlespreadsheet.skp 0.362056 0.406688
1.0x tabl_frantzen.skp 15.2475 14.8521
0.6x desk_forecastio.skp 0.154236 0.276881
0.7x desk_pinterest.skp 0.077433 0.11324
0.5x tabl_cuteoverload.skp 0.173014 0.361815
0.5x tabl_androidpolice.skp 0.225903 0.465608
0.6x tabl_vnexpress.skp 0.151075 0.241104
0.6x tabl_nytimes.skp 0.06515 0.117229
0.8x desk_ebay.skp 0.353437 0.422586
0.8x tabl_deviantart.skp 0.223103 0.295496
1.1x tabl_culturalsolutions.skp 0.551348 0.506104
0.9x mobi_wikipedia.skp 0.302603 0.337292
0.6x desk_linkedin.skp 0.165102 0.276149
0.6x tabl_digg.skp 0.159074 0.281529
1.2x desk_oldinboxapp.skp 0.019815 0.017146
1.0x tabl_nofolo.skp 5.18914 5.42784
0.6x desk_jsfiddlehumperclip.skp 0.076869 0.133665
1.0x desk_blogger.skp 0.206702 0.19688
0.8x desk_espn.skp 0.346386 0.451871
1.0x desk_samoasvg.skp 3.60037 3.43147
0.8x desk_booking.skp 0.338818 0.438267
1.3x desk_yahoosports.skp 0.603811 0.470052
0.6x tabl_engadget.skp 0.248995 0.404372
0.7x desk_wowwiki.skp 0.325801 0.479559
0.8x tabl_ukwsj.skp 0.326985 0.405971
0.9x tabl_gmail.skp 0.2604 0.276744
0.9x desk_googleplus.skp 8.08874 8.71105
1.1x tabl_slashdot.skp 0.559332 0.524313
0.9x desk_gmailthread.skp 0.671569 0.74134
0.8x desk_weather.skp 0.194162 0.247681
1.3x desk_rectangletransition.skp 0.218372 0.173685
0.6x tabl_gamedeksiam.skp 0.243374 0.4134
0.9x desk_jsfiddlebigcar.skp 0.162282 0.186035
0.3x desk_pokemonwiki.skp 0.202878 0.778934
0.7x tabl_googleblog.skp 0.141203 0.209971
0.8x desk_sfgate.skp 0.229078 0.275248
1.0x desk_chalkboard.skp 2.28916 2.20101
0.9x tabl_googlecalendar.skp 0.687155 0.75413
1.1x tabl_gspro.skp 0.186399 0.169522
0.5x desk_googlespreadsheetdashed.skp 0.512622 1.02815
0.6x desk_mobilenews.skp 0.183506 0.293929
0.8x tabl_techmeme.skp 0.193074 0.229106
1.2x desk_carsvg.skp 5.33047 4.34058
0.5x desk_youtube.skp 0.132663 0.248236
0.7x tabl_pravda.skp 0.21644 0.308788
1.1x desk_gws.skp 0.698107 0.625371
0.5x tabl_mozilla.skp 0.189638 0.386801
1.0x desk_baidu.skp 0.353438 0.355965
1.1x tabl_sahadan.skp 0.476226 0.416737
summary: ≥0.3x (A 0.9x, G 0.8x) ≤1.3x
Whole SKP playback speed is fine of course.
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/277653002
git-svn-id: http://skia.googlecode.com/svn/trunk@14673 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 15:00:10 +00:00
commit-bot@chromium.org
172eb1baaf
Add --timescale to bench_record and bench_playback.
...
Default bench_record to report us, bench_playback ms.
BUG=skia:2378
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/253843004
git-svn-id: http://skia.googlecode.com/svn/trunk@14417 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 19:41:17 +00:00
commit-bot@chromium.org
8400b23ce6
use BenchTimer, print in µs
...
BUG=skia:2378
R=bungeman@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/257563006
git-svn-id: http://skia.googlecode.com/svn/trunk@14405 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 15:30:02 +00:00
commit-bot@chromium.org
d0306a1593
Revert of Add nanosecond timer. ( https://codereview.chromium.org/250243002/ )
...
Reason for revert:
breaks EVERYTHING
Original issue's description:
> Add nanosecond timer.
>
> I've been finding it hard to get enough resolution out of our existing timers when measuring really tiny pictures.
>
> BUG=skia:2378
>
> Committed: http://code.google.com/p/skia/source/detail?r=14362
R=bsalomon@google.com , bungeman@google.com , mtklein@chromium.org
TBR=bsalomon@google.com , bungeman@google.com , mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2378
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/258703002
git-svn-id: http://skia.googlecode.com/svn/trunk@14364 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 20:17:24 +00:00
commit-bot@chromium.org
74b43a9d4c
Add nanosecond timer.
...
I've been finding it hard to get enough resolution out of our existing timers when measuring really tiny pictures.
BUG=skia:2378
R=bsalomon@google.com , mtklein@google.com , bungeman@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/250243002
git-svn-id: http://skia.googlecode.com/svn/trunk@14362 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 20:04:20 +00:00
commit-bot@chromium.org
ad8ce572f6
anticipate more optimizations by renaming some files and methods
...
also, call the new SkRecordOptimize in bench_playback
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/243243003
git-svn-id: http://skia.googlecode.com/svn/trunk@14277 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 15:03:36 +00:00
commit-bot@chromium.org
5da5b59764
Add --match to bench tools, extra decimal to bench_pictures.
...
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/243273002
git-svn-id: http://skia.googlecode.com/svn/trunk@14276 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 14:59:59 +00:00
commit-bot@chromium.org
b17a24fedb
SkRecord: turn on cull annotation pass in public API.
...
Also, switch Skia internal tools over to use the public headers where
possible. Where it's not, the tools -Isrc/record explicitly now, and
if it's not obvious, note why they don't use SkRecording.h.
BUG=skia:2378
R=reed@google.com , mtklein@google.com , fmalita@chromium.org
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/231853006
git-svn-id: http://skia.googlecode.com/svn/trunk@14191 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 20:33:05 +00:00
commit-bot@chromium.org
d6489c957f
use the correct rowBytes so Debug build doesn't assert
...
BUG=skia:2378
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/235453002
git-svn-id: http://skia.googlecode.com/svn/trunk@14163 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 19:06:46 +00:00
commit-bot@chromium.org
4bffdf2a10
use SkIntToScalar, fix windows build
...
NOTRY=true
NOTREECHECKS=true
BUG=skia:
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/234913004
git-svn-id: http://skia.googlecode.com/svn/trunk@14155 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 16:13:54 +00:00
commit-bot@chromium.org
ba73d28bef
Add bench_playback, for quick profiling of SKR playback.
...
It is not completely fair to compare --skr and --noskr numbers. SKR looks
unfairly good because some optimizations are baked into our SKPs at record
time. But, at least, by using a kWriteOnly_Mode SkRecorder, we prevent
SkPicturePlayback from compounding that unfairness. SkRecordDraw must handle
its own playback-time optimizations (quickrejects) on its own.
This code should look suspiciously similar to bench_record.
BUG=skia:2378
R=fmalita@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/233833002
git-svn-id: http://skia.googlecode.com/svn/trunk@14151 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 15:53:39 +00:00