platform/upstream/libSkiaSharp.git
8 years agoAdd a Windows Android NDK asset.
Mike Klein [Tue, 1 Nov 2016 18:03:04 +0000 (14:03 -0400)]
Add a Windows Android NDK asset.

We can build for Android from Windows now.  I intend to add a bot to keep it that way, just like Build-Mac-Clang-arm64-Debug-GN_Android does for Mac.  The Windows Android builder will need this NDK.

BUG=skia:

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

DOCS_PREVIEW= https://skia.org/?cl=4280

Change-Id: Ifaeeb9b81822a410bdf79b39c7e66d0765f78e0b
Reviewed-on: https://skia-review.googlesource.com/4280
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoLoosen restriction on F16 surfaces - allow "legacy" F16 mode
Brian Osman [Tue, 1 Nov 2016 20:30:21 +0000 (16:30 -0400)]
Loosen restriction on F16 surfaces - allow "legacy" F16 mode

BUG=skia:

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

Change-Id: I032cdf82468ca11639760eb99773a88a5808ebe6
Reviewed-on: https://skia-review.googlesource.com/4231
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoRemove SkImageInfoIsGammaCorrect, etc...
Brian Osman [Tue, 1 Nov 2016 19:56:16 +0000 (15:56 -0400)]
Remove SkImageInfoIsGammaCorrect, etc...

Our internal definition is (and will continue to be) that anything with
a color space is gamma correct. F16 is irrelevant (whether or not we
choose to support untagged F16). This makes these helpers less than
helpful, and lets us remove them from (public) API.

API change is just removal (of unused functions).

TBR=reed@google.com

BUG=skia:

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

Change-Id: Ia84a423548bfee14a3ba4a43d6d5b8c4686fb5ff
Reviewed-on: https://skia-review.googlesource.com/4228
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoSk4fLinearGradient fuzzer fixes
fmalita [Tue, 1 Nov 2016 20:41:34 +0000 (13:41 -0700)]
Sk4fLinearGradient fuzzer fixes

1) update in_range() to actually follow the documented rules regarding interval
   open/close endpoints

2) detect cases where the intervals provide negligible advance and fall back
   to using a color average

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

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

8 years agoremove legacy flags from g3
Mike Reed [Tue, 1 Nov 2016 19:20:15 +0000 (15:20 -0400)]
remove legacy flags from g3

BUG=skia:

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

Change-Id: Icb3e8f132975d1ef2b6b89de05b49f89e2424f78
Reviewed-on: https://skia-review.googlesource.com/4225
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

8 years agoMake fuzzers use cleaner interface
Kevin Lubick [Tue, 1 Nov 2016 19:01:12 +0000 (15:01 -0400)]
Make fuzzers use cleaner interface

signalBoring() no longer exists.  When the fuzzer runs out of randomness,
it just returns 0.  Fuzzers should not go into infinite loops if this
happens.  do while loops are particularly error-prone.

BUG=skia:

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

Change-Id: Iebcfc14cc6b0a19c5dd015cd39875c81fa44003e
Reviewed-on: https://skia-review.googlesource.com/3963
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoSkRasterPipeline: implement SkLumaColorFilter
Mike Klein [Mon, 31 Oct 2016 23:49:27 +0000 (19:49 -0400)]
SkRasterPipeline: implement SkLumaColorFilter

After getting discouraged by the non-separable xfermodes, I decided to look at filling out the color filters instead.  This one's nice and easy.

There's only 1 GM that exercises this color filter, and it's drawing noticeably lighter now in f16 and sRGB configs.  565 is unchanged.  This makes me think the diffs are due to lost precision in the previous method, which was going through the default fallback to 8888 filterSpan().

I double checked: the f16 config now draws nearly identically to the gpuf16 config.  It used to be quite different.

BUG=skia:

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

Change-Id: Ic6feaecae5cf18493b5df89733f6a5ca362e9a75
Reviewed-on: https://skia-review.googlesource.com/4183
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agofixed skslc's handling of ivec(vec)
Ethan Nicholas [Tue, 1 Nov 2016 15:57:42 +0000 (11:57 -0400)]
fixed skslc's handling of ivec(vec)

BUG=skia:

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

Change-Id: I9b32067af51f3a04efa702cf2eb1ac1ed480df6a
Reviewed-on: https://skia-review.googlesource.com/4222
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
8 years agoDelete qcms
Matt Sarett [Tue, 1 Nov 2016 16:19:50 +0000 (12:19 -0400)]
Delete qcms

This was always intended to be a temporary dependency to use for
testing.  It has served its purpose.

Also, this has already been dropped (accidentally, I think) by
the new GN build.

TBR=reed@google.com

BUG=skia:

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

Change-Id: Ic72ee08bbfaf86ed86a4122fd38be2921eb1327e
Reviewed-on: https://skia-review.googlesource.com/4220
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agoAllow most third_party targets to use system libraries if asked.
Mike Klein [Tue, 1 Nov 2016 15:46:10 +0000 (11:46 -0400)]
Allow most third_party targets to use system libraries if asked.

This extends the pattern in freetype2 to expat, icu, libjpeg-turbo, libpng, libwebp, and zlib, and gives all these an arg to control which to use.

Homebrew doesn't have dng_sdk, piex, or sftnly, or I'd have done the same for them too.

BUG=skia:

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

DOCS_PREVIEW= https://skia.org/?cl=4260

Change-Id: I82e780502bf2217336e791787f172a6fc8f55460
Reviewed-on: https://skia-review.googlesource.com/4260
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Hal Canary <halcanary@google.com>
8 years agohide setImageFilter(ptr)
Mike Reed [Tue, 1 Nov 2016 15:22:05 +0000 (11:22 -0400)]
hide setImageFilter(ptr)

BUG=skia:

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

Change-Id: Iad792cfdf54087ad4c424fd268559c162a9a5f5c
Reviewed-on: https://skia-review.googlesource.com/4184
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>

8 years agoRemove GrStencilSettings from GrPipeline
csmartdalton [Tue, 1 Nov 2016 15:55:55 +0000 (08:55 -0700)]
Remove GrStencilSettings from GrPipeline

Updates the GrPipeline to have user stencil settings instead of actual
settings. This allows us to further defer creating and attaching a
stencil buffer.

