Commit Graph

943 Commits

Author SHA1 Message Date
robertphillips
d771f6bc27 Add auto purging for SkPicture-related Ganesh resources (esp. layers)
This is intended to lower the bookkeeping burden for the Layer Caching feature. Cached layers are now automatically purged when a picture is deleted.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/408923002
2014-07-22 10:18:06 -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
caryclark
19eb3b2f0a update pathops core and tests
split out skpclip (the test of 1M pictures) into its own project

TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/400033002
2014-07-18 05:08:14 -07:00
epoger
66ed8dc4bf combine base_unittest.py modules from gm and tools
general cleanup, which will also help with http://skbug.com/2752 ('split existing "gpu" GM results into "gl" and "gles"')

R=rmistry@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/397103003
2014-07-17 12:54:16 -07:00
Mike Klein
912947737a Use __rdtsc on Windows.
This seems to be ~100x higher resolution than QueryPerformanceCounter.  AFAIK, all our Windows perf bots have constant_tsc, so we can be a bit more direct about using rdtsc directly: it'll always tick at the max CPU frequency.

Now, the question remains, what is the max CPU frequency to divide through by?  It looks like QueryPerformanceFrequency actually gives the CPU frequency in kHz, suspiciously exactly what we need to divide through to get elapsed milliseconds.  That was a freebie.

I did some before/after comparison on slow benchmarks.  Timings look the same.  Going to land this without review tonight to see what happens on the bots; happy to review carefully tomorrow.

R=mtklein@google.com
TBR=bungeman

BUG=skia:

Review URL: https://codereview.chromium.org/394363003
2014-07-16 19:59:32 -04:00
Mike Klein
e51b6bd1f9 revert timer changes
BUG=skia:

Review URL: https://codereview.chromium.org/397843002
2014-07-15 19:17:44 -04:00
Mike Klein
7edaeb515c nanobench on Windows: try compiler barriers around timer instead.
BUG=skia:

Review URL: https://codereview.chromium.org/391193003
2014-07-15 19:04:14 -04:00
mtklein
6238688af0 Give windows boring bars and use 'us' for microseconds.
NOTREECHECKS=true

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/393673006
2014-07-15 10:30:31 -07:00
mtklein
a189ccdb4d nanobench: add --runOnce.
BUG=skia:
R=egdaniel@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/392583005
2014-07-14 12:28:48 -07:00
caryclark
936b73424f ios fixes
skia_ios.mm
Get the app's Documents directory and pass use it to set the resource path.
This is a quick hack which will be replaced by a new application that is
a tiny shim around a command line tool.

SkImageEncoder.h
SkForceLinking.cpp
SkImageDecoder_CG.cpp
Add support for FORCE_LINKING so iOS sees the PNG encoder and others.

SkFloatBits.cpp
SkPoint.cpp
Handle denormalized numbers that are floored by the iOS ARM processor.

SkImageDecoder_iOS.mm
Remove empty encoder factory.

SkTouchGesture.cpp
Return early on empty state on touch rather than aborting (crashing)

JpegTest.cpp
Hal via stackoverflow.com says partial jpegs can be gray as well.

skia_test.cpp
Remove crash handler call for now to avoid link failure.

OverwriteLine.h
Remove fancy line overwrite for iOS.

Resources.cpp
Add interface to set resource directory based on runtime query.

BUG=skia:2736 skia:2737 skia:2738
R=reed@google.com, halcanary@google.com, mtklein@google.com, tfarina@chromium.org

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/373383003
2014-07-11 12:14:51 -07:00
mtklein
5d9d10e821 nanobench: add a cute bar chart
Give this a try?  Helpful, or gets in the way?

BUG=skia:
R=krajcevski@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/390483002
2014-07-11 11:57:07 -07:00
epoger
133931f4ab roll "common" DEPS, and replace tools/pyutils with it
BUG=skia:2682
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/385783002
2014-07-11 08:52:35 -07:00
epoger
fd429991e9 import google-api-python-client using DEPS
BUG=skia:2641
R=jcgregorio@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/381933002
2014-07-10 09:03:26 -07:00
mtklein
40b32be371 nanobench: add median and --cpu/--gpu
BUG=skia:
R=krajcevski@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/377283002
2014-07-09 08:46:50 -07:00
mtklein
bd7746da97 Remove ability for Release code to call getRefCnt() or getWeakRefCnt().
These getRefCnt() methods are not thread safe, so Skia code should not
be calling them.  unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726

