platform/upstream/libSkiaSharp.git
7 years agoMake GrSwizzle::GrSwizzle() constexpr
Brian Salomon [Fri, 18 Nov 2016 20:08:06 +0000 (15:08 -0500)]
Make GrSwizzle::GrSwizzle() constexpr

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

Change-Id: I862b895fd92b9b6938627af7b21022564b535e9b
Reviewed-on: https://skia-review.googlesource.com/5060
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoRemove unnecessary attribute and varying type modifiers
Brian Salomon [Fri, 18 Nov 2016 20:35:33 +0000 (15:35 -0500)]
Remove unnecessary attribute and varying type modifiers

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

Change-Id: Ic9fefe09221d5e367b5aa5dd0084fc7d6631998c
Reviewed-on: https://skia-review.googlesource.com/5007
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agoBuild fiddle and public_headers_warnings_check only when skia_enable_tools.
Mike Klein [Fri, 18 Nov 2016 14:35:28 +0000 (09:35 -0500)]
Build fiddle and public_headers_warnings_check only when skia_enable_tools.

This leaves libskia as the only thing we build when tools are not enabled (other GN environments like Fuchsia, Flutter, Chrome, or for people using ours and actively disabling tools).

BUG=skia:

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

Change-Id: I5acad66c1b068ef81c1a7e292c3524a0b1497b66
Reviewed-on: https://skia-review.googlesource.com/4993
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoVS SLN script: Automatically determine which folder to use/copy
Brian Osman [Fri, 18 Nov 2016 18:38:13 +0000 (13:38 -0500)]
VS SLN script: Automatically determine which folder to use/copy

BUG=skia:

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

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

7 years agoTurn off /arch:AVX[2] on Windows builds.
Mike Klein [Fri, 18 Nov 2016 17:55:21 +0000 (12:55 -0500)]
Turn off /arch:AVX[2] on Windows builds.

This canaries a similar change Chrome may need.

BUG=chromium:666707

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

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

7 years agoupdate G3 build after crrev.com/2500113004
Mike Klein [Fri, 18 Nov 2016 16:39:34 +0000 (11:39 -0500)]
update G3 build after crrev.com/2500113004

crrev.com/2500113004 removed SkBitmapProcState_opts_arm.cpp.
ARM targets now use SkBitmapProcState_opts_none.cpp, so stop filtering it out.

(See the gn/opts.gni change.)

BUG=skia:

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

Change-Id: Ib46ac5d9e908e8043aaec1f462672d9f9710431d
Reviewed-on: https://skia-review.googlesource.com/4996
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
7 years agoMake GrBufferAccess a nested class of GrProcessor
Brian Salomon [Fri, 18 Nov 2016 16:39:15 +0000 (11:39 -0500)]
Make GrBufferAccess a nested class of GrProcessor

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

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

7 years agoAdd test for QuickFDot6Div
Yuqian Li [Fri, 18 Nov 2016 15:18:15 +0000 (10:18 -0500)]
Add test for QuickFDot6Div

This test will catch our (1 << 10) bug (which should be 1 << 9)

BUG=skia:

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

Change-Id: I25b607d1535a647284cee3b304a6f567f389e7f6
Reviewed-on: https://skia-review.googlesource.com/4986
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agofixed iOS build failure
Ethan Nicholas [Fri, 18 Nov 2016 16:00:36 +0000 (11:00 -0500)]
fixed iOS build failure

BUG=skia:

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

Change-Id: I5c3727c5dc0e30ae88e1879e12547bdb11db97ee
Reviewed-on: https://skia-review.googlesource.com/4997
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

7 years agoswitched skslc from std::string to SkString
Ethan Nicholas [Thu, 17 Nov 2016 21:13:37 +0000 (16:13 -0500)]
switched skslc from std::string to SkString

BUG=skia:

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

Change-Id: I15e24963b09b719a2c07da67745114f5ac66cee8
Reviewed-on: https://skia-review.googlesource.com/4977
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

7 years agoAdd handling for instantiate failure up the call stack
Robert Phillips [Fri, 18 Nov 2016 13:44:13 +0000 (08:44 -0500)]
Add handling for instantiate failure up the call stack

The following two CLs were created via grep:
https://skia-review.googlesource.com/c/4929/ (Guard against instantiate & accessRenderTarget failures)
https://skia-review.googlesource.com/c/4961/ (Remove accessRenderTarget call in SkGpuDevice ctor)

This CL was created by running through all the tests and having instantiate fail so it catches up-stack failures to handle a null return.

BUG=665681,665500,665621

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

Change-Id: I6611eec8d36679123eef140538ee2526fb18628f
Reviewed-on: https://skia-review.googlesource.com/4991
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years ago[nobuildbot] Explicitly name all jobs
Eric Boren [Fri, 18 Nov 2016 13:24:21 +0000 (08:24 -0500)]
[nobuildbot] Explicitly name all jobs

This makes it clearer which jobs we're running when looking at
gen_tasks.go.  Doesn't actually change any behavior.

BUG=skia:

Change-Id: Ie4fe639552bd673d3a605e03782a68b5e013cf1d
Reviewed-on: https://skia-review.googlesource.com/4990
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years ago[nobuildbot] Remaining Android devices
Eric Boren [Thu, 17 Nov 2016 16:33:27 +0000 (11:33 -0500)]
[nobuildbot] Remaining Android devices

BUG=skia:

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

Change-Id: I4e38d25c37e6a336f90e46d2260fcbb4f9899901
Reviewed-on: https://skia-review.googlesource.com/4933
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoUse SkFixedAllocator in SkLinearPipeline and remove the embedding of
Herb Derby [Fri, 18 Nov 2016 02:12:36 +0000 (21:12 -0500)]
Use SkFixedAllocator in SkLinearPipeline and remove the embedding of
the entire pipeline.

Adjust SkFixedAlloc to allow nesting of allocation.

BUG=skia:

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