This change is a partial step. The ultimate goal is to attach the
stencil buffer and create the stencil settings during render target
flush, but for the sake of keeping this CL smaller, we create the
stencil settings right before use for now.

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

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

8 years agoSkPDF: Always individually position glyphs in Windows.
Hal Canary [Mon, 31 Oct 2016 16:40:49 +0000 (12:40 -0400)]
SkPDF: Always individually position glyphs in Windows.

Confirmed to fix BUG=chromium:659604

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

Change-Id: Ied25284e285ee51ee1a4712b7e17d752f50d88d2
Reviewed-on: https://skia-review.googlesource.com/4202
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

8 years agoReport repetition count in SkCodec
scroggo [Tue, 1 Nov 2016 15:28:28 +0000 (08:28 -0700)]
Report repetition count in SkCodec

Add a new accessor to retrieve the repetition count.

Remove constants (and corresponding copyright) in SkCodecAnimation.
These may make sense for the calling code, but are not needed here.

kRepetitionCountInfinite corresponds to Blink's kAnimationLoopInfinite.
Move cLoopCountNotSeen to private. It is used to determine whether we
still need to parse. Add a new enum to the parse query - only parse
enough to determine the repetition count.

Unlike Chromium, SkGifCodec does not account for deleting the reader
(which SkGifCodec does not do) or failed decodes.

Add a test.

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

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

8 years agoMove memoization of multisample specs id to GrRenderTarget
csmartdalton [Tue, 1 Nov 2016 14:03:59 +0000 (07:03 -0700)]
Move memoization of multisample specs id to GrRenderTarget

GrGpu used to perform the memoization on behalf of GrRenderTarget via
a public accessor. This change updates GrRenderTarget to do its own
work.

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

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

8 years agoTEMPORARY: track stencil clip state in GrRenderTargetOpList
csmartdalton [Tue, 1 Nov 2016 14:03:03 +0000 (07:03 -0700)]
TEMPORARY: track stencil clip state in GrRenderTargetOpList

Tracks the stencil clip state in GrRenderTargetOpList instead of
GrStencilAttachment. This is a temporary move to unblock MDB, after
which point we will be able to overhaul clipping.

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

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

8 years agoRemove check of INITIALIZATION_FAILED in qcomm vulkan runs
Greg Daniel [Mon, 31 Oct 2016 20:34:42 +0000 (16:34 -0400)]
Remove check of INITIALIZATION_FAILED in qcomm vulkan runs

This was another workaround for a flaky bug that happened on Adreno devices.
With all the devices updated to newer drivers I want to see if it still
happens. I haven't been able to repo the original bug locally with multiple
runs, so I think it is time to step it up to the bots.

BUG=skia:

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

Change-Id: Idc260785096b054cf0fb30ce9ff0d97178c10ed6
Reviewed-on: https://skia-review.googlesource.com/4212
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

8 years agoAdd SkShadowMaskFilter
Jim Van Verth [Mon, 31 Oct 2016 20:06:51 +0000 (16:06 -0400)]
Add SkShadowMaskFilter

BUG=skia:

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

Change-Id: Idde7f7d6a61583a8be26df7a7c4b293c4710bccf
Reviewed-on: https://skia-review.googlesource.com/3824
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

8 years agoAlways write files in binary mode when unzipping
Brian Osman [Mon, 31 Oct 2016 19:28:10 +0000 (15:28 -0400)]
Always write files in binary mode when unzipping

Prevents CRLF conversion on Windows, which was corrupting SKP files
downloaded with fetch-skps

BUG=skia:

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

Change-Id: Ia876f403d10792ee185d50a29fe30402b733441d
Reviewed-on: https://skia-review.googlesource.com/4210
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

8 years agoremove lots of legacy flags
Mike Reed [Mon, 31 Oct 2016 19:11:04 +0000 (15:11 -0400)]
remove lots of legacy flags

BUG=skia:

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

Change-Id: I49ae36a9b2bb51a6470638d3264923ff4a4dea0a
Reviewed-on: https://skia-review.googlesource.com/4209
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

8 years agoUse correct color table for prior GIF frames
Leon Scroggins III [Mon, 31 Oct 2016 18:08:56 +0000 (14:08 -0400)]
Use correct color table for prior GIF frames

While investigating skbug.com/5883 I noticed that we use the color
table for the current frame even while recursively decoding frames that
the current frame depends on.

This CL updates fCurrColorTable, fCurrColorTableIsReal and fSwizzler
before decoding prior frames, and then sets them back afterwards.

Move telling the client about the color table into prepareToDecode,
since the other callers do not need to do so. (That is only necessary
for decoding to index 8, which is unsupported for frames with
dependencies.)

Add a test that exposes the bug. colorTables.gif has a local color
table in its second frame that does not match the global table used by
the first frame.

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

Change-Id: Id2dc9e3283adfd92801d2f38726afa74574b1955
Reviewed-on: https://skia-review.googlesource.com/4208
Reviewed-by: Joost Ouwerling <joostouwerling@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>

8 years agoTag images as sRGB by default in SkCodec
Matt Sarett [Mon, 31 Oct 2016 01:25:34 +0000 (21:25 -0400)]
Tag images as sRGB by default in SkCodec

Unmarked images should be treated as sRGB.

BUG=skia:4895

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

Change-Id: I5f8c308d22fd2d069cbfa89c5a5bb19ae6fde8bd
Reviewed-on: https://skia-review.googlesource.com/4151
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agoFork skia_vulkan_sdk default value on is_android.
Mike Klein [Mon, 31 Oct 2016 17:44:49 +0000 (13:44 -0400)]
Fork skia_vulkan_sdk default value on is_android.

BUG=skia:

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

Change-Id: I091801af7e5e0093ef01a5708c0994928997ddf3
Reviewed-on: https://skia-review.googlesource.com/4205
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoAdd GrNextSizePow2
Robert Phillips [Fri, 28 Oct 2016 16:15:03 +0000 (12:15 -0400)]
Add GrNextSizePow2

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

BUG=skia:5882

Change-Id: Ib9af5918716be594c3c07239eca179dbb4eb8566
Reviewed-on: https://skia-review.googlesource.com/4069
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>

8 years agoReject non-D50 matrices from ICC profiles
Matt Sarett [Mon, 31 Oct 2016 17:41:57 +0000 (13:41 -0400)]
Reject non-D50 matrices from ICC profiles