Committed: https://skia.googlesource.com/skia/+/4ae94ffce5ecf1b71cb5e295b68bf4ec9e697443

R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
2014-07-09 07:52:32 -07:00
Mike Klein
874a62acef Revert "Remove ability for Release code to call getRefCnt() or getWeakRefCnt()."
This reverts commit 4ae94ffce5.

BUG=skia:

Review URL: https://codereview.chromium.org/382523002
2014-07-09 09:04:07 -04:00
mtklein
0b544ae222 Add SkRacy
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes.  In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs.  We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot,Canary-Chrome-Win7-Ninja-x86-SharedLib_ToT-Trybot,Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
2014-07-08 19:37:47 -07:00
mtklein
d3f3e5895e Revert of Add SkRacy (https://codereview.chromium.org/371363004/)
Reason for revert:
hidden symbol 'AnnotateBenignRaceSized' in obj/base/third_party/dynamic_annotations/libdynamic_annotations.a(obj/base/third_party/dynamic_annotations/dynamic_annotations.dynamic_annotations.o) is referenced by DSO lib/libblink_platform.so

Original issue's description:
> Add SkRacy
>
> SkRacy<T> is a zero-overhead wrapper for a T, except it also
> silences race warnings when TSAN is running.
>
> Here we apply in several classes.  In SkMatrix and SkPathRef,
> we use it to opportunistically cache some idempotent work.
>
> In SkPixelRef, we wrap the genIDs.  We think the worst that
> can happen here is we'll increment the global next-genID a
> few times instead of once when we go to get another ID.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7

R=reed@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/377693005
2014-07-08 14:06:46 -07:00
mtklein
d5e3e6ae1b Add SkRacy
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes.  In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs.  We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
2014-07-08 12:30:39 -07:00
mtklein
4ae94ffce5 Remove ability for Release code to call getRefCnt() or getWeakRefCnt().
These getRefCnt() methods are not thread safe, so Skia code should not
be calling them.  unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
2014-07-08 06:48:17 -07:00
mtklein
e59304419e Flesh out SkMatrix typemask suppressions.
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/374763002
2014-07-07 17:53:17 -07:00
mtklein
875da8055e Another suppression, this in SkMatrix caching the typemask.
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/372103005
2014-07-07 17:18:50 -07:00
mtklein
6abc62c0c9 Suppress race to cache SkPathRef bounds.
This should be fixed naturally soon, and it's an innocuous race (some paths
may have their bounds calculated more than once), so we can just quiet it for now.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376733003
2014-07-07 16:28:46 -07:00
mtklein
6dd04914c8 Suppress getRefCnt() calls from SkImageFilter.
BUG=skia:2726
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/373863002
2014-07-07 15:44:00 -07:00
robertphillips
ce4dd3de38 Split SkPicturePlayback out of SkPictureData
This splits the playback functionality out of SkPictureData. The old SkPictureData::draw method is pulled out along
with its supporting functions as verbatim as possible. Some follow on CLs will be required to:

   re-enable profiling in the debugger (and remove the vestiges of SkTimedPicture)
   re-enable display of command offsets in the picture (this should probably wait until we've switched to SkRecord though)
   Clean up CachedOperationList (maybe fuse with SkPicture::OperationList)
   Split SkPicturePlayback into a base class and two derived classes
   Implement parallel version of GatherGPUInfo for SkRecord

Landing this is blocked on removing Android's use of the abortPlayback entry point.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/377623002
2014-07-07 13:46:35 -07:00
mtklein
5e8a3c1b83 Suppress new TSAN warnings from DMQuiltTask.
We're racing to invalidate the genID of our pixel ref when multiple
threads write into it, and also to call its genID-changed listeners.

We install no listeners on this particular pixel ref, nor do we ever
care about its genID at all.  So these are benign races, races on
data we never make a decision from.

BUG=skia:2725
R=jcgregorio@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/370353004
2014-07-07 13:11:29 -07:00
mtklein
0e3fac215d Gate CrashHandler with SK_CRASH_HANDLER.
BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/364033002
2014-07-02 14:30:47 -07:00
borenet
4621788761 gen_bench_expectations: use subprocess instead of shell_utils due to buildbot-side name collision
BUG=skia:2714
R=rmistry@google.com
TBR=rmistry
NOTRY=true

Author: borenet@google.com

Review URL: https://codereview.chromium.org/368043002
2014-07-02 12:52:34 -07:00
borenet
b26130af2f Fix RecreateSkps
- Use shell_utils to auto-print all subprocesses.
- Only download bench_pictures data.
- Skip or error out on bots which failed BenchPictures, PostBench, or UploadBenchResults.

BUG=skia:2714
R=rmistry@google.com
TBR=rmistry
NOTRY=true

Author: borenet@google.com

Review URL: https://codereview.chromium.org/363833004
2014-07-02 09:37:03 -07:00
epoger
54f1ad8bb5 rebaseline_server: use just skpdiff, not Python Image Library
BUG=skia:2414
R=djsollen@google.com, borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/325413003
2014-07-02 07:43:04 -07:00
robertphillips
db539905bb Rename SkPicturePlayback to SkPictureData
This is in preparation for splitting the playback portion of the new SkPictureData class into a new SkPicturePlayback class.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/362773002
2014-07-01 08:47:04 -07:00
reed
52d9ac6c92 stop calling SkCanvas::getDevice
BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/355193006
2014-06-30 09:05:34 -07:00
robertphillips
952841bf41 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-30 08:26: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
robertphillips
e462f2bed3 Revert of Begin atlasing (https://codereview.chromium.org/354533004/)
Reason for revert:
Sigh

Original issue's description:
> Begin atlasing
>
> This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):
>
> 1) the atlased layers cannot be purged nor aged out
> 2) the texture backing the atlas is not pulled from (or returned to) the resource cache
>
> #1 is on hold until we have a recycling rectanizer
>
> A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.
>
> Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/359953002
2014-06-29 17:16:27 -07:00
robertphillips
55e61f0ef4 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-29 15:08:31 -07:00
Mike Klein
a40239ca1e Drop --clone from commands in skia repo.
--clone, and SkPicture::clone(), are no longer.

