platform/upstream/libSkiaSharp.git
8 years agofix fuzzer bugs
caryclark [Mon, 19 Sep 2016 13:00:35 +0000 (06:00 -0700)]
fix fuzzer bugs

Add a couple more cases where Op() fails and
returns false when the out of range input
values make the internal numeric unstable.

TBR=reed@google.com
BUG=647834, 648068
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2348263002

Review-Url: https://codereview.chromium.org/2348263002

8 years agoWhitespace change
rmistry [Sun, 18 Sep 2016 18:37:26 +0000 (11:37 -0700)]
Whitespace change

TBR=
NOTRY=true
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2347393002

Review-Url: https://codereview.chromium.org/2347393002

8 years agoUpdate SKP version
update-skps [Sun, 18 Sep 2016 09:34:52 +0000 (02:34 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349953002

Review-Url: https://codereview.chromium.org/2349953002

8 years ago[SVGDom] Improved DM sizing
fmalita [Sat, 17 Sep 2016 14:26:26 +0000 (07:26 -0700)]
[SVGDom] Improved DM sizing

Rather than always using a 1000x1000 canvas, observe the SVG intrinsic
size when available.

If the intrinsic size is < 128x128, scale uniformly.

R=robertphillips@google.com,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2342313003

Review-Url: https://codereview.chromium.org/2342313003

8 years agoRemove SK_DECLARE_LEGACY_CREATE_FROM_FONTDATA.
bungeman [Fri, 16 Sep 2016 21:54:16 +0000 (14:54 -0700)]
Remove SK_DECLARE_LEGACY_CREATE_FROM_FONTDATA.

This is no longer defined by any users, so remove it.

TBR=reed
This just removes no longer used API.

Review-Url: https://codereview.chromium.org/2345353002

8 years agoFix filling of incomplete images in SkSampledCodec
msarett [Fri, 16 Sep 2016 21:52:07 +0000 (14:52 -0700)]
Fix filling of incomplete images in SkSampledCodec

The bug occurs when filling after an incomplete sampled/subset
incremental decode.

I'm also adding many truncated test pngs.

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

Review-Url: https://codereview.chromium.org/2343153003

8 years agoSkPDF: Implement /ActualText to make text extraction correct.
halcanary [Fri, 16 Sep 2016 21:44:57 +0000 (14:44 -0700)]
SkPDF:  Implement /ActualText to make text extraction correct.

For old API: no change.

For new API: LTR text is perfectly extracted, RTL needs better testing.

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot

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

Review-Url: https://codereview.chromium.org/2322403002

8 years agoformat GN files, and invert if->config to config->if
mtklein [Fri, 16 Sep 2016 21:44:18 +0000 (14:44 -0700)]
format GN files, and invert if->config to config->if

Both if (...) { config ... } else { config ... } and config { if (...) { ...}
else { ... } } work.  We just happen to do the if inside the config more often
than the other way around.

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

Review-Url: https://codereview.chromium.org/2347953002

8 years agoImprove ColorStopOptimizer safety
tomhudson [Fri, 16 Sep 2016 21:22:49 +0000 (14:22 -0700)]
Improve ColorStopOptimizer safety

Could potentially access uninitialized memory.

BUG=647481
R=brianosman@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2345343002

Review-Url: https://codereview.chromium.org/2345343002

8 years agoCompile the skia library for windows using gn.
herb [Fri, 16 Sep 2016 20:29:57 +0000 (13:29 -0700)]
Compile the skia library for windows using gn.

TBR=mtklein@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2347443002

Review-Url: https://codereview.chromium.org/2347443002

8 years agoRevert of SkPDF: Implement /ActualText to make text extraction correct. (patchset...
halcanary [Fri, 16 Sep 2016 20:21:08 +0000 (13:21 -0700)]
Revert of SkPDF:  Implement /ActualText to make text extraction correct. (patchset #11 id:220001 of https://codereview.chromium.org/2322403002/ )

Reason for revert:
MSAN, ASAN errors

Original issue's description:
> SkPDF:  Implement /ActualText to make text extraction correct.
>
> For old API: no change.
>
> For new API: LTR text is perfectly extracted, RTL needs better testing.
>
> BUG=skia:5434
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2322403002
>
> Committed: https://skia.googlesource.com/skia/+/dbd16345a5b2b824f2696af791bb0f01304cf549

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

Review-Url: https://codereview.chromium.org/2338213008

8 years agoSane use of FcPatternGetXXX in SkFontConfigInterface.
bungeman [Fri, 16 Sep 2016 20:19:49 +0000 (13:19 -0700)]
Sane use of FcPatternGetXXX in SkFontConfigInterface.

This renames get_name to get_string to better reflect what it does, uses
get_int where appropriate, and removes the no longer used code that uses
FcPatternGetBool.

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

Review-Url: https://codereview.chromium.org/2345053005

8 years agoFlesh out GN/Android run docs.
mtklein [Fri, 16 Sep 2016 19:40:17 +0000 (12:40 -0700)]
Flesh out GN/Android run docs.

The process is simple enough that it's clearer to see all the steps laid out.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2343263002
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=2343263002

Review-Url: https://codereview.chromium.org/2343263002

8 years agoSkPDF: Implement /ActualText to make text extraction correct.
halcanary [Fri, 16 Sep 2016 19:09:01 +0000 (12:09 -0700)]
SkPDF:  Implement /ActualText to make text extraction correct.

For old API: no change.

For new API: LTR text is perfectly extracted, RTL needs better testing.

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

Review-Url: https://codereview.chromium.org/2322403002

8 years agoRevert of Run SVGs through nanobench on all Perf bots (patchset #5 id:120001 of https...
rmistry [Fri, 16 Sep 2016 19:06:55 +0000 (12:06 -0700)]
Revert of Run SVGs through nanobench on all Perf bots (patchset #5 id:120001 of https://codereview.chromium.org/2343903002/ )

Reason for revert:
Causing failures:
https://uberchromegw.corp.google.com/i/client.skia/builders/Perf-Mac-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug-GN/builds/812

Original issue's description:
> Run SVGs through nanobench on all Perf bots.
>
> Tested with:
> python infra/bots/recipes.py run --workdir=../ swarm_trigger path_config=kitchen buildername=Perf-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Release-GN-Trybot mastername=client.skia slavename=skiabot-linux-swarm-010 buildnumber=1 revision=d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c issue=2343903002 rietveld=https://codereview.chromium.org patchset=80001
>
> Example output is here:
> https://luci-milo.appspot.com/swarming/task/3147c9789b2d0410
> Nanobench did run on SVGs.
>
> BUG=skia:5757
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2343903002
>
> Committed: https://skia.googlesource.com/skia/+/1c58dcb909642454d91ba36f71e55597511b5d52

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

Review-Url: https://codereview.chromium.org/2348563003

8 years agoIs it just me or is this logging just noise?
mtklein [Fri, 16 Sep 2016 18:50:13 +0000 (11:50 -0700)]
Is it just me or is this logging just noise?

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

Review-Url: https://codereview.chromium.org/2343233002

8 years agoSupport Float32 output from SkColorSpaceXform
msarett [Fri, 16 Sep 2016 18:45:58 +0000 (11:45 -0700)]
Support Float32 output from SkColorSpaceXform

* Adds Float32 support to SkColorSpaceXform
* Changes API to allows clients to ask for F32, updates clients to
  new API
* Adds Sk4f_load4 and Sk4f_store4 to SkNx
* Make use of new xform in SkGr.cpp

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Committed: https://skia.googlesource.com/skia/+/43d6651111374b5d1e4ddd9030dcf079b448ec47
Review-Url: https://codereview.chromium.org/2339233003

8 years agoBuild with GN on CT bots.
mtklein [Fri, 16 Sep 2016 18:39:14 +0000 (11:39 -0700)]
Build with GN on CT bots.

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

Review-Url: https://codereview.chromium.org/2347203002

8 years agoImprove join between the two RRects in SkRRectsGaussianEdgeShader
robertphillips [Fri, 16 Sep 2016 18:37:37 +0000 (11:37 -0700)]
Improve join between the two RRects in SkRRectsGaussianEdgeShader

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

Review-Url: https://codereview.chromium.org/2345203003

8 years agoPromote the N5 to the CQ for real.
mtklein [Fri, 16 Sep 2016 18:34:08 +0000 (11:34 -0700)]
Promote the N5 to the CQ for real.

The experiment was a great success.

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

Review-Url: https://codereview.chromium.org/2345263002

8 years agoRun SVGs through nanobench on all Perf bots.
rmistry [Fri, 16 Sep 2016 18:32:34 +0000 (11:32 -0700)]
Run SVGs through nanobench on all Perf bots.

Tested with:
python infra/bots/recipes.py run --workdir=../ swarm_trigger path_config=kitchen buildername=Perf-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Release-GN-Trybot mastername=client.skia slavename=skiabot-linux-swarm-010 buildnumber=1 revision=d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c issue=2343903002 rietveld=https://codereview.chromium.org patchset=80001

Example output is here:
https://luci-milo.appspot.com/swarming/task/3147c9789b2d0410
Nanobench did run on SVGs.

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

Review-Url: https://codereview.chromium.org/2343903002

8 years agoClear stencil buffer before using it for drawing
stani [Fri, 16 Sep 2016 18:03:44 +0000 (11:03 -0700)]
Clear stencil buffer before using it for drawing

Clear stencil buffer before using it for drawing. This is
resolving an issue with a failing android CTS test in drawArc.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2342873004

Review-Url: https://codereview.chromium.org/2342873004

8 years agoRevert of Support Float32 output from SkColorSpaceXform (patchset #7 id:140001 of...
msarett [Fri, 16 Sep 2016 18:01:27 +0000 (11:01 -0700)]
Revert of Support Float32 output from SkColorSpaceXform (patchset #7 id:140001 of https://codereview.chromium.org/2339233003/ )

Reason for revert:
Hitting an assert

Original issue's description:
> Support Float32 output from SkColorSpaceXform
>
> * Adds Float32 support to SkColorSpaceXform
> * Changes API to allows clients to ask for F32, updates clients to
>   new API
> * Adds Sk4f_load4 and Sk4f_store4 to SkNx
> * Make use of new xform in SkGr.cpp
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003
> CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/43d6651111374b5d1e4ddd9030dcf079b448ec47

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

Review-Url: https://codereview.chromium.org/2347473007

8 years agoGN: build get_images_from_skps.
mtklein [Fri, 16 Sep 2016 17:23:12 +0000 (10:23 -0700)]
GN: build get_images_from_skps.

This also splits :common_flags off of :flags.
get_images_from_skps wants :flags but not :common_flags.

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

Review-Url: https://codereview.chromium.org/2338173006

8 years agoKeeping asserts in release.
cblume [Fri, 16 Sep 2016 17:07:32 +0000 (10:07 -0700)]
Keeping asserts in release.

We have a bug that is showing up occasionally in Canary.
I want to see if these asserts could provide insight into why the bug
happens.

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

Review-Url: https://codereview.chromium.org/2342903003

8 years agoAllow GrCaps access from GrDrawContext
bsalomon [Fri, 16 Sep 2016 16:53:27 +0000 (09:53 -0700)]
Allow GrCaps access from GrDrawContext
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2348923002

Review-Url: https://codereview.chromium.org/2348923002

8 years agoSupport Float32 output from SkColorSpaceXform
msarett [Fri, 16 Sep 2016 16:51:12 +0000 (09:51 -0700)]
Support Float32 output from SkColorSpaceXform

* Adds Float32 support to SkColorSpaceXform
* Changes API to allows clients to ask for F32, updates clients to
  new API
* Adds Sk4f_load4 and Sk4f_store4 to SkNx
* Make use of new xform in SkGr.cpp

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review-Url: https://codereview.chromium.org/2339233003

8 years agoRemove old SkGaussianEdgeShader code
jvanverth [Fri, 16 Sep 2016 16:13:15 +0000 (09:13 -0700)]
Remove old SkGaussianEdgeShader code

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2345673003
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2345673003

8 years agoFix Seal_of_Mississippi URL and update version of SVG asset.
rmistry [Fri, 16 Sep 2016 15:26:34 +0000 (08:26 -0700)]
Fix Seal_of_Mississippi URL and update version of SVG asset.

BUG=skia:5757
BUG=skia:5767

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

Review-Url: https://codereview.chromium.org/2342323002

8 years agoMake SkPngCodec decode progressively.
scroggo [Fri, 16 Sep 2016 15:20:38 +0000 (08:20 -0700)]
Make SkPngCodec decode progressively.

This is a step towards using SkCodec in Chromium, where progressive
decoding is necessary.

Switch from using png_read_row (which expects all the data to be
available) to png_process_data, which uses callbacks when rows are
available.

Create a new API for SkCodec, which supports progressive decoding and
scanline decoding. Future changes will switch the other clients off of
startScanlineDecode and get/skip-Scanlines to the new API.

Remove SkCodec::kNone_ScanlineOrder, which was only used for interlaced
PNG images. In the new API, interlaced PNG fits kTopDown. Also remove
updateCurrScanline(), which was only used by the old implementation for
interlaced PNG.

DMSrcSink:
- In CodecSrc::kScanline_Mode, use the new method for scanline decoding
for the supported formats (just PNG and PNG-in-ICO for now).

fuzz.cpp:
- Remove reference to kNone_ScanlineOrder

SkCodec:
- Add new APIs:
    - startIncrementalDecode
    - incrementalDecode
- Remove kNone_SkScanlineOrder and updateCurrScanline()
- Set fDstInfo and fOptions in getPixels(). This may not be necessary
  for all implementations, but it simplifies things for SkPngCodec.

SkPngCodec:
- Implement new APIs
- Switch from sk_read_fn/png_read_row etc to png_process_data
- Expand AutoCleanPng's role to decode the header and create the
  SkPngCodec
- Make the interlaced PNG decoder report how many lines were
  initialized during an incomplete decode

SkIcoCodec:
- Implement the new APIs; supported for PNG in ICO

SkSampledCodec:
- Call the new method for decoding scanlines, and fall back to the old
  method if the new version is unimplemented
- Remove references to kNone_SkScanlineOrder

tests/CodecPartial:
- Add a test which decodes part of an image, then finishes the decode,
  and compares it to the straightforward method

tests/CodecTest:
- Add a test which decodes all scanlines using the new method
- Repurpose the Codec_stripes test to decode using the new method in
  sections rather than all at once
- In the method check(), add a parameter for whether the image supports
  the new method of scanline decoding, and be explicit about whether an
  image supports incomplete
- Test incomplete PNG decodes. We should have been doing it anyway for
  non-interlaced (except for an image that is too small - one row), but
  the new method supports interlaced incomplete as well
- Make test_invalid_parameters test the new method
- Add a test to ensure that it's safe to fall back to scanline decoding without
  rewinding

BUG=skia:4211

The new version was generally faster than the old version (but not significantly so).

Some raw performance differences can be found at https://docs.google.com/a/google.com/spreadsheets/d/1Gis3aRCEa72qBNDRMgGDg3jD-pMgO-FXldlNF9ejo4o/

Design doc can be found at https://docs.google.com/a/google.com/document/d/11Mn8-ePDKwVEMCjs3nWwSjxcSpJ_Cu8DF57KNtUmgLM/

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1997703003

Review-Url: https://codereview.chromium.org/1997703003

8 years agoSkPDF: fix unembeddable text drawn with positioning (broken in 6059dc3)
halcanary [Fri, 16 Sep 2016 15:15:56 +0000 (08:15 -0700)]
SkPDF: fix unembeddable text drawn with positioning (broken in 6059dc3)

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

Review-Url: https://codereview.chromium.org/2347183002

8 years agoGN: add a flag to implement Android_FrameworkDefs bot.
mtklein [Fri, 16 Sep 2016 14:45:52 +0000 (07:45 -0700)]
GN: add a flag to implement Android_FrameworkDefs bot.

This bot builds Skia with a bunch of defines to mimic the Android roll.
Apparently it was supposed to be on the CQ... I'll add the GN version
to it when it exists.

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

Review-Url: https://codereview.chromium.org/2343103002

8 years agoMake Sk2DPathEffect thread safe.
bungeman [Fri, 16 Sep 2016 14:21:28 +0000 (07:21 -0700)]
Make Sk2DPathEffect thread safe.

SkPathEffects must be thread safe, but SkMatrix is only thread safe if
the type mask has already been computed. The constructor for
Sk2DPathEffect is currently making the call to 'invert' which sets the
type mask, but it is being called with the passed matrix as opposed to
the local copy.

BUG=skia:5765

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

Review-Url: https://codereview.chromium.org/2340133004

8 years agoUpdate GN docs to mention is_official_build and ndk_api.
mtklein [Fri, 16 Sep 2016 14:17:45 +0000 (07:17 -0700)]
Update GN docs to mention is_official_build and ndk_api.

is_official_build is the closest approximation to what we'd recommend people ship, and we'll keep tweaking it further toward that goal.  I want it to be the first choices people see reading the doc to nudge them to defaulting into that if they don't know better.  The familiar old Debug and Release for developers come later.

It'd be a fine choice, for instance, for fiddle to build against.  I dropped Stripped because that's something is_official_build now does more naturally.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2342333002
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=2342333002

Review-Url: https://codereview.chromium.org/2342333002

8 years agoGN: enable Vulkan on Android when API >= 24.
mtklein [Fri, 16 Sep 2016 14:01:17 +0000 (07:01 -0700)]
GN: enable Vulkan on Android when API >= 24.

Android API >= 24 implies Vulkan support, so we can have a more useful default here than 'false'.  If for some reason you wanted to turn it off, you can still override skia_use_vulkan.

The defined(ndk_api) guards other users of our GN files (Fuchsia) who may not have an ndk_api argument defined in their BUILDCONFIG.gn.

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

Review-Url: https://codereview.chromium.org/2347843003

8 years agoSkFontData to use smart pointers.
bungeman [Fri, 16 Sep 2016 13:24:20 +0000 (06:24 -0700)]
SkFontData to use smart pointers.

The SkFontData type is not exposed externally, so any method which uses
it can be updated to use smart pointers without affecting external
users. Updating this first will make updating the public API much
easier.

This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to
std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It
appears that no one outside Skia is currently using SkStream::NewfromFile
so this is a good time to update it as well.

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

Committed: https://skia.googlesource.com/skia/+/d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c
Review-Url: https://codereview.chromium.org/2339273002

8 years agoAdd staging for removal of SkRRectsGaussianEdgeShader::Make (for Android)
robertphillips [Fri, 16 Sep 2016 13:17:45 +0000 (06:17 -0700)]
Add staging for removal of SkRRectsGaussianEdgeShader::Make (for Android)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2347853002
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2347853002

8 years agoTweak valgrind suppressions for intentional leaks.
mtklein [Fri, 16 Sep 2016 12:47:06 +0000 (05:47 -0700)]
Tweak valgrind suppressions for intentional leaks.

This is a follow up to building the Valgrind bots with GN.

It's not clear why these need to leak, but we might as well
update the suppressions.  The stacks now look like this:

    Memcheck:Leak
    match-leak-kinds: possible
    fun:calloc
    fun:_dl_allocate_tls
    fun:pthread_create@@GLIBC_2.2.5
    fun:_ZN8SkThreadC1EPFvPvES0_
    fun:_Z14nanobench_mainv
    fun:(below main)

We suppress fun:main in that last slot, so just make it ...

TBR=

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

Review-Url: https://codereview.chromium.org/2347153002

8 years agotest/fix/tweak writePicture/readPicture
reed [Thu, 15 Sep 2016 21:24:53 +0000 (14:24 -0700)]
test/fix/tweak writePicture/readPicture

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

Review-Url: https://codereview.chromium.org/2347593004

8 years agoFix key computation for GrPaths
bsalomon [Thu, 15 Sep 2016 20:55:33 +0000 (13:55 -0700)]
Fix key computation for GrPaths

Improve tests to ensure paths are receiving valid keys
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2342873002

Review-Url: https://codereview.chromium.org/2342873002

8 years agoGN: port Valgrind bots.
mtklein [Thu, 15 Sep 2016 20:50:43 +0000 (13:50 -0700)]
GN: port Valgrind bots.

This was suspiciously easy...

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

Review-Url: https://codereview.chromium.org/2342923002

8 years agoAdd GrContextOptions flag to disable distance field path renderer.
bsalomon [Thu, 15 Sep 2016 20:50:26 +0000 (13:50 -0700)]
Add GrContextOptions flag to disable distance field path renderer.

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

Review-Url: https://codereview.chromium.org/2339213002

8 years agoFix color bug in SkRRectsGaussianEdgeShader
robertphillips [Thu, 15 Sep 2016 20:18:15 +0000 (13:18 -0700)]
Fix color bug in SkRRectsGaussianEdgeShader

Due to the code at the end of emitCode this shader was darker than the SkGaussianEdgeShader on Android.

This CL also removes the unused "pad" parameter.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2344963002
NOTREECHECKS=true
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2344963002

8 years agoRevert of Update version of SVG asset (patchset #1 id:1 of https://codereview.chromiu...
djsollen [Thu, 15 Sep 2016 20:04:41 +0000 (13:04 -0700)]
Revert of Update version of SVG asset (patchset #1 id:1 of https://codereview.chromium.org/2341043003/ )

Reason for revert:
breaking the build

Original issue's description:
> Update version of SVG asset
>
> BUG=skia:5757
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2341043003
>
> Committed: https://skia.googlesource.com/skia/+/ab00f4222c9fff8c08873e1218e79f49845f95a1

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

Review-Url: https://codereview.chromium.org/2337763007

8 years agoGN: support 32-bit x86 builds
mtklein [Thu, 15 Sep 2016 19:07:48 +0000 (12:07 -0700)]
GN: support 32-bit x86 builds

Take over Ubuntu -x86- bots.

Note the change to Build-Win-MSVC-x86-Release-GN.json, which is not incidental.
We'll want target_cpu="x86" there too.

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

Committed: https://skia.googlesource.com/skia/+/1949386ae00485ae92dd5608a2614b9dee417542

CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Ubuntu-Clang-x86-Debug-GN_Android-Trybot,Build-Ubuntu-GCC-x86-Release-Trybot

Review-Url: https://codereview.chromium.org/2340463008

8 years agoUpdate version of SVG asset
rmistry [Thu, 15 Sep 2016 18:31:25 +0000 (11:31 -0700)]
Update version of SVG asset

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

Review-Url: https://codereview.chromium.org/2341043003

8 years agoRevert of GN: support 32-bit x86 builds (patchset #6 id:100001 of https://codereview...
mtklein [Thu, 15 Sep 2016 18:18:55 +0000 (11:18 -0700)]
Revert of GN: support 32-bit x86 builds (patchset #6 id:100001 of https://codereview.chromium.org/2340463008/ )

Reason for revert:
https://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-Clang-x86-Debug-GN_Android/builds/304

Original issue's description:
> GN: support 32-bit x86 builds
>
> Take over Ubuntu -x86- bots.
>
> Note the change to Build-Win-MSVC-x86-Release-GN.json, which is not incidental.
> We'll want target_cpu="x86" there too.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2340463008
>
> Committed: https://skia.googlesource.com/skia/+/1949386ae00485ae92dd5608a2614b9dee417542

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

Review-Url: https://codereview.chromium.org/2338173004

8 years agoAdd storage and computation of SkColor4f version of gradient stops.
brianosman [Thu, 15 Sep 2016 18:09:45 +0000 (11:09 -0700)]
Add storage and computation of SkColor4f version of gradient stops.

For now, we still only have the SkColor factory, but the Descriptor can
now carry either an SkColor or SkColor4f specified gradient. Base class
constructor automatically populates both forms of color, so that legacy
raster backend will continue to work, and new backend work can operate
directly from the float4 version.

On the GPU side, we have similar logic, but GrGradientEffect only
keeps one version of colors around: SkColor if the destination is
legacy, and SkColor4f (with an optional gamut xform) if the destination
is gamma correct. The 4f colors are already linear, and we gamut xform
them in setData, so gradients are now fully color-correct in sRGB and
F16 modes...

... unless there are more than three stops. Then we use a texture, and
that code path isn't handled yet. We have a few choices here (do we
use an 8-bit sRGB atlas, or just always use F16 linear atlas so we can
share it among both sRGB and wide-gamut rendering). In any case, I'd
like to defer that to a second CL.

This change does fix the non-texture gradients in the gamut GM.

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

Review-Url: https://codereview.chromium.org/2337313002

8 years agoGN: support 32-bit x86 builds
mtklein [Thu, 15 Sep 2016 18:06:25 +0000 (11:06 -0700)]
GN: support 32-bit x86 builds

Take over Ubuntu -x86- bots.

Note the change to Build-Win-MSVC-x86-Release-GN.json, which is not incidental.
We'll want target_cpu="x86" there too.

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

Review-Url: https://codereview.chromium.org/2340463008

8 years agoBlacklist slsrgb + image decoding.
mtklein [Thu, 15 Sep 2016 18:02:05 +0000 (11:02 -0700)]
Blacklist slsrgb + image decoding.

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

Review-Url: https://codereview.chromium.org/2345723003

8 years agoRevert of SkFontData to use smart pointers. (patchset #3 id:40001 of https://coderevi...
bungeman [Thu, 15 Sep 2016 17:57:38 +0000 (10:57 -0700)]
Revert of SkFontData to use smart pointers. (patchset #3 id:40001 of https://codereview.chromium.org/2339273002/ )

Reason for revert:
Killing Mac

Original issue's description:
> SkFontData to use smart pointers.
>
> The SkFontData type is not exposed externally, so any method which uses
> it can be updated to use smart pointers without affecting external
> users. Updating this first will make updating the public API much
> easier.
>
> This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to
> std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It
> appears that no one outside Skia is currently using SkStream::NewfromFile
> so this is a good time to update it as well.
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339273002
>
> Committed: https://skia.googlesource.com/skia/+/d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c

TBR=mtklein@chromium.org,halcanary@google.com,mtklein@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2343933002

8 years agoGN: link executables with -rdynamic on Linux.
mtklein [Thu, 15 Sep 2016 17:44:15 +0000 (10:44 -0700)]
GN: link executables with -rdynamic on Linux.

-rdynamic makes sure the executable exposes all its symbols, which allows things like DM's built-in stack trace dumper to show symbols instead of just addresses.  We do this in GYP too.

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

Review-Url: https://codereview.chromium.org/2339983005

8 years agoSkFontData to use smart pointers.
bungeman [Thu, 15 Sep 2016 17:03:27 +0000 (10:03 -0700)]
SkFontData to use smart pointers.

The SkFontData type is not exposed externally, so any method which uses
it can be updated to use smart pointers without affecting external
users. Updating this first will make updating the public API much
easier.

This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to
std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It
appears that no one outside Skia is currently using SkStream::NewfromFile
so this is a good time to update it as well.

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

Review-Url: https://codereview.chromium.org/2339273002

8 years agosimple fix?
mtklein [Thu, 15 Sep 2016 16:56:28 +0000 (09:56 -0700)]
simple fix?

Scope cmdInfo more tightly to where it's not a null reference.

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

Review-Url: https://codereview.chromium.org/2342063002

8 years agoAdd ability to create and upload SVGs from a local dir
rmistry [Thu, 15 Sep 2016 16:33:08 +0000 (09:33 -0700)]
Add ability to create and upload SVGs from a local dir

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

Review-Url: https://codereview.chromium.org/2346663003

8 years agoFix NoGPU bot, which is compiling in GPU support
borenet [Thu, 15 Sep 2016 16:08:48 +0000 (09:08 -0700)]
Fix NoGPU bot, which is compiling in GPU support

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

Review-Url: https://codereview.chromium.org/2342683003

8 years agoRemove the unused 16-bit gradient cache
brianosman [Thu, 15 Sep 2016 15:40:21 +0000 (08:40 -0700)]
Remove the unused 16-bit gradient cache

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

Review-Url: https://codereview.chromium.org/2343863002

8 years agoMore NoGPU compile fixes
brianosman [Thu, 15 Sep 2016 15:33:02 +0000 (08:33 -0700)]
More NoGPU compile fixes

I can now build 'most' with skia_gpu=0 on my machine.

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

Review-Url: https://codereview.chromium.org/2340133003

8 years agoPass rietveld as the default patch_storage.
mtklein [Thu, 15 Sep 2016 15:27:33 +0000 (08:27 -0700)]
Pass rietveld as the default patch_storage.

Passing around empty strings as command line arguments requires
us to be really careful about command line quoting, parsing, etc.

It seems easy enough here to just supply the implied value.

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

Review-Url: https://codereview.chromium.org/2323233003

8 years agoquad and conic do not intersect
caryclark [Thu, 15 Sep 2016 14:48:18 +0000 (07:48 -0700)]
quad and conic do not intersect

If a quad a conic intersect only where the end of one
is contained by the convex hull of the other, and the
curve contained by the hull is nearly a straight line,
treating it as a line may move the end point to the
other side of the curve.

Detect this by checking to see if the end point is in
the hull, and if so, continue to subdivide the curve
rather than treating it as a line.

This fixes several existing tests that were disabled
earlier this year.

A typo in SkDCurve::nearPoint() prevented detecting when
the end of a line was nearly touching a curve.

Also fixed concidence a bit to get the second half of
tiger further along.

All existing tests, including extended testing in
Release and the first half of tiger, work.

TBR=reed@google.com
BUG=skia:5131
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2338323002

Review-Url: https://codereview.chromium.org/2338323002

8 years agoRemove "f" suffix from literal in LCD DF text shader.
bsalomon [Thu, 15 Sep 2016 14:29:52 +0000 (07:29 -0700)]
Remove "f" suffix from literal in LCD DF text shader.

Also improve DF GP names
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2340603003

Review-Url: https://codereview.chromium.org/2340603003

8 years agoFix SampleApp compilation with skia_gpu=0
brianosman [Thu, 15 Sep 2016 14:19:53 +0000 (07:19 -0700)]
Fix SampleApp compilation with skia_gpu=0

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

Review-Url: https://codereview.chromium.org/2347593002

8 years agoadd helpers for using SkData with picture serialization
reed [Thu, 15 Sep 2016 14:19:35 +0000 (07:19 -0700)]
add helpers for using SkData with picture serialization

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

TBR=

Review-Url: https://codereview.chromium.org/2341693004

8 years agoBundle common arguments to GrGradientEffect creation
brianosman [Thu, 15 Sep 2016 13:59:15 +0000 (06:59 -0700)]
Bundle common arguments to GrGradientEffect creation

I'm going to be adding more (to deal with color spaces), so trying to fix
this before it gets out of control.

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

Committed: https://skia.googlesource.com/skia/+/f605c16a030d791a37f589e6bddd7158ba5d62cd
Review-Url: https://codereview.chromium.org/2332213007

8 years agoTidy up DM blacklists.
mtklein [Thu, 15 Sep 2016 13:24:03 +0000 (06:24 -0700)]
Tidy up DM blacklists.

No need to blacklist specific instances of configs that won't be run.
There's no bug or anything here... this is entirely about keeping the
command lines as noise-free as possible.

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

Review-Url: https://codereview.chromium.org/2341963003

8 years agoRoll recipe DEPS
rmistry [Thu, 15 Sep 2016 11:52:20 +0000 (04:52 -0700)]
Roll recipe DEPS

BUG=skia:5749
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339443003
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2339443003

8 years agoClean up unused SkPictureRecorder::optimizeFor()
mtklein [Thu, 15 Sep 2016 11:43:03 +0000 (04:43 -0700)]
Clean up unused SkPictureRecorder::optimizeFor()

Don't worry about the failing Shield bot... unrelated experiment.  It's failing at head.

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

NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2340133002

8 years agoRevert of Bundle common arguments to GrGradientEffect creation (patchset #2 id:20001...
djsollen [Thu, 15 Sep 2016 02:57:59 +0000 (19:57 -0700)]
Revert of Bundle common arguments to GrGradientEffect creation (patchset #2 id:20001 of https://codereview.chromium.org/2332213007/ )

Reason for revert:
This seems to be causing the autoroll into Chromium to fail.

https://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/builds/69618/steps/compile/logs/stdio

Original issue's description:
> Bundle common arguments to GrGradientEffect creation
>
> I'm going to be adding more (to deal with color spaces), so trying to fix
> this before it gets out of control.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332213007
>
> Committed: https://skia.googlesource.com/skia/+/f605c16a030d791a37f589e6bddd7158ba5d62cd

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

Review-Url: https://codereview.chromium.org/2343703003

8 years agoFix SkDrawTextBlobCommand null blob crash
fmalita [Wed, 14 Sep 2016 21:55:59 +0000 (14:55 -0700)]
Fix SkDrawTextBlobCommand null blob crash

After https://codereview.chromium.org/2335493005, we're moving the param
into a local field -> we should no longer access it.

TBR=robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2344523003

Review-Url: https://codereview.chromium.org/2344523003

8 years agoUpdate GN droid script
egdaniel [Wed, 14 Sep 2016 21:42:02 +0000 (14:42 -0700)]
Update GN droid script

Splits the pushes into different lines since old adbs cannot handle the one
line command

TBR=mtklein@google.com

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

Review-Url: https://codereview.chromium.org/2339293002

8 years ago[SVGDom] Expose intrinsic size info
fmalita [Wed, 14 Sep 2016 19:04:30 +0000 (12:04 -0700)]
[SVGDom] Expose intrinsic size info

  * expose intrinsic size info on <svg> nodes.

  * tweak the SkSVGDOM constructor to no longer take an container size
    param, but instead default to intrinsic size
  * update clients to call SkSVGDOM::setContainerSize() explicitly, when
    needed

R=robertphillips@google.com,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2345533002

Review-Url: https://codereview.chromium.org/2345533002

8 years agoDon't let the compiler complain that |a| is uninit
msarett [Wed, 14 Sep 2016 18:53:49 +0000 (11:53 -0700)]
Don't let the compiler complain that |a| is uninit

TBR=mtklein@google.com
NOTRY=true
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339793003

Review-Url: https://codereview.chromium.org/2339793003

8 years agoDisable ignore discard optimization in Vulkan
egdaniel [Wed, 14 Sep 2016 18:26:11 +0000 (11:26 -0700)]
Disable ignore discard optimization in Vulkan

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

Review-Url: https://codereview.chromium.org/2346553002

8 years agoCQ update
mtklein [Wed, 14 Sep 2016 18:20:59 +0000 (11:20 -0700)]
CQ update

  - swap the N5 experiment over to the new GN N5 bot

  - cut down on the Windows build duplication: the other two bots
    cover x86, x86-64, Release, Debug, _and_ Vulkan already.

  - remove the Release-Shared tester: I added this bot to act as a proxy
    for the also Shared-build Android bots, but 1) they're fast enough
    to no longer need a proxy (see N5 above) and 2) they're no longer
    Shared builds.  I intend to completely drop support for dm and
    nanobench in Shared builds, so this bot will not just drop from the
    CQ but completely disappear.

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

Review-Url: https://codereview.chromium.org/2346463002

8 years agoGN: add is_official_build
mtklein [Wed, 14 Sep 2016 18:16:49 +0000 (11:16 -0700)]
GN: add is_official_build

... and use it to control debug symbols and SK_ALLOW_STATIC_GLOBAL_INITIALIZERS.

This will most directly have the effect of disabling GLProgramsTest and a bunch
of similar failing Vk tests on Android.

Hopefully this makes the N7 trybot go green, keeping the N5 trybot green.  Just running the N10 for fun.

(is_official_build is how Chrome terms this sort of ReleaseForReal build.)

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

Review-Url: https://codereview.chromium.org/2340723003

8 years agomerge run and check-rc steps
mtklein [Wed, 14 Sep 2016 18:15:54 +0000 (11:15 -0700)]
merge run and check-rc steps

This'll make the 'dm' or 'nanobench' step go red like you'd hope.

The N5 should pass and the N10 and N7 should fail, showing us both sides.

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

Review-Url: https://codereview.chromium.org/2339713003

8 years agoStore SkColorSpaceXform gamma LUTs in a malloced field
msarett [Wed, 14 Sep 2016 18:02:04 +0000 (11:02 -0700)]
Store SkColorSpaceXform gamma LUTs in a malloced field

In order of likelihood:
(1) Tables are never used, since gamma is recognized and named.
(2) Only use one table, since all three gammas are the same.
(3) Actually need three tables.

No reason to waste a bunch of space for these tables on
SkColorSpaceXform, when it will likely be unused.

This will be more efficient in lots of cases, but is particularly
useful when the client really only wants a gamut xform.

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

Review-Url: https://codereview.chromium.org/2336913005

8 years ago565 is not this important.
mtklein [Wed, 14 Sep 2016 17:33:12 +0000 (10:33 -0700)]
565 is not this important.

Reduce its testing and perfing to just the fast Linux bots,
and remove it from the default set of dm/nanobench configs.

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

Review-Url: https://codereview.chromium.org/2344553002

8 years agoConvert back to 0-255 scale before storing linear bytes
msarett [Wed, 14 Sep 2016 17:23:03 +0000 (10:23 -0700)]
Convert back to 0-255 scale before storing linear bytes

TBR=mtklein@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2338203005

Review-Url: https://codereview.chromium.org/2338203005

8 years agoImproved optional command handling in SkParsePath::FromSVGString()
fmalita [Wed, 14 Sep 2016 17:14:08 +0000 (10:14 -0700)]
Improved optional command handling in SkParsePath::FromSVGString()

Repeating command letters are optional in SVG path data strings:
https://www.w3.org/TR/SVG/paths.html#PathData

FromSVGString() already supports this feature, but only checks for
scalars prefixes == (digit | '-' | '+').

A decimal point is also a valid scalar prefix though, so it should be
included in the test.

R=caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339813003

Review-Url: https://codereview.chromium.org/2339813003

8 years agoBundle common arguments to GrGradientEffect creation
brianosman [Wed, 14 Sep 2016 17:03:46 +0000 (10:03 -0700)]
Bundle common arguments to GrGradientEffect creation

I'm going to be adding more (to deal with color spaces), so trying to fix
this before it gets out of control.

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

Review-Url: https://codereview.chromium.org/2332213007

8 years agoFix SVG flag iOS linking
fmalita [Wed, 14 Sep 2016 16:05:43 +0000 (09:05 -0700)]
Fix SVG flag iOS linking

TBR=mtklein@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2344533002

Review-Url: https://codereview.chromium.org/2344533002

8 years agoNanobench SVG support
fmalita [Wed, 14 Sep 2016 15:05:17 +0000 (08:05 -0700)]
Nanobench SVG support

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

Review-Url: https://codereview.chromium.org/2339743002

8 years agoRewriting path writer
caryclark [Wed, 14 Sep 2016 14:18:20 +0000 (07:18 -0700)]
Rewriting path writer

The path writer takes constructs the output path out of
curves that satisfy the pathop operation.

Curves contain lists of t/point pairs that may not be
comparable to each other. To match up curve ends in the
output path, look for adjacent curves to have a shared
membership rather than comparing point values.

Use path utilities to connect partial curve lists into
closed contours.

Share the angle code that determines if a curve has become
a degenerate line with the path writer.

Clean up some code on the way, and delete some unused
functions.

TBR=reed@google.com
BUG=5188
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321973005

Review-Url: https://codereview.chromium.org/2321973005

8 years agoReduce overhead for linear color xforms
msarett [Wed, 14 Sep 2016 14:06:08 +0000 (07:06 -0700)]
Reduce overhead for linear color xforms

We used to build src and dst transfer fn tables
every time a new xform was created with linear
src and dst.  Now we don't compute them because
we don't need them.

This will make SkColorSpaceXform a far better
option for any xforms with float or half-float
inputs or outputs, particularly on a small number
of pixels.

This CL also moves SkColorSpaceXform closer to
what I anticipate will be the eventual 'API design'.
I think apply() will want to take a SrcColorType enum
(not created yet because it's not necessary yet) and
a DstColorType enum (still using SkColorType because
there's not yet a reason not to).

Performance changes:
toSRGB  341us -> 366us
to2Dot2 404us -> 403us
toF16   318us -> 304us

There's no reason for toSRGB or to2Dot2 to change.
The refactor seems to have caused the compiler to
order the instructions a little differently...
This is something to come back to if we need to
squeeze more performance out of sRGB.  For now,
let's not be held up by something we don't control.

F16 likely improves because we are no longer
(unnecessarily) building the linear tables.

Code size gets a little bigger.  Measuring
SkColorSpaceXform size as a percentage of src/ size,
we go from 0.8% to 1.4%.

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

Review-Url: https://codereview.chromium.org/2335723002

8 years agoSwitch default for SkGaussianBlurShader radius size.
jvanverth [Wed, 14 Sep 2016 14:04:49 +0000 (07:04 -0700)]
Switch default for SkGaussianBlurShader radius size.

One step towards removing the 6.2 radius entirely.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333403002
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2333403002

8 years agoGN: Android Vulkan support
mtklein [Wed, 14 Sep 2016 13:12:09 +0000 (06:12 -0700)]
GN: Android Vulkan support

Android's the easiest place to start supporting Vulkan, so it's up first.

ndk_api becomes user-specifiable so that the Vulkan bots can kick it up
to 24, the first release supporting Vulkan.  The defaults remain the same:
18 for 32-bit and 21 for 64-bit, the first release supporting 64-bit.

To test this, I set ndk_api=24 and skia_use_vulkan=true in GN, then
   $ ninja -C out dm; and droid out/dm --config vk --src gm

Seems to work!  Bot scripts to follow.

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

Review-Url: https://codereview.chromium.org/2336343002

8 years agoupdate derive_compile_bot_name() for GN_Android_Vulkan
mtklein [Wed, 14 Sep 2016 12:44:31 +0000 (05:44 -0700)]
update derive_compile_bot_name() for GN_Android_Vulkan

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

Review-Url: https://codereview.chromium.org/2336233005

8 years agoAndroid GN scripts: distingush directories for data and binaries.
mtklein [Wed, 14 Sep 2016 12:33:11 +0000 (05:33 -0700)]
Android GN scripts: distingush directories for data and binaries.

This enables data reuse, e.g. https://luci-milo.appspot.com/swarming/task/313eff129c753d10 or https://luci-milo.appspot.com/swarming/task/313f17a174c6c710

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

Review-Url: https://codereview.chromium.org/2335203004

8 years agochange write-image to use pipeverbs like everyone else, and add test
reed [Wed, 14 Sep 2016 00:25:19 +0000 (17:25 -0700)]
change write-image to use pipeverbs like everyone else, and add test

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

Review-Url: https://codereview.chromium.org/2335973003

8 years agore-add SkDebug_stdio for Fuchsia builds
mikejurka [Tue, 13 Sep 2016 23:15:03 +0000 (16:15 -0700)]
re-add SkDebug_stdio for Fuchsia builds

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

Review-Url: https://codereview.chromium.org/2331383004

8 years agoSimulated fonts aren't TrueType fonts.
bungeman [Tue, 13 Sep 2016 21:03:54 +0000 (14:03 -0700)]
Simulated fonts aren't TrueType fonts.

Some font back-ends provide simulated fonts such as fake bold or fake
oblique. These fonts should not be reported as TrueType, since the font
data isn't what is actually used to draw the glyphs.

BUG=chromium:639198
BUG=chromium:614612
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333423002

Review-Url: https://codereview.chromium.org/2333423002

8 years ago[SVGDom] Linear gradient 'gradientTransform' support
fmalita [Tue, 13 Sep 2016 20:59:05 +0000 (13:59 -0700)]
[SVGDom] Linear gradient 'gradientTransform' support

R=stephana@google.com,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339533002

Review-Url: https://codereview.chromium.org/2339533002

8 years agoUpdate gn_android_flavor for Vulkan.
mtklein [Tue, 13 Sep 2016 20:50:09 +0000 (13:50 -0700)]
Update gn_android_flavor for Vulkan.

C.f. https://codereview.chromium.org/2336343002 for basic GN support.

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

Review-Url: https://codereview.chromium.org/2333293004

8 years agoNo \n in bench names.
jcgregorio [Tue, 13 Sep 2016 20:27:13 +0000 (13:27 -0700)]
No \n in bench names.

BUG=skia:
R=mtklein
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332153003

Review-Url: https://codereview.chromium.org/2332153003

8 years agoAndroid GN: don't reboot before running
mtklein [Tue, 13 Sep 2016 20:13:54 +0000 (13:13 -0700)]
Android GN: don't reboot before running

We're already rebooting after running, so we should already be ready to go when the task starts.

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

Review-Url: https://codereview.chromium.org/2334223003

8 years ago[SVGDom] Linear gradient 'spreadMethod' support
fmalita [Tue, 13 Sep 2016 19:56:11 +0000 (12:56 -0700)]
[SVGDom] Linear gradient 'spreadMethod' support

R=stephana@google.com,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2337203002

Review-Url: https://codereview.chromium.org/2337203002

8 years agoRemove clear /data/local/tmp steps.
mtklein [Tue, 13 Sep 2016 18:17:58 +0000 (11:17 -0700)]
Remove clear /data/local/tmp steps.

These were intended to prevent GN and GYP Android bots from stomping on
each other.  Turns out, they don't, even without this... they're writing
most files to completely separate paths:
  - GYP puts most data under $EXTERNAL_STORAGE, generally /sdcard
    and its binaries (libdm.so, libnanobench.so, libskia.so, skia_launcher)
    in /data/local/tmp;
  - GN puts everything under /data/local/tmp, and its binaries (dm, nanobench)
    don't overlap GYP's.

So clearing /data/local/tmp was essentially just removing GN's data; GYP's
data file caching was never affected and can't conflict with GN's.

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

Review-Url: https://codereview.chromium.org/2340473002

8 years agoAdd ContextOptions field to SkCommandLineConfigGpu
csmartdalton [Tue, 13 Sep 2016 17:41:49 +0000 (10:41 -0700)]
Add ContextOptions field to SkCommandLineConfigGpu

Reduces duplicate code by computing the ContextOptions in one spot.

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

Review-Url: https://codereview.chromium.org/2337163002

8 years agoUse sk_sp text blob APIs
fmalita [Tue, 13 Sep 2016 17:00:23 +0000 (10:00 -0700)]
Use sk_sp text blob APIs

SkTextBlobBuilder::build()      -> make()
SkAutoTUnref<const SkTextBlob>  -> sk_sp<SkTextBlob>
drawTextBlob(const SkTextBlob*) -> drawTextBlob(const sk_sp<SkTextBlob>&)

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

Review-Url: https://codereview.chromium.org/2335493005