BUG:660838

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

Change-Id: Ib57eb3705d6fe638e3a9cb56788937fc7e282847
Reviewed-on: https://skia-review.googlesource.com/4200
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
8 years agoUpdate Nexus6p to MR1 build.
Ben Wagner [Mon, 31 Oct 2016 16:18:40 +0000 (12:18 -0400)]
Update Nexus6p to MR1 build.

BUG=skia:5908

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4157
CQ_INCLUDE_TRYBOTS=master.client.skia.android:Test-Android-Clang-Nexus6p-GPU-Adreno430-arm64-Debug-GN_Android_Vulkan

Change-Id: I7b670f878e5df9c5785b56fd5694c7601655710a
Reviewed-on: https://skia-review.googlesource.com/4157
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

8 years agoremove bunch of legacy flags
Mike Reed [Mon, 31 Oct 2016 16:52:04 +0000 (12:52 -0400)]
remove bunch of legacy flags

BUG=skia:

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

Change-Id: I0e23437a77cd8f70595ca54ae421a420e2bb9b43
Reviewed-on: https://skia-review.googlesource.com/4203
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

8 years agoremove legacy xfermode build flag
Mike Reed [Mon, 31 Oct 2016 16:31:12 +0000 (12:31 -0400)]
remove legacy xfermode build flag

BUG=skia:

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

Change-Id: Id60623220daf5a600d8143dedc46714c8dd9896d
Reviewed-on: https://skia-review.googlesource.com/4201
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

8 years agoMinor fix to GN for vulkan android builds
Greg Daniel [Mon, 31 Oct 2016 15:19:59 +0000 (11:19 -0400)]
Minor fix to GN for vulkan android builds

BUG=skia:

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

Change-Id: Ib6a630bbdaf503ff44fbc699aaffdf13ee9c2b59
Reviewed-on: https://skia-review.googlesource.com/4155
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoScript to fix GN generated solutions
Brian Osman [Mon, 31 Oct 2016 16:37:01 +0000 (12:37 -0400)]
Script to fix GN generated solutions

Assumes that all GN configurations are in 'out'. Takes the name of a
single directory (which should have been generated with --ide=vs) as
input. Creates a new solution and project tree in 'out/sln/skia.sln'
with one configuration per directory in 'out'.

Example: From skia directory, run 'python fix-gn-sln.py Debug'

BUG=skia:

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

Change-Id: I797b779eb5bc30cec0e6741d4262894fc0648e97
Reviewed-on: https://skia-review.googlesource.com/4158
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
8 years agoReland "Build SkRawCodec in GN"
scroggo [Mon, 31 Oct 2016 16:02:57 +0000 (09:02 -0700)]
Reland "Build SkRawCodec in GN"

Add BUILD.gn files for dng_sdk and piex and updated BUILD.gn to
build SkRawCodec.

We stopped testing raw images when we switched to GN, so this will
bring back our testing.

Leave SkRawCodec disabled on Windows, where we've had problems in the
past.

Originally landed in issue 4603. Reverted due to build errors.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2463433002

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

8 years agoDraw Alpha8 + color filter correctly in software
Matt Sarett [Fri, 28 Oct 2016 17:25:40 +0000 (13:25 -0400)]
Draw Alpha8 + color filter correctly in software

This makes the behavior match our gpu backend.

BUG=android:31019366

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

Change-Id: I941623d0bdf54f61aafb1383de46bbedceb7578d
Reviewed-on: https://skia-review.googlesource.com/3979
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agoupdate SkFixed15 float conversion notes.
Mike Klein [Mon, 31 Oct 2016 14:08:55 +0000 (10:08 -0400)]
update SkFixed15 float conversion notes.

BUG=skia:

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

Change-Id: Iec7ec71340a2b17db067b5e7fc0c34f3a2d313b2
Reviewed-on: https://skia-review.googlesource.com/4181
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoFix GN config for skpbench
Jim Van Verth [Mon, 31 Oct 2016 13:52:33 +0000 (09:52 -0400)]
Fix GN config for skpbench

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

Change-Id: I817ce9d8baa72200c622e38e954c81ea37bd99e8
Reviewed-on: https://skia-review.googlesource.com/4154
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoAdd missing sk_tool_utils flags_common dependency
fmalita [Mon, 31 Oct 2016 14:22:24 +0000 (07:22 -0700)]
Add missing sk_tool_utils flags_common dependency

Not sure why this is only a problem on my workstation, but SampleApp linking is borked with

obj/gyp/../tools/sk_tool_utils.sk_tool_utils.o: In function `sk_tool_utils::platform_os_name()':
/mnt/screamin/src/blink/src/third_party/skia/out/Debug/../../tools/sk_tool_utils.cpp:128: undefined reference to `FLAGS_key'
/mnt/screamin/src/blink/src/third_party/skia/out/Debug/../../tools/sk_tool_utils.cpp:129: undefined reference to `FLAGS_key'
/mnt/screamin/src/blink/src/third_party/skia/out/Debug/../../tools/sk_tool_utils.cpp:127: undefined reference to `FLAGS_key'
obj/gyp/../tools/sk_tool_utils.sk_tool_utils.o: In function `sk_tool_utils::major_platform_os_name()':
/mnt/screamin/src/blink/src/third_party/skia/out/Debug/../../tools/sk_tool_utils.cpp:140: undefined reference to `FLAGS_key'
/mnt/screamin/src/blink/src/third_party/skia/out/Debug/../../tools/sk_tool_utils.cpp:141: undefined reference to `FLAGS_key'
obj/gyp/../tools/sk_tool_utils.sk_tool_utils.o:/mnt/screamin/src/blink/src/third_party/skia/out/Debug/../../tools/sk_tool_utils.cpp:139: more undefined references to `FLAGS_key' follow
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

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

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

8 years agoDisable some SkDebugfs for dbg bots debugging
liyuqian [Mon, 31 Oct 2016 14:19:35 +0000 (07:19 -0700)]
Disable some SkDebugfs for dbg bots debugging

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

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

8 years agoSkPixmap::getColor()
Hal Canary [Mon, 31 Oct 2016 13:38:12 +0000 (09:38 -0400)]
SkPixmap::getColor()