Change-Id: Ieeb1b5deaae004b67cee933af9bc19bbfd5a7687
Reviewed-on: https://skia-review.googlesource.com/4987
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoPort convolve functions to SkOpts
xiangze.zhang [Fri, 18 Nov 2016 02:39:38 +0000 (18:39 -0800)]
Port convolve functions to SkOpts

This patch moves the C++/SSE2/NEON implementations of convolve functions
into the same place and uses SkOpts framework.
Also some indentation fix.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2500113004
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/2500113004

7 years agoMark this file as executable
Adam Barth [Thu, 17 Nov 2016 21:46:49 +0000 (13:46 -0800)]
Mark this file as executable

The executable bit is needed in the Fuchsia build in order to execute this file
during the build.

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

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

7 years agoperspective matrix
Mike Klein [Thu, 17 Nov 2016 21:27:10 +0000 (16:27 -0500)]
perspective matrix

Nothing too tricky.  The path of least resistance was to keep the matrix row-major when in perspective.  It should make no difference in the end.

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

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

7 years agorepeat tiling
Mike Klein [Thu, 17 Nov 2016 20:42:22 +0000 (15:42 -0500)]
repeat tiling

Does the note in repeat() look right?

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

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

7 years agoReplace my confusion with a pointer to the explanation.
Mike Klein [Thu, 17 Nov 2016 20:56:24 +0000 (15:56 -0500)]
Replace my confusion with a pointer to the explanation.

NOTRY=true

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

Change-Id: I9f1686519ea1dd5b50dce2e6ecef22741468e9d6
Reviewed-on: https://skia-review.googlesource.com/4982
Reviewed-by: Herb Derby <herb@google.com>
7 years agoIn VS SLN fixup script, don't erase old files
Brian Osman [Thu, 17 Nov 2016 20:50:36 +0000 (15:50 -0500)]
In VS SLN fixup script, don't erase old files

First, this avoids removing .suo files (solution options), which is where
things like debugging command line arguments live. This lets those
settings persist when re-generating.

Second, it lets you run the script while you have the solution open.
(Writing new files works okay, but removing the existing ones was
triggering a sharing violation).

BUG=skia:

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

Change-Id: Ib40494caf152dd638f9eee7635639399e8099421
Reviewed-on: https://skia-review.googlesource.com/4981
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoFix the quickSkFDot6Div range check
Yuqian Li [Thu, 17 Nov 2016 19:31:53 +0000 (14:31 -0500)]
Fix the quickSkFDot6Div range check

Our previous (1 << 10) limit is based on 2^32 being our maximum value.
However, that's not the case because we have one more sign bit.
Therefore I should make it (1 << 9).

BUG=skia:

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

Change-Id: I38acb627cdb2514d3e4996aef02480b389cf3588
Reviewed-on: https://skia-review.googlesource.com/4973
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoRename GrTextureParams to GrSamplerParams
Brian Salomon [Thu, 17 Nov 2016 20:17:07 +0000 (15:17 -0500)]
Rename GrTextureParams to GrSamplerParams

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

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

7 years agoStrength reduce bilerp to nearest neighbor when the matrix is integer translate.
Mike Klein [Thu, 17 Nov 2016 19:04:22 +0000 (14:04 -0500)]
Strength reduce bilerp to nearest neighbor when the matrix is integer translate.

BUG=skia:

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

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

7 years agoFix computation of texture size for approximately-fit deferred proxies
Robert Phillips [Thu, 17 Nov 2016 19:43:51 +0000 (14:43 -0500)]
Fix computation of texture size for approximately-fit deferred proxies

For approximate-fit deferred proxies asserts were firing when the instantiated size was larger than the pre-computed exact-fit size.

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

Change-Id: I879e16b86ab4d9ef9834163c24ccd6507fe4b94a
Reviewed-on: https://skia-review.googlesource.com/4972
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoFix double deletion of DescriptorSetLayouts
Jim Van Verth [Thu, 17 Nov 2016 18:30:22 +0000 (13:30 -0500)]
Fix double deletion of DescriptorSetLayouts

When VkPipeline creation fails the PipelineStateBuilder cleans up
afterwards. It was deleting the sampler DescriptorSetLayout when that
is owned by the ResourceProvider.

BUG=skia:

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

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

7 years agoUse SkSmallAllocator for Blender stage.
Herb Derby [Thu, 17 Nov 2016 19:25:30 +0000 (14:25 -0500)]
Use SkSmallAllocator for Blender stage.

BUG=skia:

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

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

7 years agoInitialize all values we load.
Mike Klein [Thu, 17 Nov 2016 19:28:11 +0000 (14:28 -0500)]
Initialize all values we load.

Let's see if this can convince MSAN that we're safe.

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot

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

Change-Id: Ie90124068bc412bee94a4f8e87fae32e4d66e709
Reviewed-on: https://skia-review.googlesource.com/4971
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoBe careful about types in SkNx_neon.h.
Mike Klein [Thu, 17 Nov 2016 19:33:11 +0000 (14:33 -0500)]
Be careful about types in SkNx_neon.h.

The Google3 Android ARM build is still using GCC, which isn't so loosey-goosey as Clang about bit-casting back and forth between int32x4_t and uint32x4_t.

BUG=skia:

Change-Id: I0d54f6859b8e03be4936c51bbaa1967db4261bd4
Reviewed-on: https://skia-review.googlesource.com/4974
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoIn GrProcessor::TextureSampler drop the "get", it's cleaner
Brian Salomon [Thu, 17 Nov 2016 17:48:40 +0000 (12:48 -0500)]
In GrProcessor::TextureSampler drop the "get", it's cleaner

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

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

7 years agoAlways use GL_HALF_FLOAT_OES on ANGLE, even with ES3.
Brian Osman [Thu, 17 Nov 2016 18:27:31 +0000 (13:27 -0500)]
Always use GL_HALF_FLOAT_OES on ANGLE, even with ES3.

In the past, ANGLE always used GL_HALF_FLOAT. I filed a bug about that,
and they switched to HALF_FLOAT_OES. However, ES3 has direct support for
HALF_FLOAT, so we expect that as the format for read pixels.