CQ_EXTRA_TRYBOTS=tryserver.skia:Housekeeper-PerCommit-Trybot

BUG=skia:
R=rmistry@google.com

Review URL: https://codereview.chromium.org/343813006
2014-06-27 17:09:39 -04: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
kelvinly
4d1a364e39 Make SKP bench JSON ouput better
BUG=skia:
NOTREECHECKS=true
R=bensong@google.com, jcgregorio@google.com, bsalomon@google.com, robertphillips@google.com, rmistry@google.com

Author: kelvinly@google.com

Review URL: https://codereview.chromium.org/329993008
2014-06-26 11:26:41 -07:00
halcanary
20fb7c6220 tools/git-sync-deps is a stand-alone program, not dependent on synced deps.
Motivation:  With common repo, we had a chicken-egg problem.

BUG=skia:
R=borenet@google.com, mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/351063003
2014-06-25 13:28:30 -07:00
borenet
3da21d2b62 Whitespace fixes for Python tools
BUG=skia:
R=rmistry@google.com

Author: borenet@google.com

Review URL: https://codereview.chromium.org/353853003
2014-06-25 08:40:58 -07:00
bsalomon
61d04c4bf0 Add valgrind supp for NV driver.
R=mtklein@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/351053002
2014-06-25 08:25:30 -07:00
Eric Boren
bb0ef0a134 Use new common tools in Python scripts
BUG=skia:2682
R=rmistry@google.com

Review URL: https://codereview.chromium.org/330423004
2014-06-25 11:13:27 -04: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
caryclark
5fb6bd4b7e use platform-independent font for gm
Create a custom typeface and scaler to render simple paths the
same on all platforms.

GM tests are modified to explicitly select the custom typeface.

R=reed@google.com, mtklein@google.com, bungeman@google.com
TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/348323003
2014-06-23 11:25:00 -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
2010891425 Add GYP target for sk_tool_utils.* component.
This declares a static library target in gyp/sk_tool_utils.gyp, so other
targets can depend directly on it instead of including the source file
in their source lists.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/348623006
2014-06-21 10:54:17 -07: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
halcanary
2983ff5da3 CrashHandler calls strsignal on linux
R=mtklein@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/349623004
2014-06-20 08:26:23 -07:00
mtklein
77a83962ac undefok -> bool
BUG=skia:

not waiting for (dead?) win builder
NOTRY=True
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/348063002
2014-06-20 08:24:56 -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
mtklein
3f73e8c8d5 CrashHandler for Windows.
Plus, print out assertion failures on Windows,
and some little tweaks to CrashHandler on other platforms for consistency.

BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/340523007
2014-06-19 07:41:59 -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
4ea2661cbd No CrashHandler for NACL bots.
CQ_EXTRA_TRYBOTS=tryserver.skia:Build-Ubuntu13.10-GCC4.8-NaCl-Debug-Trybot

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/344603005
2014-06-18 12:29:01 -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
egdaniel
12c2198535 Remove dashing from gpu veto
With new veto our new veto test results look like the following:
TP: true positive (picked to use gpu and gpu was faster)
I: inderminate, the raster time is withing 5% of gpu time

        TP  FP  TN  FN  I

old     21  9   15  12  3
new     29  12  11  6   3

There are three skps that tend to move from TN -> FP, however
the absolute difference in their run times are not huge between
them. The largest being desk_booking which is about 7.1 raster
and 8.8 gpu. The other two skps are desk_yahooanswers and
desk_linkedin

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/334053005
2014-06-18 07:34:39 -07:00
caryclark
e4097e3a0b Fix last pathops skp bug
This fixes the last bug discovered by iterating through the 800K
skp corpus representing the top 1M websites. For every clip on the
stack, the paths are replaced with the pathop intersection. The
resulting draw is compared with the original draw for pixel errors.

At least two prominent bugs remain. In one, the winding value is
confused by a cubic with an inflection. In the other, a quad/cubic
pair, nearly coincident, fails to find an intersection.

These minor changes include ignoring very tiny self-intersections
of cubics, and processing degenerate edges that don't connect to
anything else.

R=reed@android.com
TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/340103002
2014-06-18 07:24:19 -07:00
bensong
2668617ea2 Removes Record configs from buildbot bench_pictures runs.
BUG=skia:
NOTRY=true
R=borenet@google.com, mtklein@google.com

Author: bensong@google.com

Review URL: https://codereview.chromium.org/338413002
2014-06-18 05:59:55 -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
reed
c3b3266b7d hide SkBitmap::Config entirely (behind a flag)
patch from issue 339463002

TBR=

I think the NoGPU failure is unrelated, so ignoring
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/340533002
2014-06-17 08:38:31 -07:00
caryclark
dac1d17027 Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites.
This fixes all but one of those failures.

Major changes include:
- Replace angle indices with angle pointers. This was motivated by the need to add angles later but not renumber existing angles.
- Aggressive segment chase. When the winding is known on a segment, more aggressively passing that winding to adjacent segments allows fragmented data sets to succeed.
- Line segments with ends nearly the same are treated as coincident first.
- Transfer partial coincidence by observing that if segment A is partially coincident to B and C then B and C may be partially coincident.

TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/272153002
2014-06-17 05:15:38 -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
tfarina
851eabe564 Minor cleanups in picture_utils header file.
1) Remove unused include.
2) Remove unused forward declarations.

BUG=None
TEST=make tests
R=epoger@google.com
TBR=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/339493004
2014-06-15 20:10:44 -07:00
reed
0689d7b12e stop using SkBitmap::Config
R=scroggo@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/338493005
2014-06-14 05:30:20 -07:00
tfarina
055cf91416 Delete unused path_utils.* component.
filter tool includes it but isn't using, and nobody else seems to
be using it either. So just remove it now.

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

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/324273002
2014-06-14 04:50:04 -07:00
reed
bfefc7c95f hide Config in SkImageDecoder -- use SkColorType instead
patch from issue 334613003

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/334793002
2014-06-12 17:40:00 -07:00
tfarina
da4ed3289e Cleanup: Delete sk_tools::make_filepath() in favor of SkOSPath::SkPathJoin().
BUG=None
TEST=make tools tests && out/Debug/tests
R=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/327403002
2014-06-12 08:50:56 -07:00
mtklein
3b94b78b77 Suppress libpoppler and its dependent liblcms in TSAN.
This will let us eventually turn PDF back on in DM.