Implement SkBitmap::getColor() in terms of SkPixmap::getColor().

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

Change-Id: I6192a7979d82b3d301a06ae1339bcab4c7ebf7c1
Reviewed-on: https://skia-review.googlesource.com/4160
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

8 years agoSkFixed15
Mike Klein [Mon, 31 Oct 2016 13:20:54 +0000 (09:20 -0400)]
SkFixed15

BUG=skia:

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

Change-Id: I811b22004e8e2d5b7135f574caea296ffdff7011
Reviewed-on: https://skia-review.googlesource.com/3981
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoupdate androidsdkcanvas for SkBlendMode
reed [Mon, 31 Oct 2016 12:27:57 +0000 (05:27 -0700)]
update androidsdkcanvas for SkBlendMode

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

TBR=

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

8 years agoadd isAlphaOnly() query
reed [Mon, 31 Oct 2016 12:27:28 +0000 (05:27 -0700)]
add isAlphaOnly() query

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

TBR=

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

8 years agoTreat a GIF with no color table as transparent
scroggo [Mon, 31 Oct 2016 11:45:10 +0000 (04:45 -0700)]
Treat a GIF with no color table as transparent

When checking to see whether a GIF has transparency to determine its
alpha type, treat an empty color table as having alpha, since we
will draw it as a transparent image.

(This is a separate bug from skbug.com/5883, but the image I used to
verify that bug was drawn to 565 as black. The fix is to not support
565 in that case, by changing its recommended alpha type.)

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

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

8 years agoRevert "Speculative fix for flaky webp encode/decode on Nexus 5"
Matt Sarett [Mon, 31 Oct 2016 01:16:36 +0000 (01:16 +0000)]
Revert "Speculative fix for flaky webp encode/decode on Nexus 5"

This reverts commit 18a11a6f374fe430c8736c53ff4f8bc3c72cd54b.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Speculative fix for flaky webp encode/decode on Nexus 5
>
> I'm not really expecting this to work anymore...
>
> The docs don't say anything about the rgb pointer needing
> to stay valid, and it looks like we are done with it
> after the call to import.
>
> Still, worth a try I think.
>
> BUG=skia:5876
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4024
>
> Change-Id: I6e65ef96a2b661b01eb92bedab0acd73ed4f6218
> Reviewed-on: https://skia-review.googlesource.com/4024
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Matt Sarett <msarett@google.com>
>