The better solution would be to remember and return the value we get
back from IMPLEMENTATION_COLOR_READ_TYPE, but there are subtleties that
create additional bugs when we do that. In particular:

If trying to read Alpha8 from RGBA, the current sequence is:

1. readPixelsSupported asks for the format to use. getExternalFormat
   switches out the format (assuming we're using GL_RED). This creates
   a format/type pair that fails the ES3.2 rules (16.1.2), so we ask
   the driver for the secondary format, which matches the one that we
   expect (from our config table).
2. Then we *actually* do the readPixels, and here we just call
   getReadPixelsFormat, which does the remapping, but skips the follow
   up checks in readPixelsSupported. So we end up passing a format/type
   pair that our code in readPixelsSupported thinks is illegal (and
   which is neither the pair that our config table stores, *nor* the
   pair returned by the implementation).

A straightforward solution of the original problem is to notice that
we had to ask the implementation (because the values are filled in),
so we should trust those and not the ones in the config table. But then
we miss out on the chance to overwrite the values for the alpha only
from RGBA case. Sigh.

BUG=skia:

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

Change-Id: Icb0c151c9f07ffc178ed3a597fa8ab0ed3c6cb94
Reviewed-on: https://skia-review.googlesource.com/4963
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoSupport SkImageShader in SkRasterPipeline blitter
Mike Klein [Thu, 17 Nov 2016 17:39:09 +0000 (12:39 -0500)]
Support SkImageShader in SkRasterPipeline blitter

First of many CLs, I'm sure.

This handles 8888 or sRGB sources with an affine matrix, clamp/clamp tiling, and nearest-neighbor sampling only.

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

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

7 years agoRemove accessRenderTarget call in SkGpuDevice ctor
Robert Phillips [Thu, 17 Nov 2016 17:45:04 +0000 (12:45 -0500)]
Remove accessRenderTarget call in SkGpuDevice ctor

This is a follow up to https://skia-review.googlesource.com/c/4929/ (Guard against instantiate & accessRenderTarget failures).

Rather than guard this call to accessRenderTarget I would prefer to remove it.

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

BUG=665681,665500,665621

Change-Id: I2c9ec245491d9059de892b2e6a7d4a4de4accdfd
Reviewed-on: https://skia-review.googlesource.com/4961
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRemove unnecessary TextureSampler comparison in GrTextureDomainEffect.
Brian Salomon [Thu, 17 Nov 2016 17:47:06 +0000 (12:47 -0500)]
Remove unnecessary TextureSampler comparison in GrTextureDomainEffect.

The base class already performs this comparison.

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

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

7 years agoUse SkFixedMul instead of SkFixedMul_lowprec
Yuqian Li [Thu, 17 Nov 2016 14:23:26 +0000 (09:23 -0500)]
Use SkFixedMul instead of SkFixedMul_lowprec

It seems that SkFixedMul_lowprec doesn't have too much performance gain (maybe
1%). But its precision loss is siginificant. No serious issues have been found
in convex cases, but things get much trickier for concave shapes. I'm removing
it now to improve the stability and reliability of our algorithm, which may
potentially benefit our Chrome landing. (Even if we do not remove
SkFixedMul_lowprec now, we eventually will remove it when we land concave AAA
code.)

BUG=skia:

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

Change-Id: Iae5739a3780bb77ce6237888eee51a502fea5cf2
Reviewed-on: https://skia-review.googlesource.com/4926
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoGuard against instantiate & accessRenderTarget failures
Robert Phillips [Thu, 17 Nov 2016 15:22:48 +0000 (10:22 -0500)]
Guard against instantiate & accessRenderTarget failures

Chrome's fuzzer have reminded me that, since we are deferring allocation, instantiate and accessRenderTarget can now fail further down the call stack.

This should probably be cherry picked back to M56.

BUG=665681,665500,665621

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

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

7 years agoPlumb filter quality into SkShader::appendStages().
Mike Klein [Thu, 17 Nov 2016 15:47:39 +0000 (10:47 -0500)]
Plumb filter quality into SkShader::appendStages().

We of course need this to know whether or not to bilerp.

TBR=herb@google.com

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

Change-Id: I5fe6d93c1d36d0d53f566f722960fcafb0d8bc3c
Reviewed-on: https://skia-review.googlesource.com/4932
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoUpdate Skia milestone to 57
hcm@google.com [Thu, 17 Nov 2016 14:31:42 +0000 (09:31 -0500)]
Update Skia milestone to 57

Milestone that we typically update, but note that change from 55->56 was missed, will cherry pick to branch.
This change gets current file caught up to show working milestone after branch.

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

Change-Id: If10e0db2d4acc908f5da7c4e9d30497deef6a2ff
Reviewed-on: https://skia-review.googlesource.com/4927
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>

7 years agoRename GrTextureAccess to GrProcessor::TextureSampler.
Brian Salomon [Thu, 17 Nov 2016 16:38:22 +0000 (11:38 -0500)]
Rename GrTextureAccess to GrProcessor::TextureSampler.

Renames vars and methods that used the work "access" to refer to this type.

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

Change-Id: Ibcf488fbd445c5119fc13d190544cd98981bdbee
Reviewed-on: https://skia-review.googlesource.com/4931
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agofix fuzzer crash
Cary Clark [Thu, 17 Nov 2016 13:47:37 +0000 (08:47 -0500)]
fix fuzzer crash

Fail if data is
inconsistent.

R=kjlubick@google.com
BUG=skia:

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

Change-Id: Ie3f65c80c0d59968b1e3fc8bc91839bedb2e3da3
Reviewed-on: https://skia-review.googlesource.com/4923
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
7 years agoCopy over git_utils from common and add GitLocalConfig
Ravi Mistry [Thu, 17 Nov 2016 13:13:51 +0000 (08:13 -0500)]
Copy over git_utils from common and add GitLocalConfig