BUG=skia:
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/330433003
2014-06-11 17:22:14 -07:00
tfarina
1c99ea8ed8 Cleanup: Delete sk_tools::get_basename() in favor of SkOSPath::SkBasename().
BUG=None
TEST=make tests && out/Debug/tests
R=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/321693002
2014-06-11 08:58:50 -07:00
mtklein
812202724d Silence TSAN warnings about is_lcd_supported for now.
BUG=skia:1792

NOTRY=true
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/328663006
2014-06-10 12:52:09 -07:00
reed
6c22573edb hide SkBitmap::setConfig
patch from issue 325733002

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/322963002
2014-06-09 19:52:07 -07:00
mtklein
00dfb9ea7b bench_record: No need for --flags if there are no RecordingFlags anymore.
BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/327533002
2014-06-09 08:04:15 -07:00
epoger
89e8842821 remove GM result-grooming tools that use skia-autogen
BUG=skia:553
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/320443002
2014-06-09 06:49:13 -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
mtklein
a8928b745a Add SkBarriers_tsan.h.
Slight counterproposal to crrev.com/310663002.

BUG=skia:

No API changes.

R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/306373002
2014-06-06 06:21:49 -07:00
epoger
b144271179 reland "rebaseline_server: download actual-results.json files from GCS instead of SVN"
relands https://codereview.chromium.org/310093003 with modifications.

BUG=skia:2641
R=jcgregorio@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/313343003
2014-06-05 10:30:37 -07:00
borenet
2e81e51d1e Fix submit_try
BUG=skia:2643
R=epoger@google.com, tfarina@chromium.org

Author: borenet@google.com

Review URL: https://codereview.chromium.org/317823003
2014-06-05 07:32:15 -07:00
epoger
77f68b623e Revert "rebaseline_server: download actual-results.json files from GCS instead of SVN"
This reverts commit f4666045f3.

BUG=skia:2641
NOTREECHECKS=True
NOTRY=True
R=jcgregorio@google.com
TBR=jcgregorio

Author: epoger@google.com

Review URL: https://codereview.chromium.org/317783004
2014-06-04 15:09:18 -07:00
epoger
f4666045f3 rebaseline_server: download actual-results.json files from GCS instead of SVN
BUG=skia:553
R=borenet@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/310093003
2014-06-04 10:02:58 -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
kelvinly
06fdc6937d Added grid data to logging output
BUG=skia:
R=bensong@google.com, jcgregorio@google.com

Author: kelvinly@google.com

