platform/upstream/libSkiaSharp.git
8 years agoAdd setBounds to SkLiteDL for Android
liyuqian [Wed, 21 Sep 2016 14:11:08 +0000 (07:11 -0700)]
Add setBounds to SkLiteDL for Android

The RootRenderNode in Android is changing bounds dynamically. This is a
temporary fix to accomodate that behaviour. (See also b/31304115)

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

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

8 years agoFix memory leaks reported by clang static analyzer.
sdefresne [Wed, 21 Sep 2016 13:51:33 +0000 (06:51 -0700)]
Fix memory leaks reported by clang static analyzer.

The CFURLCopyFileSystemPath & CFURLCopyFileSystemPath methods
respect the "Create Rule" [1] regarding the ownership of the
returned reference. This means that the objects need to be
deallocated explicitly by calling CFRelease.

[1]: https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/uid/20001148-103029

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

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

8 years agoFix some GPU image filter code to preserve precision and color space
brianosman [Wed, 21 Sep 2016 13:45:09 +0000 (06:45 -0700)]
Fix some GPU image filter code to preserve precision and color space

On the pure-GPU path, we just have an SkSpecialImage (that's definitely
texture backed), and we need a renderable config for the draw context we
make. Added a helper function to pick - this is basically the high
precision analog of what we were doing before (always using 8888).

The assert that I added catches many other problems in image filter code,
but those fixes are coming in subsequent CLs.

12 GMs render correctly (or more correctly) in gpusrgb and gpuf16
configs. In most cases, they were drawing previously nothing.

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

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

8 years agoRemove SK_ADDING_src_ports_SkFontConfigInterface_cpp
bungeman [Tue, 20 Sep 2016 22:46:36 +0000 (15:46 -0700)]
Remove SK_ADDING_src_ports_SkFontConfigInterface_cpp

This flag is no longer defined anywhere, so remove it and the code it
was guarding.

TBR=reed
This is just removing dead transitional code.

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

8 years ago[SVGDom] Opacity optimization
fmalita [Tue, 20 Sep 2016 22:45:57 +0000 (15:45 -0700)]
[SVGDom] Opacity optimization

Apply opacity as fill/stroke paint alpha instead of saveLayer, when
possible.

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

Committed: https://skia.googlesource.com/skia/+/3dbb7b9f196d793fbd16243157ee67638891f5dc
Review-Url: https://codereview.chromium.org/2353503005

8 years agoBlacklist serialize-8888 typefacerendering_pfaMac
mtklein [Tue, 20 Sep 2016 22:41:29 +0000 (15:41 -0700)]
Blacklist serialize-8888 typefacerendering_pfaMac

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

TBR=halcanary@google.com
NOTREECHECKS=true
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug-GN-Trybot

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

8 years agoGN: fold :vulkan into :gpu.
mtklein [Tue, 20 Sep 2016 22:11:46 +0000 (15:11 -0700)]
GN: fold :vulkan into :gpu.

Obviously, :vulkan can't be used without :gpu, but more subtly,
:gpu needs to see SK_VULKAN defined if we're using Vulkan.

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

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

