platform/upstream/libSkiaSharp.git
7 years agoextend clipper for lines, for uniformity, and so curves can call itself with lines
Mike Reed [Thu, 26 Jan 2017 19:21:26 +0000 (14:21 -0500)]
extend clipper for lines, for uniformity, and so curves can call itself with lines

BUG=skia:

Change-Id: Id8c1fba6fcd2496802d3d17afe3f5c91bf5dfc33
Reviewed-on: https://skia-review.googlesource.com/7621
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoSkUserConfig.h: remove out-of-date comment on SK_SFNTLY_SUBSETTER
Hal Canary [Thu, 26 Jan 2017 18:53:57 +0000 (13:53 -0500)]
SkUserConfig.h: remove out-of-date comment on SK_SFNTLY_SUBSETTER

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

7 years agoexclude *hsw* source files on Android/iOS G3 build.
Mike Klein [Thu, 26 Jan 2017 19:40:53 +0000 (14:40 -0500)]
exclude *hsw* source files on Android/iOS G3 build.

Like *sse2*, *avx*, etc, these are x86-specific and
even there must be compiled with particular flags.

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

7 years agoAdd SkICC::rawTransferFnData()
Matt Sarett [Thu, 26 Jan 2017 18:10:49 +0000 (13:10 -0500)]
Add SkICC::rawTransferFnData()

BUG=skia:

Change-Id: I912b044a0091a4d396c954d1ad1d84f5f8d50f56
Reviewed-on: https://skia-review.googlesource.com/7366
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoremove clipbounds flag
Mike Reed [Thu, 26 Jan 2017 18:21:29 +0000 (13:21 -0500)]
remove clipbounds flag

BUG=skia:

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

7 years agoremove obsolete flag
Cary Clark [Thu, 26 Jan 2017 16:42:52 +0000 (11:42 -0500)]
remove obsolete flag

Added by humper in 2013, it is not
referenced anywhere I can find.

R=reed@google.com

Change-Id: I35b3891b29b2fddb132647b5a1e337a0fc68e79e
Reviewed-on: https://skia-review.googlesource.com/7610
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>

7 years agoSkOpts_hsw ODR paranoia
Mike Klein [Thu, 26 Jan 2017 16:41:03 +0000 (11:41 -0500)]
SkOpts_hsw ODR paranoia

I'm warming back up to the idea of very careful use of SkOpts_hsw.
But if we're going to do that, we need a strict header discipline.
No header can be assumed to be safe without vetting, and most aren't.

Today there's only one function defined in SkOpts_hsw, so this CL mostly
rewrites that convolve_vertically() to use no headers beyond immintrin.h
and stdint.h, both safe.  It shared very little code with the others
anyway, so we're not losing anything by putting it directly into
SkOpts_hsw.cpp.  I have also streamlined the implementation considerably
to improve maintainability and readability.

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

7 years agoRemove SkBlitter::getShaderContext()
Florin Malita [Thu, 26 Jan 2017 17:33:20 +0000 (12:33 -0500)]
Remove SkBlitter::getShaderContext()

Unused.  Also ComposeShaderContext::getShaderContext{A,B}.

R=reed@google.com,mtklein@google.com

Change-Id: I36a8346f0c7e842455774339f388c04920db0040
Reviewed-on: https://skia-review.googlesource.com/7613
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoFix extension suffic for getting procs from GL_EXT_debug_marker on ES
Brian Salomon [Thu, 26 Jan 2017 14:16:02 +0000 (09:16 -0500)]
Fix extension suffic for getting procs from GL_EXT_debug_marker on ES

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

7 years agoadd test for big cubic -- currently disabled
Mike Reed [Thu, 26 Jan 2017 16:03:50 +0000 (11:03 -0500)]
add test for big cubic -- currently disabled

BUG=skia:

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

7 years agoMove SkGammaColorFilter to tools, limit to sRGB
Brian Osman [Thu, 26 Jan 2017 14:32:33 +0000 (09:32 -0500)]
Move SkGammaColorFilter to tools, limit to sRGB

Similarly, limit GrGammaEffect to sRGB (and rename it).

BUG=skia:

Change-Id: I88feef11ab7040bca2fa4c2eed71923ded87a0d0
Reviewed-on: https://skia-review.googlesource.com/7375
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoremove legacy clipbounds flag for android
Mike Reed [Wed, 25 Jan 2017 22:05:46 +0000 (17:05 -0500)]
remove legacy clipbounds flag for android

BUG=skia:

Change-Id: Ie13c85bfbb5b1b173e8ac6a2fb0c9a23ea8ba7de
Reviewed-on: https://skia-review.googlesource.com/7583
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoMove GrDrawingManager pointer to GrSurfaceContext
Robert Phillips [Wed, 25 Jan 2017 22:31:35 +0000 (17:31 -0500)]
Move GrDrawingManager pointer to GrSurfaceContext

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

7 years agoCheck that the upper bits are correct in the SkArenaAlloc footer.
herb [Thu, 26 Jan 2017 01:37:09 +0000 (20:37 -0500)]
Check that the upper bits are correct in the SkArenaAlloc footer.

TBR=mtklein@google.com

Change-Id: I8dc21778d1b8b24dd9d7b6919bb7e2bcfe090e82
Reviewed-on: https://skia-review.googlesource.com/7588
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoFix clang warning about unused lambda capture.
Brian Salomon [Thu, 26 Jan 2017 00:26:59 +0000 (19:26 -0500)]
Fix clang warning about unused lambda capture.

This was found by a tip of tree build of clang.

Change-Id: I9aa3fecd47ae69350e8d58e796f960a991b7759e
Reviewed-on: https://skia-review.googlesource.com/7586
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRemove redundant caps field from GrProcessorTestData
Brian Salomon [Wed, 25 Jan 2017 19:58:24 +0000 (14:58 -0500)]
Remove redundant caps field from GrProcessorTestData

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

7 years agoSimplify Footers in SkArenaAlloc to 64-bit values using pointers.
Herb Derby [Wed, 25 Jan 2017 22:05:05 +0000 (17:05 -0500)]
Simplify Footers in SkArenaAlloc to 64-bit values using pointers.

TBR=mtklein@google.com