BUG=skia:5979

# Already ran tryjobs in https://skia-review.googlesource.com/c/4897/11
NOTRY=true
NOTREECHECKS=true
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4897

Change-Id: Iee061101b69b4d1cfb0e640785a19e42c6017ef8
Reviewed-on: https://skia-review.googlesource.com/4897
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
7 years agoDisable the sources assignment filter for platform specific files.
Chinmay Garde [Wed, 16 Nov 2016 23:04:12 +0000 (15:04 -0800)]
Disable the sources assignment filter for platform specific files.

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

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

7 years ago[nobuildbot] More Android bots
Eric Boren [Wed, 16 Nov 2016 20:55:06 +0000 (15:55 -0500)]
[nobuildbot] More Android bots

- GalaxyS7
- NVIDIA_Shield
- Nexus10
- Nexus7
- Nexus9

BUG=skia:

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

Change-Id: Ie4fb27085fe154ddf15de4774de9932cde28e842
Reviewed-on: https://skia-review.googlesource.com/4915
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoDon't build :public_headers_warnings_check on NoGPU builds.
Mike Klein [Wed, 16 Nov 2016 21:00:46 +0000 (16:00 -0500)]
Don't build :public_headers_warnings_check on NoGPU builds.

skia.h includes GPU headers.  No real point in getting fancy here... if there are no unused parameters in all headers, there are no unused parameters in the subset of non-GPU headers.

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

Change-Id: Iaaea405633aabcc82e40cd4b1a2286aadd5cea17
Reviewed-on: https://skia-review.googlesource.com/4916
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoUse SkSmallAllocator for SamplerStage and Accessor.
Herb Derby [Wed, 16 Nov 2016 21:23:24 +0000 (16:23 -0500)]
Use SkSmallAllocator for SamplerStage and Accessor.

BUG=skia:

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

Change-Id: Id67d7c1cefa2aadfc706c56dd02d086120f99be3
Reviewed-on: https://skia-review.googlesource.com/4917
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoHook into parametric and table raster pipeline stages
Matt Sarett [Wed, 16 Nov 2016 21:07:15 +0000 (16:07 -0500)]
Hook into parametric and table raster pipeline stages

BUG:664864

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

Change-Id: I909152f1abba60803f0ce2f970eec1f8f1816d78
Reviewed-on: https://skia-review.googlesource.com/4913
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoTurn off all SkDebugfs in SkScan_AAAPath.cpp
Yuqian Li [Wed, 16 Nov 2016 20:34:59 +0000 (15:34 -0500)]
Turn off all SkDebugfs in SkScan_AAAPath.cpp

TBR=mtklein@google.com

BUG=skia:

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

Change-Id: Ia69f2932936e34bc487c9c468bba176de0b2b0df
Reviewed-on: https://skia-review.googlesource.com/4912
Reviewed-by: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoNo SkDebugf for approximate intersection
Yuqian Li [Wed, 16 Nov 2016 20:31:27 +0000 (15:31 -0500)]
No SkDebugf for approximate intersection

TBR=mtklein@google.com

BUG=skia:

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

Change-Id: I23bc298186f93c1a97a15d00b34f65cd72f964e7
Reviewed-on: https://skia-review.googlesource.com/4911
Reviewed-by: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoremove CANVAS_IS_REFCNT flag from public.bzl
Mike Reed [Wed, 16 Nov 2016 20:54:31 +0000 (15:54 -0500)]
remove CANVAS_IS_REFCNT flag from public.bzl

BUG=skia:

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

Change-Id: I3ea6c2b96dd79da9ebba659726cbab52bda21651
Reviewed-on: https://skia-review.googlesource.com/4914
Reviewed-by: Mike Reed <reed@google.com>
7 years agoExternal SkImageGenerator API
Florin Malita [Wed, 16 Nov 2016 19:45:34 +0000 (14:45 -0500)]
External SkImageGenerator API

Introduce an SkImageGenerator API to support the implementation of
externally-managed image decode and scale caches.

BUG=skia:5806
R=reed@google.com

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

Change-Id: Ibfe37af5471f78f28f88f9d5e80938882be1a344
Reviewed-on: https://skia-review.googlesource.com/4720
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoAdd vulkan build to skpbench.
Kevin Lubick [Wed, 16 Nov 2016 19:07:17 +0000 (14:07 -0500)]
Add vulkan build to skpbench.

This also fixes the name of the tasks because skpbench is always GPU.
There was a config for monitoring the gpu clock instead of the cpu clock,
but this was removed because the gpu clock isn't very useful at the moment.
cpu clock is basically wall-time, i.e. an accurate measurement of the
entire test.

BUG=skia:

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

Change-Id: If1c7dd3141e24f79555ee7b3756f09618df54cb4
Reviewed-on: https://skia-review.googlesource.com/4873
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
7 years agoRename GrTextureBufferSampler to GrBufferSampler
csmartdalton [Wed, 16 Nov 2016 18:28:16 +0000 (11:28 -0700)]
Rename GrTextureBufferSampler to GrBufferSampler

Just a simple renaming to reinforce the Ganesh notion that a buffer
access is not related to a texture.

BUG=skia:

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

Change-Id: I3f12b6eccff744e246618be0a7abf41c4a1228a1
Reviewed-on: https://skia-review.googlesource.com/4879
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>

7 years agoRevert "Revert "Add support for image load to SkSL""
Brian Salomon [Wed, 16 Nov 2016 17:06:01 +0000 (12:06 -0500)]
Revert "Revert "Add support for image load to SkSL""

This reverts commit cb115bdeed5898ded3fdbe572a14616cff809b7c.

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

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

7 years agoGN: add public headers warnings check.
Mike Klein [Wed, 16 Nov 2016 17:13:44 +0000 (12:13 -0500)]
GN: add public headers warnings check.

We already generate skia.h to include all public headers for Fiddle.
This just includes it with -Wunused-parameter turned on as an error.

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