TBR=mtklein@chromium.org,msarett@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id764782ea58acc99e4719c0bff22619abaf9c6e5
Reviewed-on: https://skia-review.googlesource.com/4150
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
8 years agoUpdate SKP version
update-skps [Sun, 30 Oct 2016 09:12:18 +0000 (02:12 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

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

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

8 years agoChange comments to refer to "render target context" rather than "draw context"
Brian Salomon [Sat, 29 Oct 2016 04:13:29 +0000 (00:13 -0400)]
Change comments to refer to "render target context" rather than "draw context"

BUG=skia:

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

Change-Id: I553043ed576d0654faa68ed2e9e9978e4fc6476c
Reviewed-on: https://skia-review.googlesource.com/4180
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

8 years agoPrevent overflow by falling back to non-AA
liyuqian [Sat, 29 Oct 2016 00:16:53 +0000 (17:16 -0700)]
Prevent overflow by falling back to non-AA

This piece of code is directly copied from our old supersampling AA
code. I didn not preserve this code because it's not triggered by any Skia
tests. However, this will be critical to Chromium's tests as some
websites will generate huge paths!

I'm not so sure whether the long_running_idle_gmail_background_tbmv2 test
failed because of this. But I'm sure that www.nationalgeographic.com from
page_cycler_v2.typical_25 failed because of this.

BUG=chromium:660394

TBR=reed@google.com,caryclark@google.com

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

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

8 years agoVarious fixes in VulkanWindowContext
Greg Daniel [Thu, 27 Oct 2016 20:37:17 +0000 (16:37 -0400)]
Various fixes in VulkanWindowContext

BUG=skia:

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

Change-Id: Ib42dbe70e868c83bdf06e370388e0cc7639a0992
Reviewed-on: https://skia-review.googlesource.com/4066
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

8 years agoFix bounds updates in vulkan discards
Greg Daniel [Fri, 28 Oct 2016 19:07:16 +0000 (15:07 -0400)]
Fix bounds updates in vulkan discards

BUG=skia:

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

Change-Id: If78abf6b5ff4e7d97768313dcf4f2a90a1020420
Reviewed-on: https://skia-review.googlesource.com/4147
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

8 years agoremove xfermode from public api
Mike Reed [Fri, 28 Oct 2016 19:42:34 +0000 (15:42 -0400)]
remove xfermode from public api

BUG=skia:

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

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I19cd056f2af778f10e8c6c2b7b2735593b43dbac
Reviewed-on: https://skia-review.googlesource.com/4020
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>

8 years agoRemove unneeded SkColorSpace constructor
Matt Sarett [Fri, 28 Oct 2016 16:51:08 +0000 (12:51 -0400)]
Remove unneeded SkColorSpace constructor
TBR=reed@google.com
BUG=skia:

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

Change-Id: Ib1c477b6b56a100ea449ffa20bdf18041c044a78
Reviewed-on: https://skia-review.googlesource.com/4140
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agoAdd tests for ColorSpacePrimaries to XYZD50
Matt Sarett [Fri, 28 Oct 2016 18:45:03 +0000 (14:45 -0400)]
Add tests for ColorSpacePrimaries to XYZD50

BUG=skia:

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

Change-Id: I6725b3ae61b0db55b09a025e4cccd22046e6f056
Reviewed-on: https://skia-review.googlesource.com/4146
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agoFall back on stencil clip when SW mask fails to allocate
csmartdalton [Fri, 28 Oct 2016 19:01:10 +0000 (12:01 -0700)]
Fall back on stencil clip when SW mask fails to allocate

When generating a SW clip mask, we didn't used to verify that the
pixels had been successfully allocated. This would obviously crash
when the allocation was not successful. This change checks the
allocation first, and falls back on a stencil clip when it doesn't
succeed.

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

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

8 years agoMake GrDrawContext be GrRenderTargetProxy-backed
Robert Phillips [Fri, 28 Oct 2016 17:25:24 +0000 (13:25 -0400)]
Make GrDrawContext be GrRenderTargetProxy-backed

This is split out of https://codereview.chromium.org/2215323003/ (Start using RenderTargetProxy (omnibus))

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

CQ_INCLUDE_TRYBOTS=master.client.skia.android:Test-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android-Trybot

Change-Id: I1a47f19ed1ac0c249e6ccac8db74095d7f456db4
Reviewed-on: https://skia-review.googlesource.com/3841
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
8 years agoAdd GN config for Mac SampleApp
Jim Van Verth [Fri, 28 Oct 2016 17:35:50 +0000 (13:35 -0400)]
Add GN config for Mac SampleApp

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

Change-Id: I67e4456c8ccdb5413e86c442b759f6dff4de651b
Reviewed-on: https://skia-review.googlesource.com/4077
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
8 years agoDocumentation: SkBitmap->SkImage
Hal Canary [Fri, 28 Oct 2016 16:18:32 +0000 (12:18 -0400)]
Documentation: SkBitmap->SkImage

NOTRY=true
Change-Id: Ieb99a447b4198b1ba5d1bc17668b307d82d62be5
Reviewed-on: https://skia-review.googlesource.com/4121
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

8 years agoReduced skslc memory consumption
ethannicholas [Fri, 28 Oct 2016 16:02:46 +0000 (09:02 -0700)]
Reduced skslc memory consumption

The big change here is smarter generic type handling which allows us to
keep far fewer entries in the core symboltable. This also comments out
a number of OpenGL builtin functions which Skia does not use and is
unlikely to in the future.
BUG=655673
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2442063002

Committed: https://skia.googlesource.com/skia/+/cffaa70896fa5bc6c7bf98abbaafb1a755b49762
Review-Url: https://codereview.chromium.org/2442063002

8 years agoMake addTexture/BufferAccess on GrProcessor non-virtual
Brian Salomon [Fri, 28 Oct 2016 15:25:52 +0000 (11:25 -0400)]
Make addTexture/BufferAccess on GrProcessor non-virtual

Perhaps these needed to be virtual in the past, but no longer.

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

Change-Id: I1ba713a1da713f2c7955c0cfc9931917f2719a63
Reviewed-on: https://skia-review.googlesource.com/4120
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

8 years agoAdd SampleApp support to GN (win and linux), take two.
Jim Van Verth [Fri, 28 Oct 2016 14:38:08 +0000 (10:38 -0400)]
Add SampleApp support to GN (win and linux), take two.

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

Change-Id: I2b25c3e48992e63d2990c8ac77363eff4ddd926d
Reviewed-on: https://skia-review.googlesource.com/4075
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

8 years agoAdd support for lib_dirs to gn_to_cmake.py.
Ben Wagner [Thu, 27 Oct 2016 22:47:54 +0000 (18:47 -0400)]
Add support for lib_dirs to gn_to_cmake.py.

The vulcan code uses lib_dirs to point to the libs in the SDK.

Change-Id: I4a1a4235b8534f3f937640b10f9758b0c70434c9
Reviewed-on: https://skia-review.googlesource.com/4003
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

8 years agoRevert "Build SkRawCodec in GN"
Leon Scroggins [Fri, 28 Oct 2016 14:09:35 +0000 (14:09 +0000)]
Revert "Build SkRawCodec in GN"

This reverts commit 04b1f461aa49c91ffbc484b88b32489efca55bab.

Reason for revert: Breaking build bots

TBR=mtklein@chromium.org,mtklein@google.com,scroggo@google.com,adaubert@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I26c71116ad19b3c494fd632fcc6309bc2ae0d828
Reviewed-on: https://skia-review.googlesource.com/4100
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
8 years agoBuild SkRawCodec in GN
Leon Scroggins III [Fri, 28 Oct 2016 13:17:20 +0000 (09:17 -0400)]
Build SkRawCodec in GN

Add BUILD.gn files for dng_sdk and piex and updated BUILD.gn to
build SkRawCodec.

We stopped testing raw images when we switched to GN, so this will
bring back our testing.

Leave SkRawCodec disabled on Windows, where we've had problems in the
past.

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

Change-Id: I956949506200b766a2f7efb18e0486f3a2f93a1c
Reviewed-on: https://skia-review.googlesource.com/4063
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoBlacklist blend equation advanced on Adreno 5xx devices
Greg Daniel [Thu, 27 Oct 2016 20:55:52 +0000 (16:55 -0400)]
Blacklist blend equation advanced on Adreno 5xx devices

BUG=skia:5900

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

Change-Id: I5ac1b3862b1d76e50cbeb446029f1ae2d922702c
Reviewed-on: https://skia-review.googlesource.com/4068
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

8 years agoRevert "Add SampleApp support to GN-win"
Mike Klein [Thu, 27 Oct 2016 21:34:04 +0000 (21:34 +0000)]
Revert "Add SampleApp support to GN-win"

This reverts commit a70558e2bb161838b04bdddb5fdac7293ec33f7c.

Reason for revert:

cmd /c c:\b\s\w\ireutzd9\t\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97/win_sdk/bin/SetEnv.cmd /x86 && c:\b\s\w\ireutzd9\t\depot_tools\win_toolchain\vs_files\95ddda401ec5678f15eeed01d2bee08fcbc5ee97/VC/bin/amd64_x86/cl.exe /nologo /showIncludes /FC @obj/samplecode/SampleApp.SampleApp.obj.rsp /c ../../../samplecode/SampleApp.cpp /Foobj/samplecode/SampleApp.SampleApp.obj /Fd"obj/SampleApp_c.pdb"
c:\b\work\skia\include\views\skoswindow_win.h(18): fatal error C1083: Cannot open include file: 'EGL/egl.h': No such file or directory

I think this is restricted to just 32-bit Windows builds?

Original change's description:
> Add SampleApp support to GN-win
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4062
>
> Change-Id: I88b10748b49adbf57f247b51eec1b9ca86377800
> Reviewed-on: https://skia-review.googlesource.com/4062
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
>

TBR=mtklein@chromium.org,mtklein@google.com,jvanverth@google.com,caryclark@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Iba39bab6d3a07a437a86343599e51485d8f4ce93
Reviewed-on: https://skia-review.googlesource.com/4070
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoUpload an image that demonstrates issue 5883
scroggo [Thu, 27 Oct 2016 21:23:00 +0000 (14:23 -0700)]
Upload an image that demonstrates issue 5883

This GIF is missing a color table. We should draw a blank frame. This
was fixed in crrev.com/2450943002 (DIFFERENT ISSUE). This image will
test this case.

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

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

8 years agoShared image generator
fmalita [Thu, 27 Oct 2016 21:22:41 +0000 (14:22 -0700)]
Shared image generator

Introduce a new ref counted class (SharedGenerator), to facilitate
SkImageGenerator sharing among multiple cacherators.

Plumbing only for now, no actual sharing.

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

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

8 years agoAdd SampleApp support to GN-win
Jim Van Verth [Thu, 27 Oct 2016 20:17:06 +0000 (16:17 -0400)]
Add SampleApp support to GN-win

BUG=skia:

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

Change-Id: I88b10748b49adbf57f247b51eec1b9ca86377800
Reviewed-on: https://skia-review.googlesource.com/4062
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

8 years agoRename renderTargetContextPriv to priv, and some more leftover DCs
Brian Osman [Thu, 27 Oct 2016 19:13:22 +0000 (15:13 -0400)]
Rename renderTargetContextPriv to priv, and some more leftover DCs

API change is for non-public API.

TBR=bsalomon@google.com

BUG=skia:

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

Change-Id: I5011d753c3c6d1145ff242eab6baff2ae0647ba3
Reviewed-on: https://skia-review.googlesource.com/4060
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

8 years agoOnly clamp when we think our math requires it.
Mike Klein [Thu, 27 Oct 2016 15:29:36 +0000 (11:29 -0400)]
Only clamp when we think our math requires it.

If we require our inputs are sound, in-gamut, premul colors (a in [0,1], r,g,b in [0,a]) then we should only need to clamp when the math we perform requires it.  The safety clamps before each store are paranoia.

The main thing this pipeline handles right now that needs clamping is the plus transfermode.
This is either used to blend, where the clamp must come after the coverage lerp, or used via a mode color filter, where we have no choice but to clamp right at the end of the color filer.

This changes how the mode color filter draws with the plus transfermode.  It didn't used to clamp at all.  I think this is a bug fix.

BUG=skia:

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

Change-Id: I3cbaade2127cc88c8782596f45749c4fe4b0e953
Reviewed-on: https://skia-review.googlesource.com/4034
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoRemove SkMovie and giflib
scroggo [Thu, 27 Oct 2016 19:24:43 +0000 (12:24 -0700)]
Remove SkMovie and giflib

SkMovie is not used in any of our tests or by Chromium. It is also not
supported by GN. It is being moved into Android, its only client, so we
can delete it here.

giflib is only used by SkMovie, so stop pulling/building it.

TBR=reed@google.com

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

Change-Id: I28a8155fd59e139bb21ec2295cc22fdced034284
Review-Url: https://codereview.chromium.org/2449213004

8 years agoRename GrDrawContext to GrRenderTargetContext
Brian Osman [Thu, 27 Oct 2016 18:47:55 +0000 (14:47 -0400)]
Rename GrDrawContext to GrRenderTargetContext

This is in preparation for GrTextureContext and GrSurfaceContext

BUG=skia:

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

Change-Id: Ie58c93052e68f3f1f5fe8d15d63760de274a6fbd
Reviewed-on: https://skia-review.googlesource.com/4030
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
8 years agoCreate .gni files for samples, tests, gms, and benches.
Mike Klein [Thu, 27 Oct 2016 16:21:40 +0000 (12:21 -0400)]
Create .gni files for samples, tests, gms, and benches.

Calling Python to find all these files is convenient, but error-prone.  It's easy to forget to call GN again when adding a file.  Each of these calls to Python also adds ~50ms to the run time of gn gen, which is small but adds up.

On my desktop, gn gen drops from 600ms to 150ms, noticeably faster.

This leaves one call to find.py for generating skia.h for fiddle.  We're not quite sure how to automate that process to happen entirely inside the :skia.h action while maintaining correct dependencies, so I'm leaving it for now.

BUG=skia:

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

Change-Id: Ib9d355b97900f29afebc65311ceef50537e46dda
Reviewed-on: https://skia-review.googlesource.com/4036
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoImprove comments describing common sRGB curves
Matt Sarett [Thu, 27 Oct 2016 16:44:18 +0000 (12:44 -0400)]
Improve comments describing common sRGB curves

BUG=skia:5897

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

Change-Id: Id1253cc9b960aad47bc0f9b7e40f10830d46d98d
Reviewed-on: https://skia-review.googlesource.com/4037
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agoRestore the ability to not build vulkan when VULKAN_SDK is set
Brian Salomon [Thu, 27 Oct 2016 17:31:37 +0000 (13:31 -0400)]
Restore the ability to not build vulkan when VULKAN_SDK is set

After https://skia.googlesource.com/skia/+/686bb21f3ed19218a85e94798fe50e240e3fac08 skia_use_vulkan=false stopped working when VULKAN_SDK is set in the environment.

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

Change-Id: I3707c930d041556d1727f43c48eba2cad73349eb
Reviewed-on: https://skia-review.googlesource.com/4038
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoAdded skslc parse recursion limit
ethannicholas [Thu, 27 Oct 2016 17:54:02 +0000 (10:54 -0700)]
Added skslc parse recursion limit

The fuzzer discovered that a long chain of left-parentheses would cause a stack overflow due to excessive recursion. While it is not in general possible to guarantee that we do not exceed stack limits (because the system can be configured with an arbitrarily small stack), setting a reasonable recursion limit will at least keep the fuzzer from continually finding more "bugs" like this.

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

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

8 years agochmod -x *.cpp *.h
Hal Canary [Thu, 27 Oct 2016 15:44:20 +0000 (11:44 -0400)]
chmod -x *.cpp *.h

Change-Id: I5b37499505e26e0837921292c1aea0056e4d5ecd
Reviewed-on: https://skia-review.googlesource.com/4035
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

8 years agoRemove SkAutoTUnref and SkAutoTDelete from public includes.
bungeman [Thu, 27 Oct 2016 16:30:08 +0000 (09:30 -0700)]
Remove SkAutoTUnref and SkAutoTDelete from public includes.

This also makes the required changed to src, tests, and tools. The few
public APIs modified by this change appear to be unused outside of Skia.

Removing these from the public API makes it easier to ensure users are
no longer using them.

This also updates GrGpu::wrapBackendXXX and the
::onWrapBackendXXX methods to clarify ownership.

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

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

8 years agoRevert of Reduced skslc memory consumption (patchset #3 id:50001 of https://coderevie...
benjaminwagner [Thu, 27 Oct 2016 16:08:06 +0000 (09:08 -0700)]
Revert of Reduced skslc memory consumption (patchset #3 id:50001 of https://codereview.chromium.org/2442063002/ )

Reason for revert:
texelFetch removed, but is used in some shaders.

Original issue's description:
> Reduced skslc memory consumption
>
> The big change here is smarter generic type handling which allows us to
> keep far fewer entries in the core symboltable. This also comments out
> a number of OpenGL builtin functions which Skia does not use and is
> unlikely to in the future.
> BUG=655673
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2442063002
>
> Committed: https://skia.googlesource.com/skia/+/cffaa70896fa5bc6c7bf98abbaafb1a755b49762

TBR=reed@google.com,ethannicholas@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=655673

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

8 years agoDo not skip fractional y for SkAAClip
liyuqian [Thu, 27 Oct 2016 15:45:32 +0000 (08:45 -0700)]
Do not skip fractional y for SkAAClip

This should fix the following bugs:
https://bugs.chromium.org/p/chromium/issues/detail?id=659883
https://bugs.chromium.org/p/chromium/issues/detail?id=659972

BUG=chromium:659883,chromium:659972
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2452393002

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

8 years agoRevert "Always use a color table with 256 colors"
Leon Scroggins III [Thu, 27 Oct 2016 15:16:11 +0000 (11:16 -0400)]
Revert "Always use a color table with 256 colors"

This reverts commit 0057ac11fccc82bc5b0c1bb0aefe838cc04efd13.

This was a speculative fix. Now that a proper fix has been introduced
(crrev.com/2450943002) we shouldn't need this one.

BUG=skia:5883

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

Change-Id: Ie7aae4fd18dac21b240085c3b5c4f3d46511cd75
Reviewed-on: https://skia-review.googlesource.com/4033
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
8 years agoDefault vulkan sdk to VULKAN_SDK env var in GN
Greg Daniel [Thu, 27 Oct 2016 14:48:48 +0000 (10:48 -0400)]
Default vulkan sdk to VULKAN_SDK env var in GN

BUG=skia:

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

Change-Id: I48767cbbe7e0cd306e448bdc983c853f66121e1b
Reviewed-on: https://skia-review.googlesource.com/4032
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>

8 years agoFix decoding GIF to 565
scroggo [Thu, 27 Oct 2016 15:29:13 +0000 (08:29 -0700)]
Fix decoding GIF to 565

565 cannot take the !writeTransparentPixels path, so disable it for
cases where we might have to take that path.

This only affects frames beyond the first. If the first frame has
a transparent pixel, it will be marked as non-opaque, so we cannot
decode to 565 anyway.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2441833002

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

8 years agoReduced skslc memory consumption
ethannicholas [Thu, 27 Oct 2016 15:15:50 +0000 (08:15 -0700)]
Reduced skslc memory consumption

The big change here is smarter generic type handling which allows us to
keep far fewer entries in the core symboltable. This also comments out
a number of OpenGL builtin functions which Skia does not use and is
unlikely to in the future.
BUG=655673
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2442063002

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

8 years agoAvoid separate allocation of SkImageCacherator
fmalita [Thu, 27 Oct 2016 15:15:44 +0000 (08:15 -0700)]
Avoid separate allocation of SkImageCacherator

Embed directly in SkImage_Generator, and add a helper to handle param
validation.

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

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

8 years agorecipes: Fix missing patch_set property
borenet [Thu, 27 Oct 2016 15:00:14 +0000 (08:00 -0700)]
recipes: Fix missing patch_set property

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

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

8 years agoFix recipes for Gerrit property rename
borenet [Thu, 27 Oct 2016 13:35:51 +0000 (06:35 -0700)]
Fix recipes for Gerrit property rename

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

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

8 years agoopts.gypi -> opts.gni
Mike Klein [Wed, 26 Oct 2016 22:37:24 +0000 (18:37 -0400)]
opts.gypi -> opts.gni

BUG=skia:

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

Change-Id: Ib687bd7ce87ddbbc60f95e7a30e20575971e5c59
Reviewed-on: https://skia-review.googlesource.com/4026
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoSkTInsertionSort tweak.
Ben Wagner [Wed, 26 Oct 2016 21:48:51 +0000 (17:48 -0400)]
SkTInsertionSort tweak.

'Unoptomized' insertion sort swaps the 'insert' value multiple times
inside the main loop before it finds its place. However, this has the
advantage that if the 'insert' element is already not less than any
element in the sorted partition no moves are made at all.

The 'optimized' insertion sort present before this CL moves the 'insert'
value into a temporary (creating a 'hole') and then moves already sorted
elements until the 'insert' element finds its place. This has the
disadvantage of always moving the 'insert' element out of the list and
then re-inserting it, even if this was unnecessary.

This CL further optimizes the insertion sort by moving the first test of
the main loop to before moving the 'insert' element into the temporary.
This is expected to increase the code size by a few instructions but
avoids the useless non-moves. There will actually be one fewer
comparison per element comsidered (the initial 'left < hole' predicate
is always true when entering the inner loop).

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

Change-Id: I33158b7781e4dbec1f1b76c0bf43ebe169075733
Reviewed-on: https://skia-review.googlesource.com/4022
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>

8 years agogpu.gypi -> gpu.gni
Mike Klein [Wed, 26 Oct 2016 21:54:36 +0000 (17:54 -0400)]
gpu.gypi -> gpu.gni

BUG=skia:

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

Change-Id: I55a6d58458500ccfb009382eab4c90a6e4217b2c
Reviewed-on: https://skia-review.googlesource.com/4025
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
8 years agoSpeculative fix for flaky webp encode/decode on Nexus 5
Matt Sarett [Wed, 26 Oct 2016 21:39:54 +0000 (17:39 -0400)]
Speculative fix for flaky webp encode/decode on Nexus 5

I'm not really expecting this to work anymore...

The docs don't say anything about the rgb pointer needing
to stay valid, and it looks like we are done with it
after the call to import.

Still, worth a try I think.

BUG=skia:5876

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

Change-Id: I6e65ef96a2b661b01eb92bedab0acd73ed4f6218
Reviewed-on: https://skia-review.googlesource.com/4024
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

8 years agogypi -> gni: core, effects, android framework defines
Mike Klein [Wed, 26 Oct 2016 21:19:03 +0000 (17:19 -0400)]
gypi -> gni: core, effects, android framework defines

BUG=skia:

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

Change-Id: I29a26c1716a319156a34a64999756ed7dba1e603
Reviewed-on: https://skia-review.googlesource.com/4023
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoSkRasterPipelineBlitter simplifications
Mike Klein [Wed, 26 Oct 2016 19:32:26 +0000 (15:32 -0400)]
SkRasterPipelineBlitter simplifications

The main idea here is to simplify, mainly to reduce the number of SkRasterPipeline objects the blitter holds.

  - Use SkBlendMode instead of SkXfermode, just store SkBlendMode.
  - Fuse the shader and color filter together into one SkRasterPipeline
    during blitter creation.
  - I noticed all calls to append_load_d() and append_store() now have the same ctx argument, so I folded that through.

I'll be following up with more of this sort of refactoring... I think I can fold everything into a single SkRasterPipeline during blitter creation now, but I'll want to make sure I've got my ducks in a row for how that works with pipeline strength reduction (like skipping dst loads when drawing in Src mode).

BUG=skia:

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

Change-Id: I88252ab8ad16f102c71bad871f8b6aec2fc1f226
Reviewed-on: https://skia-review.googlesource.com/4021
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoWrite transparent pixels more often (SkGifCodec)
scroggo [Wed, 26 Oct 2016 20:48:03 +0000 (13:48 -0700)]
Write transparent pixels more often (SkGifCodec)

Writing transparent pixels is faster than the alternative, and we can
skip clearing the frame to transparent. We'll still clear if the image
is incomplete.

I ran

  ./out/Release/nanobench --images <images> --samples 100 --sourceType image --simpleCodec -v

over the GIFs we have on our bots, and found an average ~13% speedup.
Raw data is on sheet 2 of
https://docs.google.com/spreadsheets/d/19V-t9BfbFw5eiwBTKA1qOBkZbchjlTC5EIz6HFy-6RI/
(the sheet is named WriteTransparentPixels).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2436183002

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

8 years agoTest CL
Ravi Mistry [Wed, 26 Oct 2016 20:30:45 +0000 (16:30 -0400)]
Test CL

NOTRY=true
BUG=skia:

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

Change-Id: I06c5b71415c1f08d0c20c6bacca4708847393443
Reviewed-on: https://skia-review.googlesource.com/3960
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

8 years agoMove when swapping, if possible.
bungeman [Wed, 26 Oct 2016 19:11:28 +0000 (12:11 -0700)]
Move when swapping, if possible.

This change was avoided in the past because vc++ 2013 (12.0)
did not properly create default move constructors and
move assignment operators.

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

TBR=reed
Verbal lgtm

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

8 years agoSplit SkSL and utils apart again into .gni files.
Mike Klein [Wed, 26 Oct 2016 18:17:04 +0000 (14:17 -0400)]
Split SkSL and utils apart again into .gni files.

Also extend GN format presubmit check to .gni files.

BUG=skia:

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

Change-Id: I292f3136437101e3e2c3271e260536ab7a24b192
Reviewed-on: https://skia-review.googlesource.com/3976
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoRemove pdf.gni from source lists. Android translator barfs.
Mike Klein [Wed, 26 Oct 2016 18:09:27 +0000 (14:09 -0400)]
Remove pdf.gni from source lists.  Android translator barfs.

TBR=djsollen@google.com

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

Change-Id: Id3769fc5f0a3b97aa39a664d62095bde1599df6e
Reviewed-on: https://skia-review.googlesource.com/3974
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoConvert SkRasterPipeline loads and stores to indirect.
Mike Klein [Tue, 25 Oct 2016 19:43:46 +0000 (15:43 -0400)]
Convert SkRasterPipeline loads and stores to indirect.

This allows us to change the underlying pointer without rebuilding the pipeline, e.g. when moving the blitter from scanline to scanline.

The extra overhead when not needed is measurable but small, <2%.  We can always add back direct stages later for cases where we know the context pointer will not change.

BUG=skia:

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

Change-Id: I827d7e6e4e67d02dd2802610f898f98c5f36f8cb
Reviewed-on: https://skia-review.googlesource.com/3943
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoAdd recipe support for Pixel and Pixel XL.
Ben Wagner [Wed, 26 Oct 2016 17:18:58 +0000 (13:18 -0400)]
Add recipe support for Pixel and Pixel XL.

BUG=skia:

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

Change-Id: I782ef741838860bfeace13c335f9a82403047220
Reviewed-on: https://skia-review.googlesource.com/3964
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

8 years agoStart inverting GN reading .gypis to GYP reading .gnis.
Mike Klein [Wed, 26 Oct 2016 17:32:07 +0000 (13:32 -0400)]
Start inverting GN reading .gypis to GYP reading .gnis.

This canaries the idea by converting gyp/pdf.gypi to gn/pdf.gni.
If this lands and rolls quietly, I'll flesh out the rest.

BUG=skia:

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

Change-Id: Iecaf1ccce7891679904c585946272bfb25eea299
Reviewed-on: https://skia-review.googlesource.com/3972
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoCreate GrTextureOpList to support deferred copy batches for textures
Brian Osman [Wed, 26 Oct 2016 16:02:18 +0000 (12:02 -0400)]
Create GrTextureOpList to support deferred copy batches for textures

BUG=skia:

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

Change-Id: I63b926f63294795f999a130c0ceead87fbaf978d
Reviewed-on: https://skia-review.googlesource.com/3967
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

8 years agoAdd disableStencil method to GrGLGpu
csmartdalton [Wed, 26 Oct 2016 17:13:46 +0000 (10:13 -0700)]
Add disableStencil method to GrGLGpu

Most the calls to flushStencil were just trying to disable it. This
change cleans up that code so it can just call "disableStencil"
instead of having to muck with GrStencilSettings. It should also make
those calls slightly faster.

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

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