Commit Graph

850 Commits

Author SHA1 Message Date
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