Change-Id: Ia55a901c09a3c9c9d6d35a43259431dba3532ed9
Reviewed-on: https://skia-review.googlesource.com/4901
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRename kTexture2DISampler to kITexture2DSampler.
Brian Salomon [Wed, 16 Nov 2016 17:55:57 +0000 (12:55 -0500)]
Rename kTexture2DISampler to kITexture2DSampler.

Also remove unused kGrSLTypeCount.

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

Change-Id: I7f934c56515424b2668886dec2f16296a1256e2c
Reviewed-on: https://skia-review.googlesource.com/4903
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
7 years agoAdd trace and registers stages.
Mike Klein [Wed, 16 Nov 2016 18:38:15 +0000 (13:38 -0500)]
Add trace and registers stages.

Yet more debugging tools.

TBR=herb@google.com

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

Change-Id: I92e2e6b17abfc32c8d3554e71dbf95abadbb3824
Reviewed-on: https://skia-review.googlesource.com/4908
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoUse SkSmallAllocator for tiling.
Herb Derby [Wed, 16 Nov 2016 18:26:42 +0000 (13:26 -0500)]
Use SkSmallAllocator for tiling.

BUG=skia:

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

Change-Id: If401ea43454b46591d6f39492e7761b16a7e7a29
Reviewed-on: https://skia-review.googlesource.com/4904
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agomove SkBlendMode_Name into public (for chrome)
Mike Reed [Wed, 16 Nov 2016 18:13:16 +0000 (13:13 -0500)]
move SkBlendMode_Name into public (for chrome)

BUG=skia:

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

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

7 years agoAdd back in min/max check on fuzzer range
Kevin Lubick [Tue, 15 Nov 2016 21:07:02 +0000 (16:07 -0500)]
Add back in min/max check on fuzzer range

BUG=skia:

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

Change-Id: Ia93b4eeea82dd04f0c6bd287f61d26086a0aa740
Reviewed-on: https://skia-review.googlesource.com/4798
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>

7 years agoAdd IORef capability to GrSurfaceProxy objects - take 2
robertphillips [Wed, 16 Nov 2016 19:17:17 +0000 (11:17 -0800)]
Add IORef capability to GrSurfaceProxy objects - take 2

Re-landing of https://skia-review.googlesource.com/c/4734/ (Add IORef capability to GrSurfaceProxy objects) with fixes for:
 platforms that don't support discards.
 memory leak due to copying over of GrSurfaceProxy's creation ref to instantiated GrSurface in instantiate()

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

Change-Id: If0b695d5cafc5ef3fdd251c38262849d09e5d27f
Review-Url: https://codereview.chromium.org/2502923003

7 years agoFix mask overflow caused by edge drift
Yuqian Li [Wed, 16 Nov 2016 18:07:57 +0000 (13:07 -0500)]
Fix mask overflow caused by edge drift

BUG=skia:

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

Change-Id: Ica1568b67c1e1ce4aae2bdaba2c5b1f2155d1382
Reviewed-on: https://skia-review.googlesource.com/4797
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoDrop forceRLE to simplify aaa_walk_convex_edges
Yuqian Li [Wed, 16 Nov 2016 16:54:48 +0000 (11:54 -0500)]
Drop forceRLE to simplify aaa_walk_convex_edges

The virtual flush function doesn't seem to affect the performance much.
Maybe there's a 1% drop in performance in nanobench against
fill_big_triangle and fill_big_circle, but that's too small a change for
nanobench to reliabily diffrentiate.