8 years agoRevert of Stop closing filled paths in GrShape (patchset #1 id:1 of https://coderevie...
fmalita [Tue, 20 Sep 2016 21:06:57 +0000 (14:06 -0700)]
Revert of Stop closing filled paths in GrShape (patchset #1 id:1 of https://codereview.chromium.org/2355833002/ )

Reason for revert:
Triggers msaa16 asserts: https://build.chromium.org/p/client.skia/builders/Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/4236/steps/test_skia%20on%20Windows/logs/stdio

c:\b\work\skia\src\gpu\grmesh.h:76: fatal error: "assert(indexCount)"

Caught exception 2147483651 EXCEPTION_BREAKPOINT, was running:
msaa16 svg  cartman.svg
Likely culprit:
msaa16 svg  cartman.svg

Original issue's description:
> Stop closing filled paths in GrShape
>
> This can force a copy of the path data and isn't really being taken advantage of. It complicates a forthcoming change to key small paths based on their data rather than gen id.
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2355833002
>
> Committed: https://skia.googlesource.com/skia/+/ad001fdc77b2dfe32c1723cb58636728dfb776d8

TBR=robertphillips@google.com,bsalomon@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/2357713002

8 years agoRevert of [SVGDom] Opacity optimization (patchset #4 id:60001 of https://codereview...
borenet [Tue, 20 Sep 2016 20:39:46 +0000 (13:39 -0700)]
Revert of [SVGDom] Opacity optimization (patchset #4 id:60001 of https://codereview.chromium.org/2353503005/ )

Reason for revert:
Failing assertion

Original issue's description:
> [SVGDom] Opacity optimization
>
> Apply opacity as fill/stroke paint alpha instead of saveLayer, when
> possible.
>
> R=robertphillips@google.com,stephana@google.com,reed@google.com
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353503005
>
> Committed: https://skia.googlesource.com/skia/+/3dbb7b9f196d793fbd16243157ee67638891f5dc

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

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

8 years agoGN: add skia_use_mesa for OSMesa in tools.
mtklein [Tue, 20 Sep 2016 20:36:47 +0000 (13:36 -0700)]
GN: add skia_use_mesa for OSMesa in tools.

I tested by running
  $ out/dm --src gm --config mesa
  $ out/nanobench --config mesa --match Xfermode
... but I ran out of patience waiting for nanobench to finish.  Probably works.

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

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

8 years agoAttempt to fix nanobench upload
borenet [Tue, 20 Sep 2016 20:32:37 +0000 (13:32 -0700)]
Attempt to fix nanobench upload

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

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

8 years agoRevert of Clear stencil buffer before using it for drawing (patchset #2 id:20001...
stani [Tue, 20 Sep 2016 20:24:49 +0000 (13:24 -0700)]
Revert of Clear stencil buffer before using it for drawing (patchset #2 id:20001 of https://codereview.chromium.org/2342873004/ )

Reason for revert:
performance regression in Android macrobench tests

Original issue's description:
> 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
>
> Committed: https://skia.googlesource.com/skia/+/c326a383e1069497884905f9dd3e720e17d8fcb5

TBR=bsalomon@google.com,reed@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.

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

8 years agoFix VkWrapTests
jvanverth [Tue, 20 Sep 2016 20:18:00 +0000 (13:18 -0700)]
Fix VkWrapTests

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

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

8 years agoGM: add test for type1 font
halcanary [Tue, 20 Sep 2016 20:11:01 +0000 (13:11 -0700)]
GM: add test for type1 font

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

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

8 years agoDisable framebuffer fetch on the Adreno5xx devices.
egdaniel [Tue, 20 Sep 2016 20:00:26 +0000 (13:00 -0700)]
Disable framebuffer fetch on the Adreno5xx devices.

This should help with some of the rendering bugs currently in GL for the
S7.

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

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

8 years agoFix possible divide by zero in vulkan granularity adjustments
egdaniel [Tue, 20 Sep 2016 19:57:45 +0000 (12:57 -0700)]
Fix possible divide by zero in vulkan granularity adjustments

This should fix the divide by zero crash on the nexus player bots

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

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

8 years agoStop closing filled paths in GrShape
bsalomon [Tue, 20 Sep 2016 19:44:36 +0000 (12:44 -0700)]
Stop closing filled paths in GrShape

This can force a copy of the path data and isn't really being taken advantage of. It complicates a forthcoming change to key small paths based on their data rather than gen id.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2355833002

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

8 years ago[SVGDom] Opacity optimization
fmalita [Tue, 20 Sep 2016 19:44:31 +0000 (12:44 -0700)]
[SVGDom] Opacity optimization

Apply opacity as fill/stroke paint alpha instead of saveLayer, when
possible.

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

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

8 years agoDisable failing unit tests on adreno vulkan
egdaniel [Tue, 20 Sep 2016 19:39:29 +0000 (12:39 -0700)]
Disable failing unit tests on adreno vulkan

As mentioned in the attached bug, these failures all seem to be caused
by driver issues that have no workarounds at this time.

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

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

8 years agoUse STDArray to for tracked resources in vulkan command buffer
egdaniel [Tue, 20 Sep 2016 19:39:25 +0000 (12:39 -0700)]
Use STDArray to for tracked resources in vulkan command buffer

This is a minor speed improvement to help with the number of times we
are freeing and re-allocating the tracked resource arrays

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

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

8 years agoRevert of Skia recipe: Use [depot_tools]/gsutil.py instead of [depot_tools]/third_par...
borenet [Tue, 20 Sep 2016 19:34:05 +0000 (12:34 -0700)]
Revert of Skia recipe: Use [depot_tools]/gsutil.py instead of [depot_tools]/third_party/gsutil/gsutil (patchset #1 id:1 of https://codereview.chromium.org/2298293002/ )

Reason for revert:
Broke all nanobench uploads, eg. https://uberchromegw.corp.google.com/i/client.skia.android/builders/Perf-Android-Clang-Nexus6p-CPU-Snapdragon810-arm64-Release-GN_Android/builds/154/steps/Upload%20perf%20results/logs/stdio

Original issue's description:
> Skia recipe: Use [depot_tools]/gsutil.py instead of [depot_tools]/third_party/gsutil/gsutil
>
> The latter is being removed in https://codereview.chromium.org/2280023003/
> Is also pinned to 3.25, whereas the former is updated more often.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298293002
>
> Committed: https://skia.googlesource.com/skia/+/f15590f803596f51d0950994b2aeb623d2d1fc24

TBR=hinoka@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

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

8 years agoGN: add skia_enable_gpu (default true)
mtklein [Tue, 20 Sep 2016 19:28:12 +0000 (12:28 -0700)]
GN: add skia_enable_gpu (default true)

This lets us replace the NoGPU bot.

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

NOTREECHECKS=true

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

8 years agoGN: compiler_prefix -> cc_wrapper
mtklein [Tue, 20 Sep 2016 19:09:12 +0000 (12:09 -0700)]
GN: compiler_prefix -> cc_wrapper

I was a bit mixed up thinking Chrome called this feature compiler_prefix.
They actually call it cc_wrapper.  So let's switch to their name before we
get too used to this.

No bots are affected.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2355003002
DOCS_PREVIEW= https://skia.org/?cl=2355003002

NOTREECHECKS=true

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

8 years agoSnazzier dump log step on Android bots.
mtklein [Tue, 20 Sep 2016 18:45:11 +0000 (11:45 -0700)]
Snazzier dump log step on Android bots.

(The failing NexusPlayer bot is a demo.)

This should make stack traces more useful, turning this sort of thing

    09-20 11:29:39.536  2978  2978 F DEBUG   :     #00 pc 00970fd0  /data/local/tmp/dm

into something like this

    09-20 11:29:39.536  2978  2978 F DEBUG   :     #00 pc 00970fd0 adjust_bounds_to_granularity(SkIRect*, SkIRect const&, VkExtent2D const&, int, int) at /b/work/skia/out/Build-Ubuntu-Clang-x86-Debug-GN_Android_Vulkan/Debug/../../../src/gpu/vk/GrVkGpu.cpp:1803  /data/local/tmp/dm

Some bots like the S7 already have good enough stack traces, e.g.

09-20 11:35:12.567   936   936 F DEBUG   :     #00 pc 00000000000bed6c  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN13QglManagedBuf14ConfirmEntriesEv+108)
09-20 11:35:12.567   936   936 F DEBUG   :     #01 pc 00000000000b098c  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN9QglBltLib6FillHwEPK10QglBltFillPK15QglBltColorFillPK15QglBltDepthFillPjP12QglBltStatusSB_+588)
09-20 11:35:12.567   936   936 F DEBUG   :     #02 pc 00000000000b23bc  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN9QglBltLib9FillImageEPK10QglBltFillPK15QglBltColorFillPK15QglBltDepthFillPjP12QglBltStatusSB_+348)
09-20 11:35:12.567   936   936 F DEBUG   :     #03 pc 000000000009bb00  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16A5xCommandBuffer22PerformConditionalFillEiiP10QglBltFillPK15QglBltColorFillP15QglBltDepthFillP12QglBltStatusS8_+256)
09-20 11:35:12.567   936   936 F DEBUG   :     #04 pc 000000000009c0c0  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16A5xCommandBuffer23HwWriteSubpassInitClearEP10QglBltFillPK15QglBltColorFillP15QglBltDepthFillP12QglBltStatusS8_+224)
09-20 11:35:12.567   936   936 F DEBUG   :     #05 pc 0000000000072610  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16QglCommandBuffer18WriteSubpassClearsEv+464)
09-20 11:35:12.567   936   936 F DEBUG   :     #06 pc 0000000000073ae0  /system/vendor/lib64/hw/vulkan.msm8996.so (_ZN16QglCommandBuffer12BeginSubpassEv+32)
09-20 11:35:12.567   936   936 F DEBUG   :     #07 pc 0000000000063120  /system/vendor/lib64/hw/vulkan.msm8996.so (vkCmdBeginRenderPass+224)
09-20 11:35:12.567   936   936 F DEBUG   :     #08 pc 0000000000635f60  /data/local/tmp/nanobench (_ZN24GrVkPrimaryCommandBuffer15beginRenderPassEPK7GrVkGpuPK14GrVkRenderPassjPK12VkClearValueRK16GrVkRenderTargetRK7SkIRectb+132)

or

09-20 11:42:24.557   937   937 F DEBUG   : backtrace:
09-20 11:42:24.557   937   937 F DEBUG   :     #00 pc 0000000000069404  /system/lib64/libc.so (tgkill+8)
09-20 11:42:24.557   937   937 F DEBUG   :     #01 pc 0000000000066b94  /system/lib64/libc.so (pthread_kill+68)
09-20 11:42:24.557   937   937 F DEBUG   :     #02 pc 0000000000023a28  /system/lib64/libc.so (raise+28)
09-20 11:42:24.557   937   937 F DEBUG   :     #03 pc 000000000001e358  /system/lib64/libc.so (abort+60)
09-20 11:42:24.557   937   937 F DEBUG   :     #04 pc 000000000076430c  /data/local/tmp/dm (_Z17sk_abort_no_printv+8)

These won't be affected.

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

NOTREECHECKS=true

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

8 years agoCleanup some sRGB TODOs, mostly around setting GrPaint flags correctly
brianosman [Tue, 20 Sep 2016 16:56:23 +0000 (09:56 -0700)]
Cleanup some sRGB TODOs, mostly around setting GrPaint flags correctly

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

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

8 years agoSupport use of non-coherent memory allocations in Vulkan.
jvanverth [Tue, 20 Sep 2016 16:20:03 +0000 (09:20 -0700)]
Support use of non-coherent memory allocations in Vulkan.

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

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

8 years agoStop flattening GrCoordTransforms in parent GrFragmentProcessors.
bsalomon [Tue, 20 Sep 2016 16:12:47 +0000 (09:12 -0700)]
Stop flattening GrCoordTransforms in parent GrFragmentProcessors.

This changes moves to a model that iterates over GrCTs in a GrFP hierarchy when inserting transformations by GrGLSLPrimitiveProcessors.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339203002

Committed: https://skia.googlesource.com/skia/+/d91237ee051523f439238042674ade99207fe4a6
Review-Url: https://codereview.chromium.org/2339203002

8 years agoWorkaround for Adreno INITIALIZATION_FAILED bug
egdaniel [Tue, 20 Sep 2016 15:54:23 +0000 (08:54 -0700)]
Workaround for Adreno INITIALIZATION_FAILED bug

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

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

8 years agoFix a memory leak reported by clang static analyzer.
sdefresne [Tue, 20 Sep 2016 15:53:14 +0000 (08:53 -0700)]
Fix a memory leak reported by clang static analyzer.

The CFStringCreateWithCString method respect the "Create Rule" [1]
regarding the ownership of the returned reference. This means that
the object needs to be deallocated explicitly by calling CFRelease.

[1]: https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/uid/20001148-103029

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

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

8 years agoabstract name of clipping ops, to transtion to a more restricted set
reed [Tue, 20 Sep 2016 15:42:38 +0000 (08:42 -0700)]
abstract name of clipping ops, to transtion to a more restricted set

SkRegion::Op --> SkCanvas::ClipOp (alias) --> SkClipOp

pre-CL needed in chrome : https://codereview.chromium.org/2355583002/

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

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

8 years agoskia_enable_android_framework_defines in all code, public and private, optional and...
mtklein [Tue, 20 Sep 2016 15:24:34 +0000 (08:24 -0700)]
skia_enable_android_framework_defines in all code, public and private, optional and required.

The bug fixed here can be demonstrated by
  $ ninja -C out pdf -v
before and after this CL.  Before you won't see the Android defines, afterwards you do.  Previously the defines applied only privately to Skia, and only to its non-optional components.

TBR=reed@google.com

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

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

8 years agoAuto-generate much of the help text for --config to reduce maintenance
brianosman [Tue, 20 Sep 2016 15:06:30 +0000 (08:06 -0700)]
Auto-generate much of the help text for --config to reduce maintenance

The list of configs, and the details about all predefined configs are now
built directly from the gPredefinedConfigs array.

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

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

8 years agoFix Win toolchain asset, fix script
borenet [Tue, 20 Sep 2016 14:01:23 +0000 (07:01 -0700)]
Fix Win toolchain asset, fix script

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

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

8 years agoHarden LinearGradient4fContext
fmalita [Tue, 20 Sep 2016 13:55:16 +0000 (06:55 -0700)]
Harden LinearGradient4fContext

Three distinct issues exposed by Fuzzer:

1) truncating the flags to 8 bits may trip the assert in SkToU8

Since clients can pass in any garbage, we cannot assume it fits in 8
bits.  Just static_cast<> instead.

2) vertical gradients with dx == -0.0 don't trigger interval inversion.

For dx < 0 we want reversed intervals.  But, alas, -0.0 < 0 == false
(thanks, Ob^WIEEE 754!).  Use signbit() instead.

3) half closed range checking needs to be inverted for reversed
intervals.

Normally we check for [p0, p1), but for reversed intervals (p1 < p0) we
want to check for [p1, p0), and not (p1, p0].  Adjust the logic
accordingly.

BUG=skia:5647
R=reed@google.com,kjlubick@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349153004

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

8 years agoBlacklist incomplete pngs on CG
msarett [Tue, 20 Sep 2016 12:50:16 +0000 (05:50 -0700)]
Blacklist incomplete pngs on CG

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

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

8 years agoSkASSERT firing because pointer wraps negative.
cblume [Tue, 20 Sep 2016 04:05:18 +0000 (21:05 -0700)]
SkASSERT firing because pointer wraps negative.

Some pointers are being cast to intptr_t so they can be used with
SkAlign8(). However, a large pointer value might become a negative
integer since intptr_t is signed.

When comparing these intptr_ts, we expect the larger pointer value to be
greater. But it might be so large that it becomes negative, causing it
to be less than.

A SkASSERT is firing for this exact reason.

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

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

8 years agoAdd ability to pick a different gamut in GPU f16 or sRGB configs
brianosman [Mon, 19 Sep 2016 21:42:04 +0000 (14:42 -0700)]
Add ability to pick a different gamut in GPU f16 or sRGB configs

For now, the only options are sRGB or WideGamutRGB

Basically, the color option to the gpu config is now of
the form: 8888|srgb[_gamut]|f16[_gamut]

color=8888 still implies legacy behavior
srgb implies 8-bit gamma-correct rendering (via sRGB format)
f16 implies 16-bit gamma-correct rendering (via F16 format)

Either of the last two options can then optionally include
a gamut specifier, either _srgb or _wide.
_srgb selects the (default) sRGB gamut
_wide selects the Adobe Wide Gamut RGB gamut, which is nice
for testing, in that it's significantly wider than sRGB,
so rendering differences are obvious.

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

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

8 years agoReland of Run SVGs through nanobench on all Perf bots (patchset #1 id:1 of https...
rmistry [Mon, 19 Sep 2016 20:44:25 +0000 (13:44 -0700)]
Reland of Run SVGs through nanobench on all Perf bots (patchset #1 id:1 of https://codereview.chromium.org/2348563003/ )

Reason for revert:
skbug/5770 has been fixed.
Trying out trybots to see if this can be relanded.

Original issue's description:
> 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
>
> Committed: https://skia.googlesource.com/skia/+/be7e3c0db3caa7a86ae233a6bd26281817b83882

TBR=jcgregorio@google.com,fmalita@chromium.org,mtklein@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:5757
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2350233002

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

8 years agoCreate GrVkCopyPipeline class
egdaniel [Mon, 19 Sep 2016 20:39:34 +0000 (13:39 -0700)]
Create GrVkCopyPipeline class

This creates a special subclass of GrVkPipeline that we can use for doing
copies on draws. Currently this is not hooked into the system.

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

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

8 years agoremove dead code around SK_ENABLE_CLIP_QUICKREJECT
reed [Mon, 19 Sep 2016 20:33:43 +0000 (13:33 -0700)]
remove dead code around SK_ENABLE_CLIP_QUICKREJECT

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

TBR=

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

8 years agoAdd FrameworkDefs bot to the CQ.
mtklein [Mon, 19 Sep 2016 19:34:14 +0000 (12:34 -0700)]
Add FrameworkDefs bot to the CQ.

Word is that this bot only exists so it can be on the CQ...
but we forgot to actually put it on the CQ until last week.

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

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

8 years agoSkia recipe: Use [depot_tools]/gsutil.py instead of [depot_tools]/third_party/gsutil...
hinoka [Mon, 19 Sep 2016 19:18:55 +0000 (12:18 -0700)]
Skia recipe: Use [depot_tools]/gsutil.py instead of [depot_tools]/third_party/gsutil/gsutil

The latter is being removed in https://codereview.chromium.org/2280023003/
Is also pinned to 3.25, whereas the former is updated more often.

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

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

8 years agoSplit SkFontConfigInterface globals and factory.
bungeman [Mon, 19 Sep 2016 19:13:16 +0000 (12:13 -0700)]
Split SkFontConfigInterface globals and factory.

Chromium needs to be able to set up their build such that the globals
continue existing but the SkFontMgr::Factory can be defined separately.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2346333002
CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot

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

8 years agoAdd adb support to skpbench
csmartdalton [Mon, 19 Sep 2016 19:04:56 +0000 (12:04 -0700)]
Add adb support to skpbench

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

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

8 years agoRemove unnecessary assert in GrBatchAtlas.
jvanverth [Mon, 19 Sep 2016 18:25:57 +0000 (11:25 -0700)]
Remove unnecessary assert in GrBatchAtlas.

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

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

8 years agoskpbench
csmartdalton [Mon, 19 Sep 2016 18:03:58 +0000 (11:03 -0700)]
skpbench

skpbench is a benchmarking suite for skps that aims to generate 100%
repeatable results. The initial commit consists of three parts:

skpbench

A minimalist program whose sole purpose is to open an skp file,
benchmark it on a single config, and exit. No tiling, looping, or
other fanciness is used; it just draws the skp whole into a size-
matched render target and syncs the GPU after each draw.

Limiting the entire process to a single config/skp pair helps to keep
the results repeatable.

skpbench.py

A wrapper to execute the skpbench binary with various configs and skps.
It also monitors the output in order to filter out and re-run results
with an unacceptable stddev.

In the future this script will lock down and monitor clocks and
temperatures.

parseskpbench.py

A utility for parsing skpbench output into a spreadsheet.

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

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

8 years agoSkPDF: SkBitSet gets reset() to make drop() better.
halcanary [Mon, 19 Sep 2016 17:27:03 +0000 (10:27 -0700)]
SkPDF: SkBitSet gets reset() to make drop() better.

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

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

8 years agoMove vulkan spir-v compile call to GrVkUtil
egdaniel [Mon, 19 Sep 2016 17:17:34 +0000 (10:17 -0700)]
Move vulkan spir-v compile call to GrVkUtil

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

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

8 years agoRefactor vulkan buffer mapping and unmapping
egdaniel [Mon, 19 Sep 2016 16:32:09 +0000 (09:32 -0700)]
Refactor vulkan buffer mapping and unmapping

A lot of this is so we don't have duplicated code in both the map/unmap and
updateData functions of GrVkBuffer. Also there were slightly differences in
how we handled various things in the two cases that this now unifies.

Also I added a barrier after the vkUpdateBuffer call which I believe was
missing.

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

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

8 years agoRevert of Stop flattening GrCoordTransforms in parent GrFragmentProcessors. (patchset...
bsalomon [Mon, 19 Sep 2016 16:26:40 +0000 (09:26 -0700)]
Revert of Stop flattening GrCoordTransforms in parent GrFragmentProcessors. (patchset #3 id:40001 of https://codereview.chromium.org/2339203002/ )

Reason for revert:
Crashing blink
 https://codereview.chromium.org/2351743002/

Original issue's description:
> Stop flattening GrCoordTransforms in parent GrFragmentProcessors.
>
> This changes moves to a model that iterates over GrCTs in a GrFP hierarchy when inserting transformations by GrGLSLPrimitiveProcessors.
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339203002
>
> Committed: https://skia.googlesource.com/skia/+/d91237ee051523f439238042674ade99207fe4a6

TBR=egdaniel@google.com,robertphillips@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/2351753002

8 years agoTo prep for removing CMake bots, take them off the CQ and presubmit.
mtklein [Mon, 19 Sep 2016 16:08:07 +0000 (09:08 -0700)]
To prep for removing CMake bots, take them off the CQ and presubmit.

GN is now far more capable than our CMake builds.
Time to officially end that experiment.

Reminder how this lands:
  1) this CL
  2) remove the bots from the masters
  3) remove the CMake recipe files
  4) remove the CMake files

I'm willing to wait on 4) until we can do GN -> CMake generation, but I don't want the bots to hold us back.

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

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

8 years agoStop flattening GrCoordTransforms in parent GrFragmentProcessors.
bsalomon [Mon, 19 Sep 2016 15:36:58 +0000 (08:36 -0700)]
Stop flattening GrCoordTransforms in parent GrFragmentProcessors.

This changes moves to a model that iterates over GrCTs in a GrFP hierarchy when inserting transformations by GrGLSLPrimitiveProcessors.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339203002

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

8 years agoGN: remove old Android recipe code.
mtklein [Mon, 19 Sep 2016 14:26:41 +0000 (07:26 -0700)]
GN: remove old Android recipe code.

All the Android builders, testers, and perfers are on gn_android_flavor now.

Not as scary as it looks... all the big line count changes are deletes.

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

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

8 years agoadd 'g' to fatbits
reed [Mon, 19 Sep 2016 14:10:36 +0000 (07:10 -0700)]
add 'g' to fatbits

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

TBR=

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

8 years agoDelete unused coverage recipe code.
mtklein [Mon, 19 Sep 2016 14:04:37 +0000 (07:04 -0700)]
Delete unused coverage recipe code.

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

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

8 years agoAdd F16 to the list of allowed formats in GaussianBlur
brianosman [Mon, 19 Sep 2016 13:59:28 +0000 (06:59 -0700)]
Add F16 to the list of allowed formats in GaussianBlur

Fixes asserts that fire in some GMs for gpuf16 config

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

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

8 years ago[SVGDom] Only apply opacity when needed
fmalita [Mon, 19 Sep 2016 13:42:39 +0000 (06:42 -0700)]
[SVGDom] Only apply opacity when needed

Opacity: 1 is a no-op, but it shows up quite a bit in existing documents.

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

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

8 years agoRemove release asserts.
cblume [Mon, 19 Sep 2016 13:18:03 +0000 (06:18 -0700)]
Remove release asserts.

A handful of changes were added to investigate a bug occurring rarely.
The bug has been found and those changes can be reverted.

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

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

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