Review URL: https://codereview.chromium.org/318433003
2014-06-03 15:43:34 -07:00
mtklein
59ef7704f1 Revert of Try TSAN blacklist for SkGLContextHelper::init. (https://codereview.chromium.org/309823004/)
Reason for revert:
the bot's clang doesn't know -fsanitize-blacklist

Original issue's description:
> Try TSAN blacklist for SkGLContextHelper::init.
>
> Submitting to test this; this particular problem only happens on the bot.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/ab2ec19b975a898d4ee2278ddad7d4268f134478

R=mtklein@chromium.org
TBR=mtklein@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/314543002
2014-06-02 19:34:20 -07:00
mtklein
ab2ec19b97 Try TSAN blacklist for SkGLContextHelper::init.
Submitting to test this; this particular problem only happens on the bot.

BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/309823004
2014-06-02 19:11:06 -07:00
mtklein
a78ef795b0 Tweak TSAN suppressions.
BUG=skia:
R=mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/312613002
2014-06-02 16:40:06 -07:00
epoger
8ff38ccb40 use most innocuous characters possible within skimage output filenames
BUG=skia:2634
R=scroggo@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/302323003
2014-06-02 14:26:18 -07:00
epoger
fc435a020a Revert of stop using brackets within skimage output filenames (https://codereview.chromium.org/303263012/)
Reason for revert:
Broke http://108.170.220.120:10117/builders/Test-ChromeOS-Link-HD4000-x86_64-Release/builds/2806/steps/UploadSKImageResults/logs/stdio :

[13:38:43.401942] /bin/sh: 1: Syntax error: "(" unexpected
[13:38:43.902632] Command /home/chrome-bot/buildbot/skiabot-shuttle-ubuntu12-003/buildbot/third_party/chromium_buildbot/scripts/slave/../../third_party/gsutil/gsutil cp -a private /home/chrome-bot/buildbot/skiabot-shuttle-ubuntu12-003/buildbot/third_party/chromium_buildbot/slave/Test-ChromeOS-Link-HD4000-x86_64-Release/build/skia/out/Release/skimage_out/images/bitmap-64bitMD5/webp-test-webp-(123,263,587,394)/16263897892077508819.png gs://chromium-skia-gm/skimage/output/images/bitmap-64bitMD5/webp-test-webp-(123,263,587,394)/16263897892077508819.png failed with retcode 2, try 1.

Original issue's description:
> stop using brackets within skimage output filenames
>
> BUG=skia:2634
>
> Committed: https://skia.googlesource.com/skia/+/f07892413cd2359549dc187f1d10bc48d7d263ba

R=scroggo@google.com
TBR=scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2634

Author: epoger@google.com

Review URL: https://codereview.chromium.org/314443002
2014-06-02 13:46:21 -07:00
epoger
f07892413c stop using brackets within skimage output filenames
BUG=skia:2634
R=scroggo@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/303263012
2014-06-02 13:35:22 -07:00
mtklein
be7de4fc42 Update TSAN suppressions.
TSAN suppressions need to be on their own line, even free of comments.

Also, temporarily add SK_ANNOTATE_UNPROTECTED_READ to sk_acquire_load.
Will remove this when we're done iterating on SkBarriers_tsan.h: TSAN
has an atomic load that makes the annotation moot.

BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/308073013
2014-06-02 13:23:49 -07:00
skia.committer@gmail.com
9681eebb0e Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14984 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 03:06:10 +00:00
commit-bot@chromium.org
37c772ae2d Reland https://codereview.chromium.org/286903025
BUG=skia:
R=bensong@google.com, epoger@google.com

Author: kelvinly@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14966 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 17:10:24 +00: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
cac02e52cd Bench rebaseline from codereview: fix is_finished
R=epoger@google.com, bensong@google.com
TBR=benchen, epoger
BUG=skia:2225
NOTREECHECKS=true
NOTRY=true

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14962 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 16:05:48 +00:00
commit-bot@chromium.org
e65a44a9e2 Bench Rebaseline from Codereview: separate out all_trybots_finished()
BUG=skia:2225
NOTREECHECKS=true
R=epoger@google.com, bensong@google.com

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14951 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 14:31:28 +00:00
commit-bot@chromium.org
93d7bb6fc6 add a verbose flag to skdiff that shows the progress and status of
each comparison

BUG=
R=bungeman@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14923 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 18:26:00 +00:00
commit-bot@chromium.org
ea6cb91170 Add script to rebaseline benches from codereview trybot results
This script is designed to be used by the RecreateSKPs bot.  Eventually, the bot will:
1. Generate new SKPs
2. Upload the new SKPs to a subdirectory with an ID or generation number.
3. Change Skia to use the new SKPs:
    a. Create and upload a Skia CL which changes the "current SKP generation" file to point to the new SKPs
    b. Launch Perf trybots on that CL.
    c. Call this script every 5 minutes until it successfully creates new baselines for each of the launched Perf bots.
    d. Add the new baselines to the CL
    e. Upload a second patch set of the CL
    f. Check the CQ bit on the CL

BUG=skia:2225
R=epoger@google.com, halcanary@google.com, bensong@google.com

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14921 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 17:30:10 +00:00
commit-bot@chromium.org
293a4b367a Revert of PictureBenchmark JSON logging (https://codereview.chromium.org/286903025/)
Reason for revert:
Broke some Windows builds; see http://skbug.com/2609 ('certain Windows Build-* bots failing since r14905').

Before re-landing with a fix, please send to some of the trybots that failed the first time.

Original issue's description:
> Add JSON logging support to bench_pictures by adding a PictureResultsWriter class (in tools/PictureResultsWriter.h) to process logging information, using a very similar style as bench/ResultsWriter.h
>
> JSON format described in code, above PictureJSONResultsWriter class
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14906

R=bensong@google.com, jcgregorio@google.com, kelvinly@google.com
TBR=bensong@google.com, jcgregorio@google.com, kelvinly@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2609

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14910 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 21:51:38 +00:00