Change-Id: I72c6cf6857b2bb00f4259cc9c4de2d51d454e6ab
Reviewed-on: https://skia-review.googlesource.com/7582
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>

7 years agoSwitch GrConfigConversionEffect over to taking GrTextureProxies
Robert Phillips [Wed, 25 Jan 2017 20:48:30 +0000 (15:48 -0500)]
Switch GrConfigConversionEffect over to taking GrTextureProxies

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

7 years agoutils/win/SkTScopedComPtr<T>: Add C++11ish move semantics
Hal Canary [Tue, 24 Jan 2017 16:11:31 +0000 (11:11 -0500)]
utils/win/SkTScopedComPtr<T>: Add C++11ish move semantics

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

7 years agoUse GrSurfaceContext::read/write-Pixels more
Robert Phillips [Wed, 25 Jan 2017 17:10:37 +0000 (12:10 -0500)]
Use GrSurfaceContext::read/write-Pixels more

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

7 years agoAdd test for bad reuse of SkJpegCodec internal state
Matt Sarett [Wed, 25 Jan 2017 16:58:11 +0000 (11:58 -0500)]
Add test for bad reuse of SkJpegCodec internal state

This is a test for the following fix:
https://skia-review.googlesource.com/c/7451/

b/34637813

Change-Id: I3fdb0d7d50537948039b75c3a22454e789ca810a
Reviewed-on: https://skia-review.googlesource.com/7454
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
7 years agoMove SkShadowTessellator to GrShadowTessellator
Jim Van Verth [Wed, 25 Jan 2017 16:05:01 +0000 (11:05 -0500)]
Move SkShadowTessellator to GrShadowTessellator

BUG=skia:6119

Change-Id: I9756b5aeaced1f21a65063470ccb013c7b856f28
Reviewed-on: https://skia-review.googlesource.com/7505
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

7 years agoRoll recipe DEPS
Eric Boren [Wed, 25 Jan 2017 15:33:57 +0000 (10:33 -0500)]
Roll recipe DEPS

BUG=skia:

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

7 years agoAdd geometric implementation for ambient shadows
Jim Van Verth [Wed, 25 Jan 2017 14:39:46 +0000 (09:39 -0500)]
Add geometric implementation for ambient shadows

Original: https://skia-review.googlesource.com/7273

BUG=skia:6119

Change-Id: Ie7debd7727768f55dafad922a2b8b9fd3a638fda
Reviewed-on: https://skia-review.googlesource.com/7500
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRevert "Remove SkImage::MakeTextureFromPixmap"
Brian Osman [Wed, 25 Jan 2017 14:13:00 +0000 (14:13 +0000)]
Revert "Remove SkImage::MakeTextureFromPixmap"

This reverts commit 8ccbbb455c6ef194920c47e846b95b50f5017138.

Reason for revert: Chrome perf regression

BUG=chrome:684483

Original change's description:
> Remove SkImage::MakeTextureFromPixmap
>
> Another step towards reducing the number of texture upload paths.
>
> BUG=skia:
>
> Change-Id: Ica185e7334f52dc9ebf87e21fe6f60589ef87bb3
> Reviewed-on: https://skia-review.googlesource.com/7346
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,cblume@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=skia:

Change-Id: I8bf6970b764018f3ebcac8123e4d6a8ad05317ff
Reviewed-on: https://skia-review.googlesource.com/7484
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRevert "Add geometric implementation for ambient shadows"
Ethan Nicholas [Wed, 25 Jan 2017 04:33:07 +0000 (04:33 +0000)]
Revert "Add geometric implementation for ambient shadows"

This reverts commit fdb1bdf1aa4e7f14befcb3acc3f586e7734190ea.

