mtklein
2a65a238b0
Remove SkQuadTree.
...
We're not testing it to the same degree we do RTree and TileGrid. Any changes
we'll make to BBH APIs become 33% easier without it. If find we want it again,
we can always resurrect it.
BUG=skia:1021,skia:2834
R=robertphillips@google.com , mtklein@google.com
TBR=reed
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/500373005
2014-08-26 14:07:04 -07:00
halcanary
a4c6094177
SkData to SkStreamAsset to avoid unneeded copying
...
R=mtklein@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/502193002
2014-08-26 10:38:07 -07:00
mtklein
c92e550d36
Install a hook to swap between SkPicture backends with a single define.
...
BUG=skia:
R=robertphillips@google.com , reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/492023002
2014-08-21 13:07:27 -07:00
mtklein
afb4379dbc
Print max RSS in GM and nanobench too.
...
Everyone used MB, so update the API to just return that.
BUG=skia:
R=halcanary@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/483323002
2014-08-19 15:55:55 -07:00
mtklein
0ed4e863c0
Stop sorting the results of SkBBH::search().
...
We only seem to need to sort with SkQuadTree, which is not actively used by
client code. So it's really just wasted work. SkQuadTree is interesting, but
I'd rather disable it than slow down the production code path.
BUG=skia:2834
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/471063004
2014-08-18 08:23:19 -07:00
mtklein
60c7707958
Guard ANGLE and MESA instead of defining them as native when unsupported.
...
Since we've added "angle" to the default list of configs we've been running
kNative_GLContextType tests twice in DM, once for the real native, once for
angle. This pointlessly doubles the GPU critical path in DM. Whoops.
NOTREECHECKS=true
BUG=skia:
R=bsalomon@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/471063002
2014-08-14 10:36:55 -07:00
halcanary
59598b0a9b
DM: Replace --pathOpsVerbose with --veryVerbose
...
R=caryclark@google.com , mtklein@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/468963002
2014-08-13 10:30:57 -07:00
mtklein
03bde3e6fa
SkTileGrid: store insertion order, return results sorted by that.
...
This removes the need to assume the void* are SkPictureStateTree::Data*.
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/466503002
2014-08-12 07:01:25 -07:00
halcanary
0d154eeaeb
Process Statistics header, add max RSS to render_pdfs
...
Committed: https://skia.googlesource.com/skia/+/6274baae7fe82ce6481da367687aa6168356e1e1
R=mtklein@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/448993003
2014-08-11 11:33:51 -07:00
mtklein
5ad6ee1b2c
Plumbing for using a BBH in SkRecordDraw.
...
For now this only creates a degenerate bounding box hierarchy where all ops
just have maximal bounds. I will flesh out FillBounds in future CL(s).
Not quite sure why QuadTree and TileGrid aren't drawing right---haven't even
looked at the diffs yet---so I've disabled those test modes for now. RTree
seems fine, so that'll at least get us coverage for all this new plumbing.
BUG=skia:
R=robertphillips@google.com , mtklein@google.com , reed@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/454123003
2014-08-11 08:08:43 -07:00
mtklein
b511042bb0
Fix iOS build by centralizing --writePath.
...
CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Debug-iOS-Trybot
BUG=skia:
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/452633002
2014-08-07 15:20:02 -07:00
mtklein
72ebb9f1dc
DM: conserve memory when using --skps
...
- limit to maximum 1000x1000 viewport like in bench_pictures and nanobench
- use lazy bitmap decoding when reading the pictures from disk
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/448263002
2014-08-07 14:27:03 -07:00
bungeman
619e07656d
Revert of Process Statistics header, add max RSS to render_pdfs ( https://codereview.chromium.org/448993003/ )
...
Reason for revert:
Reverting due to breaking iOS bots.
Original issue's description:
> Process Statistics header, add max RSS to render_pdfs
>
> Committed: https://skia.googlesource.com/skia/+/6274baae7fe82ce6481da367687aa6168356e1e1
R=mtklein@google.com , halcanary@google.com
TBR=halcanary@google.com , mtklein@google.com
NOTREECHECKS=true
NOTRY=true
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/448243003
2014-08-07 13:27:18 -07:00
halcanary
6274baae7f
Process Statistics header, add max RSS to render_pdfs
...
R=mtklein@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/448993003
2014-08-07 13:13:54 -07:00
mtklein
bcd278dfd2
DM: expand peak RAM usage to Mac and Android too.
...
BUG=skia:
NOTREECHECKS=true
R=halcanary@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/445963002
2014-08-06 07:46:30 -07:00
mtklein
36ea6c81c2
For some reason, starting tests before gms makes DM run much faster.
...
Must be getting the path ops tests going early helps?
On my desktop,
Release: 50s -> 24s
Debug: 62s -> 40s
BUG=skia:
R=bsalomon@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/435423003
2014-08-05 07:19:46 -07:00
mtklein
4e212e8da7
Print max memory usage on Linux.
...
This is meant to help debug http://skbug.com/2793
BUG=skia:2793
R=halcanary@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/433403005
2014-08-04 14:10:19 -07:00
mtklein
92007583e4
SKPs-as-benches in nanobench
...
This is meant to replace bench_pictures.
CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Mac10.7-Clang-Arm7-Release-iOS-Trybot
BUG=skia:
R=bsalomon@google.com , jcgregorio@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/425393004
2014-08-01 07:46:53 -07:00
Cary Clark
992c7b03ef
Add standard fonts to all GMs.
...
Allow GM results to be compared across machines and platforms by
standardizing the fonts used by all tests.
This adds runtime flags to DM to use either the system font context (the
default), the fonts in the resources directory ( --resourceFonts ) or a set
of canonical paths generated from the fonts ( --portableFonts ).
This CL should leave the current DM results unchanged by default.
If the portable font data or resource font is missing when DM is run, it
falls back to using the system font context.
The create_test_font tool generates the paths and metrics read by DM
with the --portableFonts flag set, and generates the font substitution
tables read by DM with the --resourceFonts flag set.
If DM is run in SkDebug mode with the --reportUsedChars flag set, it
generates the corresponding data compiled into the create_test_font tool.
All GM tests set their typeface information by calling either
sk_tool_utils::set_portable_typeface or
sk_tool_utils::portable_typeface .
(The former takes the paint, the latter returns a SkTypeface.) These calls
can be removed in the future when the Font Manager can be superceded.
BUG=skia:2687
R=mtklein@google.com
Review URL: https://codereview.chromium.org/407183003
2014-07-31 08:58:44 -04:00
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
bsalomon
2354f8432a
Test abandoning GL context in dm/nanobench.
...
Rename GrContext::contextDestroyed to GrContext::abandonContext.
Remove GrContext::resetContext.
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/422903002
2014-07-28 13:48:36 -07:00
halcanary
a98683bc50
dm prints out number of matching skp files
...
R=bungeman@google.com , mtklein@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/421713002
2014-07-28 07:21:24 -07:00
halcanary
048f422ec6
Fix crash in DM/SKPTask
...
R=bungeman@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/416333007
2014-07-25 14:17:35 -07:00
caryclark
17f0b6df72
share dm and command flags
...
Share command flags between dm and unit tests.
Also, allow dm's core to be included by itself and iOSShell.
Command line flags that are the same (or nearly the same) in DM
and in skia_tests have been moved to common_flags. Authors,
please check to see that the shared common flag is correct for
the tool.
For iOS, the 'tool_main' entry point has a wrapper to allow multiple
tools to be statically linked in the iOSShell.
Since SkCommandLineFlags::Parse can only be called once, these calls
are disabled in the IOS build.
Since the iOS app directory is dynamically assigned a name, use '@' to
select it. (This is the same convention chosen by the Mobile Harness
iOS file system utilities.)
Move the heart of dm.gyp into dm.gypi so that it can be included by
itself and iOSShell.gyp.
Add tools/flags/SkCommonFlags.* to define and declare common
command line flags.
Add support for dm to iOSShell.
BUG=skia:
R=scroggo@google.com , mtklein@google.com , jvanverth@google.com , bsalomon@google.com
Author: caryclark@google.com
Review URL: https://codereview.chromium.org/389653004
2014-07-22 10:15:35 -07:00
mtklein
3125e02062
Revert of Revert of Revert of Force DM rebuild. ( https://codereview.chromium.org/402663003/ )
...
Reason for revert:
we have to go deeper
Original issue's description:
> Revert of Revert of Force DM rebuild. (https://codereview.chromium.org/399123002/ )
>
> Reason for revert:
> jkl;
>
> Original issue's description:
> > Revert of Force DM rebuild. (https://codereview.chromium.org/400723002/ )
> >
> > Reason for revert:
> > asdf
> >
> > Original issue's description:
> > > Force DM rebuild.
> > >
> > > BUG=skia:
> > >
> > > Committed: https://skia.googlesource.com/skia/+/8a10de1
> >
> > TBR=mtklein@chromium.org
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/f42e08c12533f2a165bc08451f5ab5dd1363618b
>
> TBR=mtklein@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/41f30cd87ece55971b17e4a59873cf31100ee1a0
R=mtklein@chromium.org
TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/397293004
2014-07-17 10:02:30 -07:00
mtklein
41f30cd87e
Revert of Revert of Force DM rebuild. ( https://codereview.chromium.org/399123002/ )
...
Reason for revert:
jkl;
Original issue's description:
> Revert of Force DM rebuild. (https://codereview.chromium.org/400723002/ )
>
> Reason for revert:
> asdf
>
> Original issue's description:
> > Force DM rebuild.
> >
> > BUG=skia:
> >
> > Committed: https://skia.googlesource.com/skia/+/8a10de1
>
> TBR=mtklein@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/f42e08c12533f2a165bc08451f5ab5dd1363618b
R=mtklein@chromium.org
TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/402663003
2014-07-17 09:34:20 -07:00
mtklein
f42e08c125
Revert of Force DM rebuild. ( https://codereview.chromium.org/400723002/ )
...
Reason for revert:
asdf
Original issue's description:
> Force DM rebuild.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/8a10de1
R=mtklein@chromium.org
TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/399123002
2014-07-17 09:07:19 -07:00
Mike Klein
8a10de173f
Force DM rebuild.
...
BUG=skia:
Review URL: https://codereview.chromium.org/400723002
2014-07-17 12:05:19 -04:00
mtklein
103ae71cdd
Remove benches from DM.
...
This idea turned out to be more redundant than useful.
BUG=skia:
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/399463003
2014-07-16 14:29:53 -07:00
Mike Klein
18515cf370
DM: destroy contexts after each GPU task instead of before
...
This is for consistency with bench/nanobench/GM. Haven't seen it make a difference.
BUG=skia:
Review URL: https://codereview.chromium.org/397743004
2014-07-15 16:10:02 -04:00
mtklein
1e319f7342
Add --resetGpuContext to both DM and nanobench.
...
Defaulting to true to be conservative for now.
BUG=skia:
NOTREECHECKS=true
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/398483005
2014-07-15 08:27:06 -07:00
mtklein
e4636aa173
Merge Replay and Quilt tasks, adding in all BBH implementations.
...
Replay isn't that helpful of a test any more now that we have the more
stringent Quilt tests. Quilt was missing bounding box hierarchies, though,
while Replay was sort of testing RTree (pointlessly, as it was drawing without
any clip). Now Quilt does everything, testing RTree, QuadTree, and TileGrid.
Quilt mode now falls back to drawing all at once (i.e. Replay) for GMs that
don't tile perfectly. Still a TODO to make this check more flexible than exact
pixel matches.
Two GMs fail when using a BBH:
- imageresizetiled
- resizeimagefilter
We think we're not adjusting the bounds of save layers by their paint.
This is probably a bug, but one to be fixed separately from adding new tests.
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/377373003
2014-07-09 13:10:58 -07:00
mtklein
eeb1f15891
Turn on threaded DMQuiltTask drawing for old-format SkPictures too.
...
This required the same SkBitmap copying that we added today to SkRecord.
BUG=skia:
R=reed@android.com , robertphillips@google.com , mtklein@google.com , reed@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/375703002
2014-07-07 16:17:36 -07:00
mtklein
7cdc1ee115
Add always-threaded SkRecord quilt tests.
...
Now that we're drawing tiles threaded like implside painting, remove the checks
that those lock counts are balanced. They're just not right for anyone anymore.
SkBitmaps themselves are not threadsafe (even const ones), so shallow copy them
on playback of an SkRecord. (The underlying SkPixelRefs are threadsafe.)
Simplify quilt drawing by using SkBitmap::extractSubset. No need for locking.
Bump up to 256x256 tiles. 16x16 tiles just murders performance (way too much
contention). This has the nice side effect of letting us enable a bunch more
GMs for quilt mode; they drew wrong with small tiles but exactly right with large.
BUG=171776
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/371023005
2014-07-07 10:41:04 -07:00
mtklein
ec2ae5878d
Add multithreaded mode to quilt mode in DM.
...
Default off for now. Something to work toward.
BUG=skia:
R=robertphillips@google.com , tomhudson@chromium.org , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/360793002
2014-07-01 07:46:50 -07:00
kkinnunen
80549fcdd5
Support using OpenGL ES context on desktop
...
Support using OpenGL ES context on desktop for unix and Android platforms. This
is mainly useful in development.
Add --gpuAPI flag to gm, dm, bench, bench_pictures and render_pictures. The
possible parameters for the flag are "gl" and "gles".
R=bsalomon@google.com , mtklein@google.com , robertphillips@google.com
Author: kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/319043005
2014-06-30 06:36:31 -07:00
mtklein
d3e474e20c
Deprecate SkPicture::clone().
...
Chrome will need -DSK_SUPPORT_LEGACY_PICTURE_CLONE.
This removes the modes from our tools that use clone(). No
bots run these. DM used clone() in a way that we can just
share the picture now.
I plan to bring back the ability to test multithreaded
picture rendering soon.
BUG=skia:2378
R=robertphillips@google.com , mtklein@google.com , bsalomon@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/338633011
2014-06-27 12:34:44 -07:00
mtklein
7373456679
Support serialization in SkRecord-backed SkPictures.
...
Update DM to test SkRecord through SkPictureRecorder API.
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/345553003
2014-06-24 12:28:34 -07:00
rmistry
05ead8afe5
Revert of Support using OpenGL ES context on desktop ( https://codereview.chromium.org/319043005/ )
...
Reason for revert:
Caused segmentation fault on many builders. Please see reverted CL's msg #21 for details.
Original issue's description:
> Support using OpenGL ES context on desktop
>
> Support using OpenGL ES context on desktop for unix and Android platforms. This
> is mainly useful in development.
>
> Add --gpuAPI flag to gm, dm, bench, bench_pictures and render_pictures. The
> possible parameters for the flag are "gl" and "gles".
>
> Committed: https://skia.googlesource.com/skia/+/74fc727dc88ee24d89f88cb1709f963e9073aeb3
R=bsalomon@google.com , mtklein@google.com , robertphillips@google.com , kkinnunen@nvidia.com
TBR=bsalomon@google.com , kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true
Author: rmistry@google.com
Review URL: https://codereview.chromium.org/351583002
2014-06-23 06:13:46 -07:00
kkinnunen
74fc727dc8
Support using OpenGL ES context on desktop
...
Support using OpenGL ES context on desktop for unix and Android platforms. This
is mainly useful in development.
Add --gpuAPI flag to gm, dm, bench, bench_pictures and render_pictures. The
possible parameters for the flag are "gl" and "gles".
R=bsalomon@google.com , mtklein@google.com , robertphillips@google.com
Author: kkinnunen@nvidia.com
Review URL: https://codereview.chromium.org/319043005
2014-06-22 22:56:54 -07: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
tfarina
bcbc1788b4
Refactor how we handle resources path in Tests.
...
This idea emerged while doing https://codereview.chromium.org/321723002/
(commit 880914c35c
).
BUG=None
TEST=make tests && out/Debug/tests
R=mtklein@google.com
Author: tfarina@chromium.org
Review URL: https://codereview.chromium.org/346453002
2014-06-18 14:32:49 -07:00
mtklein
30e6e2af14
Add basic stacktrace handler using libunwind.
...
This means we will all have to apt-get install libunwind8-dev on Linux. Mac comes with everything we need already.
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/343583005
2014-06-18 11:44:18 -07:00
scroggo
f01a6c3663
In Android framework, make tools depend on jsoncpp
...
Always build the tools with JSON, but either build our own
or use the system's.
Rename skia_build_json_writer to skia_use_system_jsoncpp,
since we now always build with JSON.
Remove SK_BUILD_JSON_WRITER, which was only there so
we could build without JSON it in the framework.
BUG=skia:2448
R=djsollen@google.com , reed@google.com
Author: scroggo@google.com
Review URL: https://codereview.chromium.org/303913002
2014-06-18 10:31:40 -07:00
mtklein
683e90611c
Remove SkBenchmark::postDraw.
...
Only one bench used this feature, and it's for things that'd be done by the
destructor anyway.
BUG=skia:
R=bsalomon@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/329853007
2014-06-18 07:15:49 -07:00
mtklein
e4d3e605f7
DM: SKP source / PDF backend
...
Removed expectations code for PDF backend for now, given that we don't have any, and refactored a little to make that cleaner.
We can now test .skp -> .pdf -> .png in DM. Neat eh?
BUG=skia:2598
R=halcanary@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/316643003
2014-06-06 09:28:43 -07:00
robertphillips
9b14f26d0f
Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)
...
R=reed@google.com , bsalomon@google.com , mtklein@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/313613004
2014-06-04 05:40:44 -07:00
mtklein
e696a5962a
Disable PDF in dm for tonight. It's crashy.
...
BUG=skia:2598
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/317533003
2014-06-03 15:59:23 -07:00
mtklein
30bf3e2ffc
DM: add pdf
...
BUG=skia:2598
R=halcanary@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/312873002
2014-06-03 13:57:14 -07:00
mtklein
9c4ff80d9b
DM: go back to memcmp for BitmapsEqual
...
Even when autovectorized, using MaxComponentDifference is slower than memcmp.
And debug builds (most runs of DM) will never even be autovectorized.
DM::MaxComponentDifference is the top function on DM profile, and memcmp moves
to ~20th.
BUG=skia:
R=halcanary@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/315743002
2014-06-03 13:56:54 -07:00