The smooth jump (ignore fractional y if edges don't change their
directions significantly) no longer needs to be guarded against SkAAClip
because our recent CL (https://skia-review.googlesource.com/c/4636/)
make left/rightBound much tighter.

BUG=skia:

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

Change-Id: If323013b810cc1ff5f6dbb868a8981354ee6f9b5
Reviewed-on: https://skia-review.googlesource.com/4899
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Commit-Queue: Stan Iliev <stani@google.com>

7 years agoinfra recipe: Add -t flag to "go test"
Eric Boren [Wed, 16 Nov 2016 15:49:52 +0000 (10:49 -0500)]
infra recipe: Add -t flag to "go test"

BUG=skia:

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

Change-Id: Iff66f67a28b65797446d0ba26064f00dc948bb47
Reviewed-on: https://skia-review.googlesource.com/4896
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoSimplify the signature of sk/aaa_fill_path
Yuqian Li [Wed, 16 Nov 2016 15:12:58 +0000 (10:12 -0500)]
Simplify the signature of sk/aaa_fill_path

Previously, the clipRect is either equal to nullptr or clipRgn's bound
(after necessary supersampling shift). Hence we drop one of them to make
the signature simpler.

BUG=skia:

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

Change-Id: Ied8d5313809d6cf90374365b01f2b8d52f2236e2
Reviewed-on: https://skia-review.googlesource.com/4874
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoFix error with transforming custom/large glyphs
Jim Van Verth [Wed, 16 Nov 2016 15:15:23 +0000 (10:15 -0500)]
Fix error with transforming custom/large glyphs

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

Change-Id: I9f14ca830f9de92000e751a4a99ff1eb9b01db33
Reviewed-on: https://skia-review.googlesource.com/4866
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

7 years agomake SkXfermode.h go away
Mike Reed [Tue, 15 Nov 2016 21:44:34 +0000 (16:44 -0500)]
make SkXfermode.h go away

This is step one:
- make SkXfermode useless to public clients
- everything they should need is in SkBlendMode.h

Step two:
- remove SkXfermode.h entirely (since skia core will already be using SkXfermodePriv.h)

BUG=skia:

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

Change-Id: If2cea9f71df92430ed6644edb98dd306c5572cbc
Reviewed-on: https://skia-review.googlesource.com/4534
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agoRevert of added support for push_constant layout (patchset #7 id:140001 of https...
egdaniel [Wed, 16 Nov 2016 15:29:51 +0000 (07:29 -0800)]
Revert of added support for push_constant layout (patchset #7 id:140001 of https://codereview.chromium.org/2187433003/ )

Reason for revert:
hitting assert in vulkan

Original issue's description:
> added support for push_constant layout
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187433003
>
> Committed: https://skia.googlesource.com/skia/+/fa5f65ac61fd525029aa9dab161ffe4896c10f6d

TBR=ethannicholas@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/2509673002

7 years agoRevert "Add support for image load to SkSL"
Stan Iliev [Wed, 16 Nov 2016 15:25:42 +0000 (15:25 +0000)]
Revert "Add support for image load to SkSL"

This reverts commit bd85a105ba7b3ee2008d20fb9281bfb47325ad0e.

Reason for revert: Needing to revert a dependent CL

Original change's description:
> Add support for image load to SkSL
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4865
>
> Change-Id: I4647e6b255946ced2b1b8cb05e62f0f5a8ad28b6
> Reviewed-on: https://skia-review.googlesource.com/4865
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
>

TBR=bsalomon@google.com,ethannicholas@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I45932a53c606aadd645ee2b8264f08ad63429939
Reviewed-on: https://skia-review.googlesource.com/4892
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Stan Iliev <stani@google.com>
7 years agoadd {parametric,table}_{r,g,b} stages.
Mike Klein [Wed, 16 Nov 2016 14:01:30 +0000 (09:01 -0500)]
add {parametric,table}_{r,g,b} stages.

Think you can take over from here, hook these into SkColorSpaceXform_A2B, and remove the need for fn_1_{r,g,b}?

BUG=skia:664864

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

Change-Id: If573fa2861f32f201f4db28598559290b1eef812
Reviewed-on: https://skia-review.googlesource.com/4888
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years ago[nobuildbot] Nexus 5
Eric Boren [Wed, 16 Nov 2016 12:14:36 +0000 (07:14 -0500)]
[nobuildbot] Nexus 5

BUG=skia:

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

Change-Id: Id8bcb72926155d8754e99e5ec5b3ae2461b22e0f
Reviewed-on: https://skia-review.googlesource.com/4870
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
7 years agoAdd support for image load to SkSL
Brian Salomon [Wed, 16 Nov 2016 00:09:52 +0000 (19:09 -0500)]
Add support for image load to SkSL

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

Change-Id: I4647e6b255946ced2b1b8cb05e62f0f5a8ad28b6
Reviewed-on: https://skia-review.googlesource.com/4865
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agoFix flushing of HWAA state relating to mixed samples
csmartdalton [Tue, 15 Nov 2016 21:26:27 +0000 (14:26 -0700)]
Fix flushing of HWAA state relating to mixed samples

Fixes the sense of the "stencilEnabled" argument sent to
flushHWAAState.

BUG=skia:

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

Change-Id: If7097f2819607864c95b0ffd04dc1d302fa66fdc
Reviewed-on: https://skia-review.googlesource.com/4872
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>

7 years agoLinearGradientContext::shade4_clamp: fix div by 0
James Zern [Thu, 10 Nov 2016 03:22:46 +0000 (19:22 -0800)]
LinearGradientContext::shade4_clamp: fix div by 0

getScaleX() may return 0; move division using it after a
SkScalarNearlyZero check and closer to its first use.

Change-Id: Ie209d46dc101213e20e90486651ee17570425bb8
Reviewed-on: https://skia-review.googlesource.com/4643
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years ago[nobuildbot] RecreateSKPs
Eric Boren [Tue, 15 Nov 2016 20:18:20 +0000 (15:18 -0500)]
[nobuildbot] RecreateSKPs

BUG=skia:

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

Change-Id: Idee05a4b1ea909c5dc1de2e9ebc8c2f9631c78e2
Reviewed-on: https://skia-review.googlesource.com/4836
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
7 years agoRevert "Defer more renderTargetContexts in the GPU image filter paths"
Robert Phillips [Tue, 15 Nov 2016 22:17:22 +0000 (22:17 +0000)]
Revert "Defer more renderTargetContexts in the GPU image filter paths"

This reverts commit fd01ce05ef7902c49b0272b3524a389693c72b35.

Reason for revert: see if this is the cause of the Nexus7 assertion failure

Original change's description:
> Defer more renderTargetContexts in the GPU image filter paths
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4767
>
> Change-Id: I4c1f27247ef340a49d1ac96761810e77e6047ca2
> Reviewed-on: https://skia-review.googlesource.com/4767
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I158f96ec1252481345fc5dca15086ffd4b47cb95
Reviewed-on: https://skia-review.googlesource.com/4875
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoMove the matrix stage of SkLinearBitmapPipeline over to using SkSmallAllocator.
herb [Tue, 15 Nov 2016 22:07:13 +0000 (14:07 -0800)]
Move the matrix stage of SkLinearBitmapPipeline over to using SkSmallAllocator.

The rest of the stages will follow. When all stages are completed,
this should significantly reduce stack use in the typical case.

This a step in removing the baroque stage system and moving towards
a SkRasterPipeline stage system.

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

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

7 years agoAdd SkRasterPipeline::dump().
Mike Klein [Tue, 15 Nov 2016 21:18:38 +0000 (16:18 -0500)]
Add SkRasterPipeline::dump().

Entirely for debugging.

TBR=herb@google.com

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

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

7 years agoadded support for push_constant layout
ethannicholas [Tue, 15 Nov 2016 20:53:05 +0000 (12:53 -0800)]
added support for push_constant layout

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

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

7 years agoAdd kRenderTarget_GrSurfaceFlag to GrVkGpu::onWrapBackendRenderTarget
Robert Phillips [Tue, 15 Nov 2016 19:46:09 +0000 (14:46 -0500)]
Add kRenderTarget_GrSurfaceFlag to GrVkGpu::onWrapBackendRenderTarget

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

Change-Id: I7f169d050c47c074cf63ef9b63fb7df8efdaed62
Reviewed-on: https://skia-review.googlesource.com/4868
Commit-Queue: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoAdd detection of image load/store to caps
Brian Salomon [Tue, 15 Nov 2016 19:05:01 +0000 (14:05 -0500)]
Add detection of image load/store to caps

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

Change-Id: Ibf70cce9f61553e830b62339551c1541dc054e8b
Reviewed-on: https://skia-review.googlesource.com/4861
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoIgnore ctm param of SkShader::onAppendStages()
Florin Malita [Tue, 15 Nov 2016 19:38:43 +0000 (14:38 -0500)]
Ignore ctm param of SkShader::onAppendStages()

Clang 3.8.0:

../../include/core/SkShader.h:513:49: error: unused parameter 'ctm' [-Werror,-Wunused-parameter]
                                const SkMatrix& ctm) const {

R=mtklein@google.com

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

Change-Id: I242180cb33ad099b28b06654934029690da195ee
Reviewed-on: https://skia-review.googlesource.com/4867
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoAdd image functions to GrGLInterface
Brian Salomon [Tue, 15 Nov 2016 17:36:29 +0000 (12:36 -0500)]
Add image functions to GrGLInterface

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

Change-Id: I250cc4e637765c321c90e33c9b3f25c4ad12fe04
Reviewed-on: https://skia-review.googlesource.com/4840
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoAdd 4.20 as a GLSL output version.
Brian Salomon [Tue, 15 Nov 2016 18:26:08 +0000 (13:26 -0500)]
Add 4.20 as a GLSL output version.

GLSL 4.20 adds support for image functions which will be used in forthcoming changes.

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

Change-Id: I8cab511d95f04b45faaf916628148117b8be2128
Reviewed-on: https://skia-review.googlesource.com/4833
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agofuzz hang fix and pathops client debugging
Cary Clark [Tue, 15 Nov 2016 18:22:25 +0000 (13:22 -0500)]
fuzz hang fix and pathops client debugging

The ASAN fuzzer on chrome caught a hanging state.

To capture the data, allow the pathops client debugging
to run in a release build.

TBR=reed@google.com
BUG=665295

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

Change-Id: I6b2c2baabd63994f63aa730d2ee7828986b5ab89
Reviewed-on: https://skia-review.googlesource.com/4834
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoMore shader preliminaries / refactoring
Mike Klein [Tue, 15 Nov 2016 18:20:33 +0000 (13:20 -0500)]
More shader preliminaries / refactoring

    - thread through ctm
    - make blitter handle paint modulation instead of each shader

TBR=herb@google.com

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

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

7 years agoskpbench: fix parser script for bots
csmartdalton [Tue, 15 Nov 2016 16:57:15 +0000 (09:57 -0700)]
skpbench: fix parser script for bots

- emits the timings as numbers instead of strings.
- moves 'bench_type' and 'source_type' into the key.

BUG=skia:

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

Change-Id: Ibf98891e21c5d4c8a794c207e60d0df78d8a063c
Reviewed-on: https://skia-review.googlesource.com/4823
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>

7 years agoRevert "Support decoding images to multiple formats, depending on usage"
Brian Osman [Tue, 15 Nov 2016 18:07:26 +0000 (18:07 +0000)]
Revert "Support decoding images to multiple formats, depending on usage"

This reverts commit c73a1ecbed64652b3d7aa8dc6face9a2205ce830.

Reason for revert: ANGLE and CommandBuffer failures

Original change's description:
> Support decoding images to multiple formats, depending on usage
>
> Our codec generator will now preserve any asked-for color space, and
> convert the encoded data to that representation. Cacherator now
> allows decoding an image to both legacy (nullptr color space), and
> color-correct formats. In color-correct mode, we choose the best
> decoded format, based on the original properties, and our backend's
> capabilities. Preference is given to the native format, when it's
> already texturable (sRGB 8888 or F16 linear). Otherwise, we prefer
> linear F16, and fall back to sRGB when that's not an option.
>
> BUG=skia:5907
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4438
>
> Change-Id: I847c243dcfb72d8c0f1f6fc73c09547adea933f0
> Reviewed-on: https://skia-review.googlesource.com/4438
> Reviewed-by: Matt Sarett <msarett@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
>

TBR=mtklein@google.com,bsalomon@google.com,msarett@google.com,brianosman@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I1818f937464573d601f64e5a1f1eb43f5a778f4e
Reviewed-on: https://skia-review.googlesource.com/4832
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRevert "Fix NoGPU compilation"
Brian Osman [Tue, 15 Nov 2016 18:06:18 +0000 (18:06 +0000)]
Revert "Fix NoGPU compilation"

This reverts commit d5a78805c5133bc55e07c5da21f8d72b91a3df4f.

Reason for revert: This was a patch for an earlier change that's going to be reverted as well.

Original change's description:
> Fix NoGPU compilation
>
> All of these functions were written to work without GPU support, just
> forgot to compile them in that situation.
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4796
>
> Change-Id: Ia23d304f07eb16714390b459dd448bc08402f479
> Reviewed-on: https://skia-review.googlesource.com/4796
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Stan Iliev <stani@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> Commit-Queue: Stan Iliev <stani@google.com>
>

TBR=egdaniel@google.com,brianosman@google.com,stani@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id0b9db355f416c118c0ef95501a6cfdeb083b54e
Reviewed-on: https://skia-review.googlesource.com/4831
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRevert "While we can, restrict SkFixedAlloc/SkFallbackAlloc to POD."
Mike Klein [Tue, 15 Nov 2016 17:58:33 +0000 (17:58 +0000)]
Revert "While we can, restrict SkFixedAlloc/SkFallbackAlloc to POD."

This reverts commit 1ee70359a199f161ce38451989a706d727954cc1.

Reason for revert: breaking my various rolls.

Original change's description:
> While we can, restrict SkFixedAlloc/SkFallbackAlloc to POD.
>
> This trims the overhead down to a uniform 4 bytes.
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4786
>
> Change-Id: I92127a0c2d6c23a4a372eca39842e22195d2dc99
> Reviewed-on: https://skia-review.googlesource.com/4786
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
>

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

Change-Id: Iae9ef553422352a1abf95b709fccd014d468da86
Reviewed-on: https://skia-review.googlesource.com/4829
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRevert "fix google3?"
Mike Klein [Tue, 15 Nov 2016 17:57:48 +0000 (17:57 +0000)]
Revert "fix google3?"

This reverts commit ccb8e8bf38f51e35e0a456c6a724bab96d1b657a.

Reason for revert: rolling back a CL this attempted to fix.

Original change's description:
> fix google3?
>
> TBR=brianosman@google.com
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4822
>
> Change-Id: I991232e90c6851938151daa59cdeb4a3e22a7f03
> Reviewed-on: https://skia-review.googlesource.com/4822
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,brianosman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I127165f065be45af98528c8ae825e2f0fe5c8b0d
Reviewed-on: https://skia-review.googlesource.com/4828
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoFix up arguments passed to pipeline.
Mike Klein [Tue, 15 Nov 2016 15:31:38 +0000 (10:31 -0500)]
Fix up arguments passed to pipeline.

  - Add half to (x,y) to get pixel centers.
  - The x updates were just totally wrong...

BUG=skia:

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

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

7 years agofix google3?
Mike Klein [Tue, 15 Nov 2016 16:56:56 +0000 (11:56 -0500)]
fix google3?

TBR=brianosman@google.com

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

Change-Id: I991232e90c6851938151daa59cdeb4a3e22a7f03
Reviewed-on: https://skia-review.googlesource.com/4822
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agochange SkCanvasStack to take ownership of its subcanvases
Mike Reed [Tue, 15 Nov 2016 16:52:55 +0000 (11:52 -0500)]
change SkCanvasStack to take ownership of its subcanvases

Inspired by https://bugs.chromium.org/p/chromium/issues/detail?id=663959

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

Change-Id: I69f7ac73386bb7ca96778e2fec4cb2757b982a52
Reviewed-on: https://skia-review.googlesource.com/4799
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agoFix NoGPU compilation
Brian Osman [Tue, 15 Nov 2016 15:55:12 +0000 (10:55 -0500)]
Fix NoGPU compilation

All of these functions were written to work without GPU support, just
forgot to compile them in that situation.

BUG=skia:

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

Change-Id: Ia23d304f07eb16714390b459dd448bc08402f479
Reviewed-on: https://skia-review.googlesource.com/4796
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Stan Iliev <stani@google.com>

7 years agoWhile we can, restrict SkFixedAlloc/SkFallbackAlloc to POD.
Mike Klein [Tue, 15 Nov 2016 15:26:44 +0000 (10:26 -0500)]
While we can, restrict SkFixedAlloc/SkFallbackAlloc to POD.

This trims the overhead down to a uniform 4 bytes.

BUG=skia:

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

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

7 years agoResurrect SkDebugger
Florin Malita [Tue, 15 Nov 2016 15:03:32 +0000 (10:03 -0500)]
Resurrect SkDebugger

Can't let go <sniffle>.

R=robertphillips@google.com

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

Change-Id: Ida5936d17af2ef60c3f50e27b4f4987a79165fa5
Reviewed-on: https://skia-review.googlesource.com/4793
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoSupport decoding images to multiple formats, depending on usage
Brian Osman [Mon, 14 Nov 2016 20:09:56 +0000 (15:09 -0500)]
Support decoding images to multiple formats, depending on usage

Our codec generator will now preserve any asked-for color space, and
convert the encoded data to that representation. Cacherator now
allows decoding an image to both legacy (nullptr color space), and
color-correct formats. In color-correct mode, we choose the best
decoded format, based on the original properties, and our backend's
capabilities. Preference is given to the native format, when it's
already texturable (sRGB 8888 or F16 linear). Otherwise, we prefer
linear F16, and fall back to sRGB when that's not an option.

BUG=skia:5907

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

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

7 years agoDefer more renderTargetContexts in the GPU image filter paths
Robert Phillips [Mon, 14 Nov 2016 18:23:15 +0000 (13:23 -0500)]
Defer more renderTargetContexts in the GPU image filter paths

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

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

7 years agoStart each pipeline with (x,y) in (dr,dg) registers for the shader.
Mike Klein [Tue, 15 Nov 2016 13:52:04 +0000 (08:52 -0500)]
Start each pipeline with (x,y) in (dr,dg) registers for the shader.

Image shaders need to do some geometry work before sampling the image colors:
  1) determine dst coordinates
  2) map back to src coordinates
  3) tiling