Reason for revert: Breaking the roll (see e.g. https://codereview.chromium.org/2652833006)

Original change's description:
> Add geometric implementation for ambient shadows
>
> BUG=skia:6119
>
> Change-Id: I3140522f223c35fc059a33b593064897485dff7c
> Reviewed-on: https://skia-review.googlesource.com/7273
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
>

TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6119

Change-Id: I307f6084c40e5ba305c38d15b6b433465295553c
Reviewed-on: https://skia-review.googlesource.com/7480
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agoAdd geometric implementation for ambient shadows
Jim Van Verth [Tue, 24 Jan 2017 21:27:57 +0000 (16:27 -0500)]
Add geometric implementation for ambient shadows

BUG=skia:6119

Change-Id: I3140522f223c35fc059a33b593064897485dff7c
Reviewed-on: https://skia-review.googlesource.com/7273
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

7 years agoRevert "Remove sentinal GLContext used in early days of Vulkan in our tools"
Brian Salomon [Tue, 24 Jan 2017 22:22:05 +0000 (22:22 +0000)]
Revert "Remove sentinal GLContext used in early days of Vulkan in our tools"

This reverts commit bfd97c59350c112ad85301eb6ff6005ae4fd9e8c.

Reason for revert: Windows bots crashing.

Original change's description:
> Remove sentinal GLContext used in early days of Vulkan in our tools
>
> I've ran this through multiple variations of dm and nanobench on Linux
> and no longer see any crash/hangs. I forget what the original repo case
> for the bug was, but I'm at least not seeing it now with updated drivers.
>
> BUG=skia:
>
> Change-Id: I6b7129a4c4d67938baa35d2e2c720cb078fc4c18
> Reviewed-on: https://skia-review.googlesource.com/7441
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
>

TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: I94a16b2b13d09182232061b0aebd0d58df96db8a
Reviewed-on: https://skia-review.googlesource.com/7453
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoAllow GrSingleTextureEffect to take GrTextureProxies
Robert Phillips [Tue, 24 Jan 2017 21:24:41 +0000 (16:24 -0500)]
Allow GrSingleTextureEffect to take GrTextureProxies

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

7 years agoUse appropriate options in SkJpegCodec readRows()
Matt Sarett [Tue, 24 Jan 2017 21:16:33 +0000 (16:16 -0500)]
Use appropriate options in SkJpegCodec readRows()

b/34637813

Change-Id: Ibebac2ef8cfe004beb2272c266b580946cedcb08
Reviewed-on: https://skia-review.googlesource.com/7451
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
7 years agoMake the footer big to handle bug 684061.
Herb Derby [Tue, 24 Jan 2017 20:59:51 +0000 (15:59 -0500)]
Make the footer big to handle bug 684061.

R=mtklein@google.com

BUG=chromium:684061

Change-Id: I210ca93e00ec6fa5d166c0fde5cdcff0f60c26ca
Reviewed-on: https://skia-review.googlesource.com/7450
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRemove sentinal GLContext used in early days of Vulkan in our tools
Greg Daniel [Tue, 24 Jan 2017 18:13:30 +0000 (13:13 -0500)]
Remove sentinal GLContext used in early days of Vulkan in our tools

I've ran this through multiple variations of dm and nanobench on Linux
and no longer see any crash/hangs. I forget what the original repo case
for the bug was, but I'm at least not seeing it now with updated drivers.

BUG=skia:

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

7 years agoSkPixelInfo::CopyPixels() refactor part 0: only one memcpy() case
Matt Sarett [Tue, 24 Jan 2017 17:43:41 +0000 (12:43 -0500)]
SkPixelInfo::CopyPixels() refactor part 0: only one memcpy() case

I envision this eventually looking like the following:
Fast Path 1: memcpy
Fast Path 2: Legacy RGBA/BGRA unpremul/premul
Fast Path 3: SkColorSpaceXform
Fallback: Raster pipeline

BUG=skia:6021

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

7 years agomove sk_memset16,32,64 out-of-line
Mike Klein [Wed, 4 Jan 2017 19:44:20 +0000 (14:44 -0500)]
move sk_memset16,32,64 out-of-line

This helps pick it out on profiles and when debugging.

This will have a negligible impact on speed in most cases (small memsets are always fast, large memsets dwarf function call overhead), and clients like Chrome that use link-time optimization should see exactly zero impact.

This does however affect code size: it makes libskia 43K smaller on my laptop.

Change-Id: I55bdc75b7429a63024ab3b7d55dc1f886bde102a
Reviewed-on: https://skia-review.googlesource.com/6589
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoMake GrConvolutionEffect only support Gaussian kernels and rename.
Brian Salomon [Tue, 24 Jan 2017 17:29:36 +0000 (12:29 -0500)]
Make GrConvolutionEffect only support Gaussian kernels and rename.

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

7 years agoRemove SkTDict and calls from SkView.
Herb Derby [Tue, 24 Jan 2017 16:44:52 +0000 (11:44 -0500)]
Remove SkTDict and calls from SkView.

R=reed@google.com

Change-Id: Iebfddf752a2ac210a3f5c69de8decd06d0c35617
Reviewed-on: https://skia-review.googlesource.com/7436
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoDo not embed glyph image data in SkGlyphCache.
Herb Derby [Tue, 24 Jan 2017 16:01:59 +0000 (11:01 -0500)]
Do not embed glyph image data in SkGlyphCache.

Instead of allocating memory for glyph images eagerly by embedding
the memory in the glyph cache, allocate memory dynamically on need.

TBR=bungeman@google.com

BUG=chromium:684366

Change-Id: If32bbc4d2608c976b93868feb519dcfa1212ce59
Reviewed-on: https://skia-review.googlesource.com/7433
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>

7 years agoconservativelyContainsRect is asserting
Mike Reed [Tue, 24 Jan 2017 15:12:53 +0000 (10:12 -0500)]
conservativelyContainsRect is asserting

BUG=skia:6156

Change-Id: Iea571f001e9a4c4e70313c1bd49fb4e3c598869a
Reviewed-on: https://skia-review.googlesource.com/7423
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoAdd F16 and gamma correct support to webp encoder
Matt Sarett [Tue, 24 Jan 2017 00:37:37 +0000 (19:37 -0500)]
Add F16 and gamma correct support to webp encoder

BUG=skia:

Change-Id: Ib788466fa1e2bed26e7ffd8f03bee42930eae1d6
Reviewed-on: https://skia-review.googlesource.com/7425
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
7 years agorestore bool version of clip-bounds
Mike Reed [Tue, 24 Jan 2017 14:13:40 +0000 (09:13 -0500)]
restore bool version of clip-bounds

BUG=skia:

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

7 years agoReenable index8 dsts
Matt Sarett [Mon, 23 Jan 2017 23:54:45 +0000 (18:54 -0500)]
Reenable index8 dsts

This is causing problems with image-cacherator-from-ctable gm.

In that gm, we use an index8->index8 readPixels() to take
a subset.

I think we need to keep this as long as we support index8 in the
generator/cacherator.  Though it's really strange because
we don't really bother to verify that color tables are the same
and we don't try to overwrite the dst color table...

BUG=skia:

Change-Id: Icf008caa571c4b81a52a23b8b7d9226789626ef5
Reviewed-on: https://skia-review.googlesource.com/7424
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoMake GrYUVEffect take GrTextureProxies
Robert Phillips [Mon, 23 Jan 2017 20:30:35 +0000 (15:30 -0500)]
Make GrYUVEffect take GrTextureProxies

This opens the door for swapping all the effects over to taking GrTextureProxies.

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

7 years agoUpdate SkAndroidSDKCanvas.
Mike Klein [Tue, 24 Jan 2017 02:41:46 +0000 (21:41 -0500)]
Update SkAndroidSDKCanvas.

Hope that's right... nothing but the Android roll builds this code.

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

7 years agoTemporarily restore colorcube bench and GM files.
Mike Klein [Tue, 24 Jan 2017 02:14:08 +0000 (21:14 -0500)]
Temporarily restore colorcube bench and GM files.

Just the usual... we don't generate .bp for DM or nanobench yet.

See https://skia-review.googlesource.com/c/7363/ and
https://googleplex-android-review.git.corp.google.com/#/c/1819530/-1..1

Change-Id: If0098ed8a71a170d5efa773495d5bbf02a1e13fc
Reviewed-on: https://skia-review.googlesource.com/7427
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoFix comparison that overflows for addresses near uint max.
Herb Derby [Mon, 23 Jan 2017 21:57:09 +0000 (16:57 -0500)]
Fix comparison that overflows for addresses near uint max.
- Fix Assert

TBR=mtklein@google.com
BUG=chromium:683578

Change-Id: Iba503d1febace367c71f79a3b9accc0ec3e50f11
Reviewed-on: https://skia-review.googlesource.com/7418
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>

7 years agomake SkPath::conservativelyContainsRect consume degenerate segments
Lee Salzman [Thu, 12 Jan 2017 18:06:21 +0000 (13:06 -0500)]
make SkPath::conservativelyContainsRect consume degenerate segments

BUG=skia:

Change-Id: I3a39318bceaf6c95a50d84961d93af4ba62550e3
Reviewed-on: https://skia-review.googlesource.com/6900
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agorename virtuals for clipbounds, and deprecate older bool/var-arg pattern
Mike Reed [Mon, 23 Jan 2017 19:09:13 +0000 (14:09 -0500)]
rename virtuals for clipbounds, and deprecate older bool/var-arg pattern

BUG=skia:

Change-Id: I08bcc2d0559e02838772538816b928e0716dd3aa
Reviewed-on: https://skia-review.googlesource.com/7412
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoRevert "Update libwebp to 0.6.0-pre"
Ethan Nicholas [Mon, 23 Jan 2017 20:47:36 +0000 (20:47 +0000)]
Revert "Update libwebp to 0.6.0-pre"

This reverts commit e2f6ffbf49671713356881af70a093e99e80bd31.

Reason for revert:

iOS build failures, see https://luci-milo.appspot.com/swarming/task/33e5e02cf8419d10/steps/build_iOSShell/0/stdout

Original change's description:
> Update libwebp to 0.6.0-pre
>
> Corresponds with Android change
> https://android-review.googlesource.com/#/c/326439/
>
> "this prerelease snapshot includes encoder and performance
> improvements"
>
> Update build file
> * Many files have been renamed from
>     src/<subdir>/<name>.c
>       to
>     src/<subdir>/<name>_<subdir>.c
>
> * Build new files (*_msa.c, *_neon.c, predictor_enc.c)
>
> This should fix issue 5876, which was caused by a compiler bug.
> With the added NEON implementation, we will no longer trigger
> the bug.
>
> BUG=skia:5876
>
> Change-Id: I0fcce4362ee70138547b1d23aa9ef537a4126e73
> Reviewed-on: https://skia-review.googlesource.com/7376
> Reviewed-by: Matt Sarett <msarett@google.com>
> Commit-Queue: Leon Scroggins <scroggo@google.com>
>

TBR=msarett@google.com,scroggo@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:5876

Change-Id: Ib81f63861d9f1c6936bd7f790b5e16a9544a4df0
Reviewed-on: https://skia-review.googlesource.com/7420
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agoUpdate libwebp to 0.6.0-pre
Leon Scroggins III [Mon, 23 Jan 2017 15:24:19 +0000 (10:24 -0500)]
Update libwebp to 0.6.0-pre

Corresponds with Android change
https://android-review.googlesource.com/#/c/326439/

"this prerelease snapshot includes encoder and performance
improvements"

Update build file
* Many files have been renamed from
    src/<subdir>/<name>.c
      to
    src/<subdir>/<name>_<subdir>.c

* Build new files (*_msa.c, *_neon.c, predictor_enc.c)

This should fix issue 5876, which was caused by a compiler bug.
With the added NEON implementation, we will no longer trigger
the bug.

BUG=skia:5876

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

7 years agoStop tracking whether GrFragmentProcessors read their input
Brian Salomon [Mon, 23 Jan 2017 19:35:25 +0000 (14:35 -0500)]
Stop tracking whether GrFragmentProcessors read their input

Change-Id: Id5338901978b97289798eaef873527597bd8dfd6
Reviewed-on: https://skia-review.googlesource.com/7414
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoMove shader register setup to SkRasterPipelineBlitter.
Mike Klein [Fri, 20 Jan 2017 20:11:54 +0000 (15:11 -0500)]
Move shader register setup to SkRasterPipelineBlitter.

We've been seeding the initial values of our registers to x+0.5,y+0.5,
1,0, 0,0,0,0 (useful values for shaders to start with) in all pipelines.
This CL changes that to do so only when blitting, and only when we have
a shader.

The nicest part of this change is that SkRasterPipeline itself no longer
needs to have a concept of y, or what x means.  It just marches x
through [x,x+n), and the blitter handles y and layers the meaning of
"dst x coordinate" onto x.

This ought to make SkSplicer a little easier to work with too.

dm --src gm --config f16 srgb 565 all draws the same.

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

7 years agoRevert "Fix comparison that overflows for addresses near uint max."
Ethan Nicholas [Mon, 23 Jan 2017 19:59:26 +0000 (19:59 +0000)]
Revert "Fix comparison that overflows for addresses near uint max."

This reverts commit db8b8376b09cec9656b0ab864413b7911d81a84c.

Reason for revert:

Assertion failure, see https://luci-milo.appspot.com/swarming/task/33e5ae4d2bb25210/steps/dm/0/stdout

Original change's description:
> Fix comparison that overflows for addresses near uint max.
>
> BUG=chromium:683578
>
> Change-Id: I3f9b79eeeba3c68cccb72bd6423811c8ff8f2067
> Reviewed-on: https://skia-review.googlesource.com/7410
> Commit-Queue: Herb Derby <herb@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
>

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

Change-Id: I198ea4c7209d060d0d15dfa3f6e555fa06e1a632
Reviewed-on: https://skia-review.googlesource.com/7415
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agoSkRasterPipeline: implement support for SkTableColorFilter
Mike Klein [Mon, 23 Jan 2017 19:06:55 +0000 (14:06 -0500)]
SkRasterPipeline: implement support for SkTableColorFilter

This adds and uses a byte_tables stage that converts to bytes, looks up
in the tables, then converts back to floats.

We treat this as color filter as pure math, not considering anything
colorspace related: no transfer functions, no gamut to change, etc.

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

7 years agoGN: add 32-bit and Release iOS builders.
Mike Klein [Mon, 23 Jan 2017 16:58:53 +0000 (11:58 -0500)]
GN: add 32-bit and Release iOS builders.

And roll recipes to the point where they pass target_cpu to GN,
adding x86_64 as an alias for x64.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-GN_iOS,Build-Mac-Clang-arm64-Release-GN_iOS,Build-Mac-Clang-arm-Debug-GN_iOS,Build-Mac-Clang-arm-Release-GN_iOS

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

7 years agoFix comparison that overflows for addresses near uint max.
Herb Derby [Mon, 23 Jan 2017 18:59:05 +0000 (13:59 -0500)]
Fix comparison that overflows for addresses near uint max.

BUG=chromium:683578

Change-Id: I3f9b79eeeba3c68cccb72bd6423811c8ff8f2067
Reviewed-on: https://skia-review.googlesource.com/7410
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoUpdate SkTDict to use SkArenaAlloc.
Herb Derby [Fri, 20 Jan 2017 21:58:06 +0000 (16:58 -0500)]
Update SkTDict to use SkArenaAlloc.

Change-Id: I7ac33faa59bcad25b0580193af965a8525eb18e7
Reviewed-on: https://skia-review.googlesource.com/7360
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoTrack clear counts in vulkan render passes
Greg Daniel [Mon, 23 Jan 2017 16:04:45 +0000 (11:04 -0500)]
Track clear counts in vulkan render passes

Though not required by spec, the validation layers have started spitting
out warnings if the clearValueCount in BeginRenderPass is greater than
the number of attachments actually being cleared. This just adds tracking
of the count to appease the validation layers.

BUG=skia:

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

7 years agoMake SkWEBPImageEncoder use transform_scanline_procs
Matt Sarett [Mon, 23 Jan 2017 17:28:02 +0000 (12:28 -0500)]
Make SkWEBPImageEncoder use transform_scanline_procs

This refactor will make it simple to add F16 and
GammaCorrect support to the webp encoder.

BUG=skia:

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

7 years agoReland "Refactor trimming logic for read/writePixels()"
Matt Sarett [Mon, 23 Jan 2017 17:15:09 +0000 (12:15 -0500)]
Reland "Refactor trimming logic for read/writePixels()"

Original CL: https://skia-review.googlesource.com/c/7326/

(1) Move trimming logic into Bitmap/Pixmap level for
    raster.  Everything goes through here, so we'll
    only do the work once.
(2) This means it also goes to GPU level.
(3) Always use SkReadPixelsRec rather than inlining
    the logic.
(4) Create an SkWritePixelsRec to encapsulate write
    trimming.
(5) Disabled kIndex8 as a dst - always.

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug

BUG=skia:6021

Change-Id: I25a964e3c610c4e36d195a255e2150657baec649
Reviewed-on: https://skia-review.googlesource.com/7404
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoSupport fCapHeight in SkScalerContext_DW
Koji Ishii [Sat, 21 Jan 2017 17:30:51 +0000 (02:30 +0900)]
Support fCapHeight in SkScalerContext_DW

BUG=chromium:681857

Change-Id: Ia97354d7798eb685351a98ff559bcf176a67af18
Reviewed-on: https://skia-review.googlesource.com/7380
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agochange clip-bounds getters to always return the rect
Mike Reed [Mon, 23 Jan 2017 16:39:45 +0000 (11:39 -0500)]
change clip-bounds getters to always return the rect
(actually fixes undefined result in getClipBounds)

future CLs
- update all callers to new apis
- move/rename virtuals

BUG=skia:

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

Change-Id: I45b93014e915c0d1c36d97d948c9ac8931f23258
Reviewed-on: https://skia-review.googlesource.com/7400
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoRemove public APIs that use SkDataTable.
Herb Derby [Fri, 20 Jan 2017 21:07:52 +0000 (16:07 -0500)]
Remove public APIs that use SkDataTable.

Change-Id: Ibb8f987efc585713a6f8061c72fb416d07be13b1
Reviewed-on: https://skia-review.googlesource.com/7352
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoFix autoroller instructions
Skia_Android Canary Bot [Mon, 23 Jan 2017 15:44:38 +0000 (10:44 -0500)]
Fix autoroller instructions

BUG=skia:6065

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=7377

Change-Id: Iefd6af3104f4aea2f2ae93c556b6b429e54ebff4
Reviewed-on: https://skia-review.googlesource.com/7377
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

7 years agoRevert "Refactor trimming logic for read/writePixels()"
Matt Sarett [Mon, 23 Jan 2017 15:51:01 +0000 (15:51 +0000)]
Revert "Refactor trimming logic for read/writePixels()"

This reverts commit 977f64cbfad1ecd7fd4b1231c694c7e828fda1f0.

Reason for revert: Triggering nanobench asserts

Original change's description:
> Refactor trimming logic for read/writePixels()
>
> (1) Move trimming logic into Bitmap/Pixmap level for
>     raster.  Everything goes through here, so we'll
>     only do the work once.
> (2) This means it also goes to GPU level.
> (3) Always use SkReadPixelsRec rather than inlining
>     the logic.
> (4) Create an SkWritePixelsRec to encapsulate write
>     trimming.
> (5) Disabled kIndex8 as a dst - always.
>
> BUG=skia:6021
>
> Change-Id: I748f50c3b726f7c6de5462e2b1ccb54bc387a510
> Reviewed-on: https://skia-review.googlesource.com/7326
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Matt Sarett <msarett@google.com>
>

TBR=msarett@google.com,brianosman@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6021

Change-Id: If9aacc6ce8b20e3dfe8a0f22ebca653f28356175
Reviewed-on: https://skia-review.googlesource.com/7379
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoAllow conversion from non-opaque to opaque
Matt Sarett [Mon, 23 Jan 2017 14:41:08 +0000 (09:41 -0500)]
Allow conversion from non-opaque to opaque

BUG:683787

Change-Id: I1b78cc8d1b5d3917a2a952da036b93022e99e053
Reviewed-on: https://skia-review.googlesource.com/7374
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoRevert "offset angle check edge in common"
Cary Clark [Mon, 23 Jan 2017 14:38:52 +0000 (14:38 +0000)]
Revert "offset angle check edge in common"

This reverts commit d2eb581ebc8f8009e80cccccd74d5b341ef5bd5b.

Reason for revert: broke Google3 MSAN run of dm

Original change's description:
> offset angle check edge in common
>
> When curves cross, their intersection points may be nearby, but not exactly the same.
> Sort the angles formed by the crossing curves when all angles don't have the same
> origin.
>
> This sets up the framework to solve test case that currently fail (e.g., joel6) but
> does not fix all related test cases (e.g., joel9).
>
> All older existing test cases, including extended tests, pass.
>
> Rework the test framework to better report when tests expected to produce failing
> results now pass.
>
> Add new point and vector operations to support offset angles.
>
> TBR=reed@google.com
> BUG=skia:6041
>
> Change-Id: I67c651ded0a25e99ad93d55d6a35109b3ee3698e
> Reviewed-on: https://skia-review.googlesource.com/6624
> Commit-Queue: Cary Clark <caryclark@google.com>
> Reviewed-by: Cary Clark <caryclark@google.com>
>

TBR=caryclark@google.com,reviews@skia.org
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=skia:6041

Change-Id: I43db0808522ac44aceeb4f70e296167ea84a3663
Reviewed-on: https://skia-review.googlesource.com/7373
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoGet rid of level of indirection, noticed by VC++ 2017 bug
Bruce Dawson [Sun, 22 Jan 2017 20:43:53 +0000 (12:43 -0800)]
Get rid of level of indirection, noticed by VC++ 2017 bug

When building Chrome with VC++ 2017 the QuickFDot6Inverse::table pointer
is initialized to zero. This is certainly a bug, and it has been
reported to the VC++ team. But, the table pointer appears to be
unnecessary. Changing the code to reference the array directly should
give identical or perhaps even better code.

The change to the array indexing code is as follows:

- return table[x];
+ gFDot6INVERSE[kInverseTableSize + x];

This looks like a step backwards, but it isn't. 'table' is a pointer.
So, by default the compiler will load this pointer and then load the
value from the array. gFDot6INVERSE is an array, not a pointer. This
means that the adding of kInverseTableSize is trivially done at
compile time, and there is no loading of a pointer - only one data
segment memory access is needed.

The compiler may have realized that this optimization was ready before,
but now it is more trivial. And, this works around the VC++ 2017 bug so
that Chrome with VC++ 2017 will launch.

https://connect.microsoft.com/VisualStudio/feedback/details/3119337
BUG=683729

Change-Id: Iad443b59a70af83b39260e244e3242e782fafdbb
Reviewed-on: https://skia-review.googlesource.com/7284
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoRefactor trimming logic for read/writePixels()
Matt Sarett [Fri, 20 Jan 2017 21:59:02 +0000 (16:59 -0500)]
Refactor trimming logic for read/writePixels()

(1) Move trimming logic into Bitmap/Pixmap level for
    raster.  Everything goes through here, so we'll
    only do the work once.
(2) This means it also goes to GPU level.
(3) Always use SkReadPixelsRec rather than inlining
    the logic.
(4) Create an SkWritePixelsRec to encapsulate write
    trimming.
(5) Disabled kIndex8 as a dst - always.

BUG=skia:6021

Change-Id: I748f50c3b726f7c6de5462e2b1ccb54bc387a510
Reviewed-on: https://skia-review.googlesource.com/7326
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoFix performance issue and compute intersections more often.
Yuqian Li [Thu, 19 Jan 2017 21:29:02 +0000 (16:29 -0500)]
Fix performance issue and compute intersections more often.

(This CL also turned on Analytic AA for concave paths by removing SK_SUPPORT_LEGACY_AAA flag.)

Performance:
The SK_ALWAYS_INLINE was restored because it could bring 30%-50% speedup
in certain convex cases (e.g., fill_big_triangle). We also have to
reduce the number of branchings in the concave code path to enable such
speedup. (Although the speedup is for convex cases. The assembly code is
so strange...)

Intersection:
Previously, the criterion is too loose and that caused some bad pixels
(mostly unnoticeable by human eyes without magnifying). For example,
pixel (198, 222) of
https://gold.skia.org/detail?test=parsedpaths&digest=979e81de6f7b3f9e7e8dc810e31cad8d

BUG=skia:

Change-Id: I5e8191865c3df625f895cd4588c67c283fcbeaec
Reviewed-on: https://skia-review.googlesource.com/7318
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoLook for GenerateMipMapEXT
Brian Salomon [Fri, 20 Jan 2017 21:34:15 +0000 (16:34 -0500)]
Look for GenerateMipMapEXT

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

7 years agoSkSplicer: favor 1.0f as a constant.
Mike Klein [Sat, 21 Jan 2017 00:16:10 +0000 (19:16 -0500)]
SkSplicer: favor 1.0f as a constant.

1.0f is the most commonly used constant, so we put it first in the
constant struct.  This usually cuts an instruction off loading it.

Change-Id: Ie54a9482aa3e90e9e5d8fcaa40dbd353af0fa1ca
Reviewed-on: https://skia-review.googlesource.com/7367
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRevert "Try /MTd on Debug Windows builds."
Mike Klein [Sat, 21 Jan 2017 15:35:10 +0000 (15:35 +0000)]
Revert "Try /MTd on Debug Windows builds."

This reverts commit 58ce2bc51a318e53e3e6f1ef297c5adc775b0fec.

Reason for revert: warnings / errors when building ANGLE.

Original change's description:
> Try /MTd on Debug Windows builds.
>
> The people clamor for it!  I doubt we'll care in our testing.
>
> BUG=skia:5928
>
> Change-Id: I80d3948fd1f5d0b956c308bc3a6183b8660575ae
> Reviewed-on: https://skia-review.googlesource.com/7364
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Ben Wagner <bungeman@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>
>

TBR=mtklein@chromium.org,bungeman@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:5928

Change-Id: Id6ab3de7ebb5394749233429bada2f5244ff2978
Reviewed-on: https://skia-review.googlesource.com/7372
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoSkSplicer: move armv7 ABI settings into build_stages.py.
Mike Klein [Sat, 21 Jan 2017 15:16:15 +0000 (10:16 -0500)]
SkSplicer: move armv7 ABI settings into build_stages.py.

This just tidies up the .cpp files a bit, and makes it easier to make
sure all exported functions use the aapcs-vfp callig convention, which
hard-float implies.

As a small simplification, fold -march=armv7-a into --target.

No generated code changes.

Change-Id: I2694970a6e48bd69c41dd280a44ddd0029e52ae8
Reviewed-on: https://skia-review.googlesource.com/7371
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoTry /MTd on Debug Windows builds.
Mike Klein [Fri, 20 Jan 2017 22:31:17 +0000 (17:31 -0500)]
Try /MTd on Debug Windows builds.

The people clamor for it!  I doubt we'll care in our testing.

BUG=skia:5928

Change-Id: I80d3948fd1f5d0b956c308bc3a6183b8660575ae
Reviewed-on: https://skia-review.googlesource.com/7364
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
7 years agomild tweaks to build_stages.py to run on my desktop
Mike Klein [Sat, 21 Jan 2017 00:24:10 +0000 (19:24 -0500)]
mild tweaks to build_stages.py to run on my desktop

Change-Id: Ie193e5bf576b8d3ddbd4c99d3707e3211557cc01
Reviewed-on: https://skia-review.googlesource.com/7368
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRemove SkColorCubeFilter. It is unused.
Mike Klein [Fri, 20 Jan 2017 22:25:34 +0000 (17:25 -0500)]
Remove SkColorCubeFilter.  It is unused.

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

7 years agominor cleanups in newly privatized device headers
Mike Reed [Sat, 21 Jan 2017 03:54:14 +0000 (22:54 -0500)]
minor cleanups in newly privatized device headers

BUG=skia:

Change-Id: Id6ebd54f404b5f0869d96368b98957ac10a2083f
NOTREECHECKS=True
Reviewed-on: https://skia-review.googlesource.com/7369
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoclipstack is now private
Mike Reed [Fri, 20 Jan 2017 22:11:11 +0000 (17:11 -0500)]
clipstack is now private

BUG=skia:

Change-Id: I91e601d59eb5d46de17c280898ca01fcfab89e5c
NOTREECHECKS=True
Reviewed-on: https://skia-review.googlesource.com/7362
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRemove SkImage::MakeTextureFromPixmap
Brian Osman [Fri, 20 Jan 2017 19:08:04 +0000 (14:08 -0500)]
Remove SkImage::MakeTextureFromPixmap

Another step towards reducing the number of texture upload paths.

BUG=skia:

Change-Id: Ica185e7334f52dc9ebf87e21fe6f60589ef87bb3
Reviewed-on: https://skia-review.googlesource.com/7346
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoReplace raster pipeline nextafter() calls with SkNu nudging
Florin Malita [Fri, 20 Jan 2017 19:53:03 +0000 (14:53 -0500)]
Replace raster pipeline nextafter() calls with SkNu nudging

(courtesy of mtklein@)

  nanobench -m gradient_linear_clamp\$ --config f16 --ms 2000 -q

Before: 753.66
After:  658.69

R=mtklein@google.com,herb@google.com

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ie1442da340f6cfc9aef65bec1f114c0e5db89fcb
Reviewed-on: https://skia-review.googlesource.com/7351
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoRevert "Revert "Make it possible to query GrXPFactory for dst texture without GrPipel...
Brian Salomon [Fri, 20 Jan 2017 19:06:29 +0000 (19:06 +0000)]
Revert "Revert "Make it possible to query GrXPFactory for dst texture without GrPipelineAnalysis.""

This reverts commit 3329cceab5feca230df1caee16be045249228dc1.

Reason for revert: Bot failures are unrelated to the original change.

Change-Id: I21b5927dc4384a25930bdefe16e57bcc9276ffa4
Reviewed-on: https://skia-review.googlesource.com/7347
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoForce Index8 to N32 in deferred texture path.
Brian Osman [Fri, 20 Jan 2017 18:21:56 +0000 (13:21 -0500)]
Force Index8 to N32 in deferred texture path.

Ganesh doesn't support Index8, because GPUs don't really
support it. So serializing it in the deferred blob just
meant doing an expansion before upload. This forces that
to happen when we build the blob. It also paves the way
for removing the last usage of MakeTextureFromPixmap,
which I'd like to remove.

BUG=skia:

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

7 years agoRevert "Make it possible to query GrXPFactory for dst texture without GrPipelineAnaly...
Brian Salomon [Fri, 20 Jan 2017 18:22:52 +0000 (18:22 +0000)]
Revert "Make it possible to query GrXPFactory for dst texture without GrPipelineAnalysis."

This reverts commit f833215420847565b4c9945aebdc2e7ae182937f.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Make it possible to query GrXPFactory for dst texture without GrPipelineAnalysis.
>
> Change-Id: I8c140eb4e3e5f2d21ecbf8f8f3c8533dc7f50e7c
> Reviewed-on: https://skia-review.googlesource.com/7316
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
>

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

Change-Id: I790afb9a01422cb4c2d3a4be4ecd20e8c4466b29
Reviewed-on: https://skia-review.googlesource.com/7342
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoContinue making Ganesh use absolute texture coordinates - take 2
Robert Phillips [Fri, 20 Jan 2017 17:44:06 +0000 (12:44 -0500)]
Continue making Ganesh use absolute texture coordinates - take 2

The idea here is that the GrCoordTransform will actually hold a GrTextureProxy (rather than a GrTexture) and then, in GrGLSLPrimitiveProcessor::GetTransformMatrix, use the instantiated width & height (when uploading the transform matrix)

Relanding of: https://skia-review.googlesource.com/c/6977/

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

7 years agoRemove unused struct.
Herb Derby [Fri, 20 Jan 2017 17:24:25 +0000 (12:24 -0500)]
Remove unused struct.

TBR=mtklein@google.com

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

7 years agoMove from SkChunkAlloc to SkArenaAlloc for SkGlyphCache.
Herb Derby [Fri, 20 Jan 2017 16:59:03 +0000 (11:59 -0500)]
Move from SkChunkAlloc to SkArenaAlloc for SkGlyphCache.

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

7 years agoJust clamp to limit-epsilon.
Mike Klein [Fri, 20 Jan 2017 16:45:01 +0000 (11:45 -0500)]
Just clamp to limit-epsilon.

I think the -0.5f was an implementation detail of Herb's bilerp that we
don't need here.  It happened to also be clamping us to something less
than limit (limit-0.5), so we do need to replace that with a little
nudge to keep us on tile.

Change-Id: I4ebd32e0ad38c724a17dc8bc35d9ea228eeeca32
Reviewed-on: https://skia-review.googlesource.com/7338
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agooffset angle check edge in common
Cary Clark [Wed, 18 Jan 2017 16:00:57 +0000 (11:00 -0500)]
offset angle check edge in common

When curves cross, their intersection points may be nearby, but not exactly the same.
Sort the angles formed by the crossing curves when all angles don't have the same
origin.

This sets up the framework to solve test case that currently fail (e.g., joel6) but
does not fix all related test cases (e.g., joel9).

All older existing test cases, including extended tests, pass.

Rework the test framework to better report when tests expected to produce failing
results now pass.

Add new point and vector operations to support offset angles.

TBR=reed@google.com
BUG=skia:6041

Change-Id: I67c651ded0a25e99ad93d55d6a35109b3ee3698e
Reviewed-on: https://skia-review.googlesource.com/6624
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoMake it possible to query GrXPFactory for dst texture without GrPipelineAnalysis.
Brian Salomon [Fri, 20 Jan 2017 16:30:37 +0000 (11:30 -0500)]
Make it possible to query GrXPFactory for dst texture without GrPipelineAnalysis.

Change-Id: I8c140eb4e3e5f2d21ecbf8f8f3c8533dc7f50e7c
Reviewed-on: https://skia-review.googlesource.com/7316
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoRemove GrTestTarget
Robert Phillips [Fri, 20 Jan 2017 14:11:37 +0000 (09:11 -0500)]
Remove GrTestTarget

Change-Id: I4d2e1aa54732ff75b44a197255035c0e04548219
Reviewed-on: https://skia-review.googlesource.com/7327
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoFix Vulkan crashes on nexus player
Greg Daniel [Fri, 20 Jan 2017 15:45:49 +0000 (10:45 -0500)]
Fix Vulkan crashes on nexus player

This CL enables Vulkan Test bots on the NexusPlayer

TBR:bsalomon@google.com
BUG=skia:

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

7 years agoStreamline x86 u8 -> fixed15 math.
Mike Klein [Fri, 20 Jan 2017 05:04:58 +0000 (00:04 -0500)]
Streamline x86 u8 -> fixed15 math.

We can use SSE's 16 bit mul-hi to get a very good approximation to the
ideal multiplier.  This lets us trim several instructions.

This removes the need for the constant 0x0001 and instead uses 0x8081.
I've reordered the constants so that 0x8000 comes first, which helps
trim an instruction here and there on ARM.

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

7 years agoRename GrContext::getFontAtlas to getFontAtlas_ForTesting
Robert Phillips [Fri, 20 Jan 2017 15:03:25 +0000 (10:03 -0500)]
Rename GrContext::getFontAtlas to getFontAtlas_ForTesting

A trivial change but it does better indicate the nature of the method

Change-Id: I44a0e77dba28df892f4200496d78797ed5fd37df
Reviewed-on: https://skia-review.googlesource.com/7331
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoSkSplicer stage parity
Mike Klein [Fri, 20 Jan 2017 03:29:09 +0000 (22:29 -0500)]
SkSplicer stage parity

I noticed scale_u8 is implemented in SkSplicer_stages but not _lowp.
That's not for any good reason... scale_u8 makes fine sense in _lowp.

All other stages missing in _lowp are nuts to attempt without floats.

This also renames the to_fixed15 lambdas to from_u8 functions.
Everything in the file converts to or from fixed15; the interesting
question is the other format.  Similarly, from_fixed15 becomes to_u8.

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

7 years agoRemove unused asACustomShader function from SkShader
Greg Daniel [Fri, 20 Jan 2017 14:37:24 +0000 (09:37 -0500)]
Remove unused asACustomShader function from SkShader

I recentely removed the only call site of this so it should be
safe to delete now.

BUG=skia:

Change-Id: Id7fa94b9af5d73c4f7bb5e5a657d6fc6728923b5
Reviewed-on: https://skia-review.googlesource.com/7330
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

7 years agoReplace some GrSurface:read/writePixels with the GrSurfaceContext equivalent
Robert Phillips [Thu, 19 Jan 2017 21:59:04 +0000 (16:59 -0500)]
Replace some GrSurface:read/writePixels with the GrSurfaceContext equivalent

Change-Id: I7b11a323b0c74ee70f52b1bd8be376fb7188cb19
Reviewed-on: https://skia-review.googlesource.com/7204
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agofix fuzz asserts triggered by old fuzzes
Cary Clark [Fri, 20 Jan 2017 13:14:33 +0000 (08:14 -0500)]
fix fuzz asserts triggered by old fuzzes

fuzz fixes

Fixes from running all pathops fuzz testson ToT.

R=kjlubick@google.com
BUG=skia:

Change-Id: Ic84b868a0cc53993e6561bc95fa364218bc3aa34
Reviewed-on: https://skia-review.googlesource.com/7325
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>

7 years agoMarker for IntelIris540 driver change.
Ben Wagner [Fri, 20 Jan 2017 14:28:56 +0000 (09:28 -0500)]
Marker for IntelIris540 driver change.

NOTRY=true
NOTREECHECKS=true
TBR=jcgregorio
BUG=skia:

Change-Id: Id26e5fae667035516df8802e8a328233412de94c
Reviewed-on: https://skia-review.googlesource.com/7328
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoSkRasterPipeline impl for 2-stop linear gradients
Florin Malita [Fri, 20 Jan 2017 13:41:34 +0000 (08:41 -0500)]
SkRasterPipeline impl for 2-stop linear gradients

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ia2b630cf9c0826fbfc3342707c005030d0529bbc
Reviewed-on: https://skia-review.googlesource.com/7186
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRevert "explictly fail to draw unpremul, as this is buggy, incomplete, tricky, and...
Joe Gregorio [Fri, 20 Jan 2017 14:21:27 +0000 (14:21 +0000)]
Revert "explictly fail to draw unpremul, as this is buggy, incomplete, tricky, and unused"

This reverts commit 1baaacac74d24604e3dfca9857fbd647df375997.

Reason for revert: Failing the roll: https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3868/layout-test-results/results.html

Original change's description:
> explictly fail to draw unpremul, as this is buggy, incomplete, tricky, and unused
>
> BUG=skia:
>
> Change-Id: Ie9da6015cc4955c0f27f6db53fc6ae532e0132f4
> Reviewed-on: https://skia-review.googlesource.com/7304
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Matt Sarett <msarett@google.com>
>

TBR=bsalomon@google.com,msarett@google.com,brianosman@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: Ifc808a430b8afe4fef6df3775c2bfdcede1a2dd7
Reviewed-on: https://skia-review.googlesource.com/7329
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>