Feeding (x,y) through as (dr,dg) registers makes step 1) easy, perhaps trivial, while leaving (r,g,b,a) with their usual meanings, "the color", starting with the paint color.

This is easy to tweak into something like (x+0.5, y+0.5, 1) in (dr,dg,db) once this lands.  Mostly I just want to get all the uninteresting boilerplate out of the way first.

BUG=skia:

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

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

7 years agoMake SkSmallAllocator obey the RAII invariants and move to heap structures when needed.
herb [Tue, 15 Nov 2016 14:26:56 +0000 (06:26 -0800)]
Make SkSmallAllocator obey the RAII invariants and move to heap structures when needed.

The biggest change is to the API which allowed code to bypass the
destruction invariants. This destruction bypass feature was needed in
only one use, and is totally encapsulated using createWithIniterT.

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

Committed: https://skia.googlesource.com/skia/+/d5dc657b8c3ac916f98005dafdedafe02f023449
Committed: https://skia.googlesource.com/skia/+/c18b5f8f57a4efc5d5d1e399ed8bd3bd02c592ab
Review-Url: https://codereview.chromium.org/2488523003

7 years ago[nobuildbot] Nexus 6p
Eric Boren [Tue, 15 Nov 2016 12:25:23 +0000 (07:25 -0500)]
[nobuildbot] Nexus 6p

BUG=skia:

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

Change-Id: I5049bd59eccfc3106991096652765b79c9dbaffd
Reviewed-on: https://skia-review.googlesource.com/4788
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>