platform/upstream/libSkiaSharp.git
7 years agoGrTessellator (AA): sorting and comparison performance improvements.
Stephen White [Thu, 23 Feb 2017 16:10:01 +0000 (11:10 -0500)]
GrTessellator (AA): sorting and comparison performance improvements.

Change comparison functions to perform the common case first (a.fX > b.fX),
and the uncommon case (a.fX == b.fX) after the short-circuit.

Change Comparator to switch on a direction enum instead of using function
pointers.

Inline sorted_merge() and front_back_split() into merge_sort(), and template
it on the comparator function, so it instantiates two versions. This
is even faster (but costs us some code bloat of course).

BUG=skia:

Change-Id: I45a2376492240ed7e0552ca2aed75e303e918bc6
Reviewed-on: https://skia-review.googlesource.com/8791
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>

7 years agoSkJumper: fill in AVX f16 stages, turn on AVX
Mike Klein [Thu, 23 Feb 2017 16:01:52 +0000 (11:01 -0500)]
SkJumper: fill in AVX f16 stages, turn on AVX

As far as I can tell, this draws identically to the SSE4.1 backend.

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

7 years agoBlacklist test on Vulkan Ubuntu Intel caused by driver bug
Greg Daniel [Thu, 23 Feb 2017 15:11:48 +0000 (10:11 -0500)]
Blacklist test on Vulkan Ubuntu Intel caused by driver bug

BUG=skia:6280

Change-Id: Ib8d0a8fe7ca2e0174daa209eac487027e833e6ec
Reviewed-on: https://skia-review.googlesource.com/8907
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

7 years agoMake shadow_utils GM use its own SkResourceCache
Brian Salomon [Thu, 23 Feb 2017 14:34:03 +0000 (09:34 -0500)]
Make shadow_utils GM use its own SkResourceCache

This should stabilize the replay testing on the bots.

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

7 years agoRevert "skslc switch support"
Ethan Nicholas [Thu, 23 Feb 2017 16:18:54 +0000 (16:18 +0000)]
Revert "skslc switch support"

This reverts commit 2b1e468dabd2ac7bea7ec17740275f4f4aad30c3.

Reason for revert: bot breakage

Original change's description:
> skslc switch support
>
> BUG=skia:
>
> Change-Id: Ida7f9e80139aa1e4f43804cafbcac640e47fab25
> Reviewed-on: https://skia-review.googlesource.com/8771
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
>

TBR=benjaminwagner@google.com,ethannicholas@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: Iaaa35d10a15704279c6883d4d68f6d4ad5078320
Reviewed-on: https://skia-review.googlesource.com/8792
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

7 years agoDo not throw away the savelayer if kDontClipToLayer_PrivateSaveLayerFlag is set
Yuqian Li [Thu, 23 Feb 2017 15:28:33 +0000 (10:28 -0500)]
Do not throw away the savelayer if kDontClipToLayer_PrivateSaveLayerFlag is set

This affects the Android CTS test
android.uirendering.cts.testclasses.LayerTests#testSaveLayerUnclippedWithAlpha

BUG=skia:

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

7 years agoMove around GL dependencies.
Mike Klein [Thu, 23 Feb 2017 15:31:13 +0000 (10:31 -0500)]
Move around GL dependencies.

  :gpu gets GL and GLU
  :gpu_tool_utils gets X11
  :views gets GL and X11

{shared,static}x{gpu,no-gpu} all seem to link.
May not be perfect, but it's a start.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-GCC-x86_64-Debug-NoGPU,Build-Ubuntu-GCC-x86_64-Release-Shared

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

7 years agoremove no longer used links from directory
Heather Miller [Thu, 23 Feb 2017 16:04:00 +0000 (11:04 -0500)]
remove no longer used links from directory

BUG=skia:

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

Change-Id: I8497764cf12c0a0df96ea559f0595365d76252a3
Reviewed-on: https://skia-review.googlesource.com/8914
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoskslc switch support
Ethan Nicholas [Wed, 22 Feb 2017 22:20:11 +0000 (17:20 -0500)]
skslc switch support

BUG=skia:

Change-Id: Ida7f9e80139aa1e4f43804cafbcac640e47fab25
Reviewed-on: https://skia-review.googlesource.com/8771
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
7 years agoIn Vulkan make sure resolve is sent to GPU when preparing msaa RenderTarget for exter...
Greg Daniel [Thu, 23 Feb 2017 14:44:02 +0000 (09:44 -0500)]
In Vulkan make sure resolve is sent to GPU when preparing msaa RenderTarget for external IO

In GrDrawingManager, when preparing for I/O we first flush the GPU then call resolve. However,
in Vulkan the resolve lives in a command buffer that needs to be flushed to the GPU as well.

This is most likely the cause we were seeing in Viewer app where first frame was always black
since the actually resolve command buffer was not flushed to the gpu before presenting. All
future frames would then typically show one frame behind.

BUG=skia:

Change-Id: Iaf492f88680b998be0087637279cc78d5a38ec50
Reviewed-on: https://skia-review.googlesource.com/8903
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoSwitch GrTextureStripAtlas over to GrTextureProxies
Robert Phillips [Wed, 22 Feb 2017 20:28:38 +0000 (15:28 -0500)]
Switch GrTextureStripAtlas over to GrTextureProxies

This is split out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors)

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

7 years agoRevert "Revert "Revert[2] "hide deprecated underline and strikethru"""
Mike Reed [Thu, 23 Feb 2017 14:19:35 +0000 (14:19 +0000)]
Revert "Revert "Revert[2] "hide deprecated underline and strikethru"""

This reverts commit cfd3d9ff8f370e3a4a53e2aba84dc4d682501f4c.

Reason for revert: derek is fixing caller

Original change's description:
> Revert "Revert[2] "hide deprecated underline and strikethru""
>
> This reverts commit aab68c56ef8fc88b0d1536f99aa1cc9ae7a0573a.
>
> Reason for revert: android still broken RecordingCanvasTests.cpp
>
> Original change's description:
> > Revert[2] "hide deprecated underline and strikethru"
> >
> > android now updated.
> >
> > This reverts commit e005edd3a5deb602beec59f59cdc8b14d3764d58.
> >
> > BUG=skia:6250
> >
> > Change-Id: If08d344cdd863fde1d9955dc3fab671a83be0f73
> > Reviewed-on: https://skia-review.googlesource.com/8815
> > Commit-Queue: Mike Reed <reed@google.com>
> > Reviewed-by: Mike Reed <reed@google.com>
> >
>
> TBR=reed@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:6250
>
> Change-Id: I954575a0e4b9aca8414e10901a7be03a2d7e6396
> Reviewed-on: https://skia-review.googlesource.com/8900
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

TBR=reviews@skia.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6250

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

7 years agoRevert "Revert[2] "hide deprecated underline and strikethru""
Mike Reed [Thu, 23 Feb 2017 14:06:12 +0000 (14:06 +0000)]
Revert "Revert[2] "hide deprecated underline and strikethru""

This reverts commit aab68c56ef8fc88b0d1536f99aa1cc9ae7a0573a.

Reason for revert: android still broken RecordingCanvasTests.cpp

Original change's description:
> Revert[2] "hide deprecated underline and strikethru"
>
> android now updated.
>
> This reverts commit e005edd3a5deb602beec59f59cdc8b14d3764d58.
>
> BUG=skia:6250
>
> Change-Id: If08d344cdd863fde1d9955dc3fab671a83be0f73
> Reviewed-on: https://skia-review.googlesource.com/8815
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
>

TBR=reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6250

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

7 years agoMake GrPipeline::CreateAt take GrRenderTarget and not GrRenderTargetContext
Brian Salomon [Wed, 22 Feb 2017 16:52:36 +0000 (11:52 -0500)]
Make GrPipeline::CreateAt take GrRenderTarget and not GrRenderTargetContext

This is needed in order to create pipelines at flush time.

Change-Id: I0bcd64d503d45c3383dbb932b048e2d7faa07c67
Reviewed-on: https://skia-review.googlesource.com/8849
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoSkJumper: reformat .S files
Mike Klein [Thu, 23 Feb 2017 13:38:31 +0000 (08:38 -0500)]
SkJumper: reformat .S files

Decimal byte encoding makes more horizontal space for comments,
which are the only thing you really want to read.

No code change here.

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

7 years agoAdd AVX to the SkJumper mix.
Mike Klein [Thu, 23 Feb 2017 13:04:49 +0000 (08:04 -0500)]
Add AVX to the SkJumper mix.

AVX is a nice little halfway point between SSE4.1 and HSW, in terms
of instructions available, performance, and availability.

Intel chips have had AVX since ~2011, compared to ~2013 for HSW and
~2007 for SSE4.1.  Like HSW it's got 8-wide 256-bit float vectors,
but integer (and double) operations are essentially still only 128-bit.
It also doesn't have F16 conversion or FMA instructions.

It doesn't look like this is going to be a burden to maintain, and only
adds a few KB of code size.  In exchange, we now run 8x wide on 45% to
70% of x86 machines, depending on the OS.

In my brief testing, speed eerily resembles exact geometric progression:
   SSE4.1:        1x speed (baseline)
      AVX: ~sqrt(2)x speed
      HSW:       ~2x speed

This adds all the basic plumbing for AVX but leaves it disabled.
I'll flip it on once I've implemented the f16 TODOs.

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

7 years agoRevert "removed flags for g3"
Mike Reed [Thu, 23 Feb 2017 04:42:14 +0000 (04:42 +0000)]
Revert "removed flags for g3"

This reverts commit 319ca08ba27d4582d716ce21b290eeb3f997394e.

Reason for revert: missed some callers (drawARGB at least)

Original change's description:
> removed flags for g3
>
> BUG=skia:
>
> Change-Id: I2b1f748c23f2a5cd8d25f5f74f175f0d3beec75d
> Reviewed-on: https://skia-review.googlesource.com/8896
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

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

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

7 years agoremoved flags for g3
Mike Reed [Thu, 23 Feb 2017 02:33:26 +0000 (21:33 -0500)]
removed flags for g3

BUG=skia:

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

7 years agoabstract access to device-clip-bounds
Mike Reed [Wed, 22 Feb 2017 20:21:35 +0000 (15:21 -0500)]
abstract access to device-clip-bounds

apply this to GpuDevice. Should allow us to switch to per-device-clipping
with minimal change (since we've abstracted how the device sees its
clip-bounds.)

BUG=skia:

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

7 years agoSkPDF: stop using RasterClip for drawAnnotation()
Hal Canary [Wed, 22 Feb 2017 20:55:06 +0000 (15:55 -0500)]
SkPDF: stop using RasterClip for drawAnnotation()

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

7 years agoSkPDF: do not use SkRegion in populateGraphicStateEntryFromPaint()
Hal Canary [Wed, 22 Feb 2017 21:32:34 +0000 (16:32 -0500)]
SkPDF: do not use SkRegion in populateGraphicStateEntryFromPaint()

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

7 years agoDon't include GrContextFactory.h from SkCommonFlagsPathRenderer.h
csmartdalton [Wed, 22 Feb 2017 21:29:48 +0000 (14:29 -0700)]
Don't include GrContextFactory.h from SkCommonFlagsPathRenderer.h

BUG=skia:

Change-Id: Ied4d23120cd21542314c45369597f375ca8affcf
Reviewed-on: https://skia-review.googlesource.com/8788
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoUse uintptr_t for masking ptrs.
Herb Derby [Wed, 22 Feb 2017 21:01:27 +0000 (16:01 -0500)]
Use uintptr_t for masking ptrs.

TBR=mtklein@google.com

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

7 years agoRevert[2] "hide deprecated underline and strikethru"
Mike Reed [Wed, 22 Feb 2017 20:51:27 +0000 (15:51 -0500)]
Revert[2] "hide deprecated underline and strikethru"

android now updated.

This reverts commit e005edd3a5deb602beec59f59cdc8b14d3764d58.

BUG=skia:6250

Change-Id: If08d344cdd863fde1d9955dc3fab671a83be0f73
Reviewed-on: https://skia-review.googlesource.com/8815
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoActually test our ref-counting in release builds
Brian Osman [Wed, 22 Feb 2017 20:37:45 +0000 (15:37 -0500)]
Actually test our ref-counting in release builds

BUG=skia:

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

7 years agoViewer: balance save/restores and draw offscreen to window in src mode
Brian Salomon [Wed, 22 Feb 2017 20:21:11 +0000 (15:21 -0500)]
Viewer: balance save/restores and draw offscreen to window in src mode

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

7 years agoSkPDF: use RasterClip and Region less.
Hal Canary [Wed, 22 Feb 2017 15:45:25 +0000 (10:45 -0500)]
SkPDF: use RasterClip and Region less.

  * GraphicStackState::updateClip() uses device bounds, not region bounds
  * SkPDFDevice::handleInversePath() uses clipstack, not rasterclip

Rendered PDF Changes: unnoticable.

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

7 years agoCheck for bounds intersection when batching MSAAPathOps
Jim Van Verth [Wed, 22 Feb 2017 19:50:52 +0000 (14:50 -0500)]
Check for bounds intersection when batching MSAAPathOps

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

7 years agoAdd the ability to enable/disable GPU path renderers
csmartdalton [Wed, 22 Feb 2017 19:00:42 +0000 (12:00 -0700)]
Add the ability to enable/disable GPU path renderers

Adds a bitfield to GrContextOptions that masks out path renderers.
Adds commandline flags support to set this bitfield in tools apps.
Removes GrGLInterfaceRemoveNVPR since we can now accomplish the same
thing in the context options.

BUG=skia:

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

7 years agoFix SkSemaphore comments.
Mike Klein [Wed, 22 Feb 2017 19:33:12 +0000 (14:33 -0500)]
Fix SkSemaphore comments.

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

7 years agoSkJumper: add mode to help prioritize porting
Mike Klein [Wed, 22 Feb 2017 19:04:38 +0000 (14:04 -0500)]
SkJumper: add mode to help prioritize porting

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

7 years agoSkJumper: set_rgb and swap_rb
Mike Klein [Wed, 22 Feb 2017 19:17:32 +0000 (14:17 -0500)]
SkJumper: set_rgb and swap_rb

swap_rb is a big limiting factor on Windows and Linux.
set_rgb just happened to be nearby and easy.

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

7 years agoUpdate endRecordingAsPicture to finishRecordingAsPicture
Yuqian Li [Wed, 22 Feb 2017 18:12:30 +0000 (13:12 -0500)]
Update endRecordingAsPicture to finishRecordingAsPicture

BUG=skia:

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

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

7 years agoMake GrPipelineAnalysis a nested class of GrProcessorSet.
Brian Salomon [Wed, 22 Feb 2017 16:52:03 +0000 (11:52 -0500)]
Make GrPipelineAnalysis a nested class of GrProcessorSet.

It is renamed to FragmentProcessorAnalysis since it represents the outputs of the final FPs.

It now stores the analysis results that are subsequently needed rather than exposing GrProcOptInfo.

GrProcOptInfo is now only used on color FPs (not coverage).

Miscellaneous related renamings.

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

7 years agohide trivial helpers on canvas
Mike Reed [Wed, 22 Feb 2017 18:21:42 +0000 (13:21 -0500)]
hide trivial helpers on canvas

BUG=skia:

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

7 years agoSkJumper: implement lerp_u8
Mike Klein [Wed, 22 Feb 2017 18:52:40 +0000 (13:52 -0500)]
SkJumper: implement lerp_u8

Going to start filling these in in biggest-bang-for-the-buck order.
lerp_u8 (i.e. text drawing) is number 1 right now.

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

7 years agoAttempt to stabilize shadow_utils GM for replay configs
Brian Salomon [Wed, 22 Feb 2017 18:49:09 +0000 (13:49 -0500)]
Attempt to stabilize shadow_utils GM for replay configs

Change-Id: I0ed15ab102fa1e0a364d5f3a953bedd8afbda3c3
Reviewed-on: https://skia-review.googlesource.com/8853
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoEnable legacy premuls in SkColorSpaceXform
Matt Sarett [Wed, 22 Feb 2017 18:02:31 +0000 (13:02 -0500)]
Enable legacy premuls in SkColorSpaceXform

***Will allow for simplified Android framework code, they typically
   want a color correct transform followed by a gamma encoded premul.
***Chrome does the same, so this will make it easier to replace their
   codecs.
***Will decrease code size.  Both types of premuls are moved off the
   fast path here - one is essentially unused in production and the
   other is not "encouraged".
***Will actually make the common case faster: sRGB->sRGB means no
   color xform, just premul in SkSwizzler.

BUG=skia:

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

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

7 years agoSwitch SkTaskGroup to std::atomic.
Mike Klein [Wed, 22 Feb 2017 18:00:33 +0000 (13:00 -0500)]
Switch SkTaskGroup to std::atomic.

No interesting change, just getting on std APIs.

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

7 years agofix typo in SkTaskGroup.h
Mike Klein [Wed, 22 Feb 2017 17:49:29 +0000 (12:49 -0500)]
fix typo in SkTaskGroup.h

This was meant to stay -1 (num_cores() threads) not to become 1 (1 thread).

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

7 years agoAdd new GMs to stress rendering of many circles and rrects
Jim Van Verth [Tue, 21 Feb 2017 22:55:13 +0000 (17:55 -0500)]
Add new GMs to stress rendering of many circles and rrects

Change-Id: I060419bc39484b379329a1691e199d9d3db9c808
Reviewed-on: https://skia-review.googlesource.com/8807
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoremove device field from SkDraw
Mike Reed [Wed, 22 Feb 2017 16:01:08 +0000 (11:01 -0500)]
remove device field from SkDraw

BUG=skia:6214

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

7 years agoSkClipStack: add bounds() and isEmpty() methods
Hal Canary [Tue, 7 Feb 2017 21:58:28 +0000 (16:58 -0500)]
SkClipStack: add bounds() and isEmpty() methods

Also: update some of SkPDF to use these rather than the RasterClip.

Change-Id: I5a2564d2269c145135df6a8eda65ab05e4aeaf14
Reviewed-on: https://skia-review.googlesource.com/8159
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoSkExecutor
Mike Klein [Wed, 22 Feb 2017 03:53:16 +0000 (22:53 -0500)]
SkExecutor

Refactoring to refamiliarize myself with SkTaskGroup and SkThreadPool.

This adds an SkExecutor interface to describe how we use SkThreadPool,
with a global setter and getter for a default instance.  Then I rewrote
SkTaskGroup to work with any executor, the global default by default.

I also think I've made the SkTaskGroup::wait() borrow logic clearer
with the addition of SkSemaphore::try_wait().  This lets me keep the
semaphore count and actual count of work in perfect sync.

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

7 years agoFold MSAN awareness into SkJumper.cpp.
Mike Klein [Tue, 21 Feb 2017 23:50:51 +0000 (18:50 -0500)]
Fold MSAN awareness into SkJumper.cpp.

This is preparation for removing skia_enable_jumper, making it true.

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

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

7 years agoReland "CQ config: add gerrit CQAbility verifier."
Andrii Shyshkalov [Mon, 20 Feb 2017 10:34:35 +0000 (10:34 +0000)]
Reland "CQ config: add gerrit CQAbility verifier."

This reverts commit 02241e976b34c8bc4b2d4add2f0c881d8a8d2bc1.

Reason for revert: cq proto has been rolled to depot_tools.

Original change's description:
> Revert "CQ config: add gerrit CQAbility verifier."
>
> This reverts commit 04628221324eb2e5b329a8fd9c69196ea9acb43c.
>
> Reason for revert: Lets revert until the proto is rolled into Skia.
>
> Original change's description:
> > CQ config: add gerrit CQAbility verifier.
> >
> > Goal is to ensure that unreviewed and untrusted code isn't sent through
> > CQ to try bots, by accident or through malicious intent.
> >
> > R=​rmistry@google.com
> > BUG=chromium:692613
> > NOTRY=True
> >
> > Change-Id: I750be91895f5b77229b8f4a22216f00eaa75f7a0
> > Reviewed-on: https://skia-review.googlesource.com/8620
> > Reviewed-by: Ravi Mistry <rmistry@google.com>
> > Commit-Queue: Ravi Mistry <rmistry@google.com>
> >
>
> TBR=rmistry@google.com,reviews@skia.org,tandrii@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:692613
>
> Change-Id: I6d4b821b2a02ef3e097cf68cd8ebfb2b51d4d165
> Reviewed-on: https://skia-review.googlesource.com/8663
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Commit-Queue: Ravi Mistry <rmistry@google.com>
>

R=rmistry@google.com,reviews@skia.org,tandrii@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
BUG=chromium:692613

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

7 years agoRemove GrPipelineBuilder.cpp
Brian Salomon [Tue, 21 Feb 2017 21:54:27 +0000 (16:54 -0500)]
Remove GrPipelineBuilder.cpp

Change-Id: I14c26f2967e4722fa4d6ce4664a5857add0cf854
Reviewed-on: https://skia-review.googlesource.com/8822
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoGrTessellator: misc. cleanups and minor tweaks.
Stephen White [Tue, 21 Feb 2017 20:24:13 +0000 (15:24 -0500)]
GrTessellator: misc. cleanups and minor tweaks.

Invert some math to remove a negation.

Don't keep a persistent count in EdgeList; we'll test for degenerate
boundaries in boundary_to_aa_mesh().

Make connect() use the top/bottom ordering that new_edge has already
done for us.

Don't add the an edge to the same poly twice when it's easily detectable.

Remove some superfluous variables and intialization.

BUG=skia:

Change-Id: I0efd9ec385d6dfec8950b7acfc6dd25572f667b5
Reviewed-on: https://skia-review.googlesource.com/8784
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>

7 years agoRemove special build for Valgrind.
Ben Wagner [Wed, 22 Feb 2017 00:27:07 +0000 (19:27 -0500)]
Remove special build for Valgrind.

Valgrind uses the unmodified binary. See skia:6267.

BUG=skia:6267

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

7 years agoFix tasks.json after crossed CLs.
Ben Wagner [Wed, 22 Feb 2017 15:04:20 +0000 (10:04 -0500)]
Fix tasks.json after crossed CLs.

These two CLs caused failure on Housekeeper-PerCommit-InfraTests:
https://skia-review.googlesource.com/8839
https://skia-review.googlesource.com/8805

NOTRY=true

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

7 years agoSkJumper: remove TODO.
Mike Klein [Tue, 21 Feb 2017 22:59:03 +0000 (17:59 -0500)]
SkJumper: remove TODO.

Starting with uninitialized vectors is only minorly faster (<0.5%).
I'd rather keep the zeroes and feel warm and fuzzy.

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

7 years agoAdd eGPU jobs.
Ben Wagner [Tue, 21 Feb 2017 20:15:55 +0000 (15:15 -0500)]
Add eGPU jobs.

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

7 years agoFix Mesa compile
Brian Osman [Wed, 22 Feb 2017 13:48:10 +0000 (08:48 -0500)]
Fix Mesa compile

BUG=skia:

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

7 years agoSkRegion: change serialization unit tests, better validation code
Hal Canary [Mon, 20 Feb 2017 03:16:10 +0000 (22:16 -0500)]
SkRegion: change serialization unit tests, better validation code

Also: Don't alloc before validation.

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

7 years agoDo not retry test or perf tasks
Eric Boren [Wed, 22 Feb 2017 13:36:03 +0000 (08:36 -0500)]
Do not retry test or perf tasks

BUG=skia:

Change-Id: I153978a92420eb2c39024213ebcdf95d1b8bde30
Reviewed-on: https://skia-review.googlesource.com/8839
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoWhitespace change to test new submit strategy II
Ravi Mistry [Wed, 22 Feb 2017 13:57:06 +0000 (08:57 -0500)]
Whitespace change to test new submit strategy II

BUG=skia:
NOTRY=true

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

7 years agoWhitespace change to test new submit strategy I
Ravi Mistry [Wed, 22 Feb 2017 13:56:52 +0000 (08:56 -0500)]
Whitespace change to test new submit strategy I

BUG=skia:
NOTRY=true

Change-Id: I9a20af0c57d98f86794d6ce6f37ee8200fe8e088
Reviewed-on: https://skia-review.googlesource.com/8840
Reviewed-by: Ravi Mistry <rmistry@google.com>
7 years agoWhitespace change to test new submit strategy II
Ravi Mistry [Wed, 22 Feb 2017 13:29:26 +0000 (08:29 -0500)]
Whitespace change to test new submit strategy II

BUG=skia:
NOTRY=true

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

7 years agoSupport shared GL contexts in GrContextFactory
Brian Osman [Tue, 21 Feb 2017 21:58:08 +0000 (16:58 -0500)]
Support shared GL contexts in GrContextFactory

Mostly plumbing, plus some minimal testing to make sure that
the platform APIs don't explode. I plan to add testing of
SkCrossContextImageData using this, which should verify that
textures are actually shared.

Also found a factory and some related code in the
CommandBuffer test context that was totally unused.
BUG=skia:

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

7 years agoremove guard for SkImageGenerator api
Mike Reed [Wed, 22 Feb 2017 03:48:21 +0000 (22:48 -0500)]
remove guard for SkImageGenerator api

BUG=skia:

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

7 years agoexpore flags for text decoration into android-specific reserved bits
Mike Reed [Tue, 21 Feb 2017 20:07:44 +0000 (15:07 -0500)]
expore flags for text decoration into android-specific reserved bits

BUG=skia:6250

precursor to https://skia-review.googlesource.com/c/8815/

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

7 years agoSkConvertPixels: Add Alpha8 fast path
Matt Sarett [Tue, 21 Feb 2017 23:28:48 +0000 (18:28 -0500)]
SkConvertPixels: Add Alpha8 fast path

BUG:692936

Change-Id: I8394554764b1f46bd8eaabb0194d52f361d477c1
Reviewed-on: https://skia-review.googlesource.com/8826
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoSplit Valgrind jobs -- one DM/NB run per task.
Ben Wagner [Wed, 22 Feb 2017 00:10:24 +0000 (19:10 -0500)]
Split Valgrind jobs -- one DM/NB run per task.

Reland of https://skia-review.googlesource.com/c/8723/1

BUG=skia:2789
NOTRY=true

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

7 years agoRevert "Split Valgrind jobs -- one DM/NB run per task."
Ben Wagner [Tue, 21 Feb 2017 23:56:42 +0000 (23:56 +0000)]
Revert "Split Valgrind jobs -- one DM/NB run per task."

This reverts commit bc9cd524d8ce8fd61ff6e49fa2a6e2a26a069874.

Reason for revert: Unable to find Valgrind binary.

Original change's description:
> Split Valgrind jobs -- one DM/NB run per task.
>
> Remove special build for Valgrind -- Valgrind uses the unmodified binary. See skia:6267.
>
> BUG=skia:2789,skia:6267
>
> Change-Id: Id56c460abf36eb2be633ac3a309e0dbc7a278f41
> Reviewed-on: https://skia-review.googlesource.com/8723
> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,borenet@google.com,mtklein@google.com,benjaminwagner@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:2789,skia:6267

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

7 years agoOmit encode-platform on N5 for all configs.
Ben Wagner [Tue, 21 Feb 2017 23:17:15 +0000 (18:17 -0500)]
Omit encode-platform on N5 for all configs.

BUG=skia:5876

Change-Id: Icfd000638290418870df857722317c62cb6942d9
Reviewed-on: https://skia-review.googlesource.com/8827
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoWhoops, forgot to re-run build_stages.
Mike Klein [Tue, 21 Feb 2017 22:57:50 +0000 (17:57 -0500)]
Whoops, forgot to re-run build_stages.

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

7 years agoSplit Valgrind jobs -- one DM/NB run per task.
Ben Wagner [Tue, 21 Feb 2017 22:36:57 +0000 (17:36 -0500)]
Split Valgrind jobs -- one DM/NB run per task.

Remove special build for Valgrind -- Valgrind uses the unmodified binary. See skia:6267.

BUG=skia:2789,skia:6267

Change-Id: Id56c460abf36eb2be633ac3a309e0dbc7a278f41
Reviewed-on: https://skia-review.googlesource.com/8723
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agofixed SPIR-V vector equality tests
Ethan Nicholas [Tue, 21 Feb 2017 18:50:00 +0000 (13:50 -0500)]
fixed SPIR-V vector equality tests

BUG=skia:

Change-Id: I6ae597d16c0bd17ce4c0316e7ef65cd52643f4b7
Reviewed-on: https://skia-review.googlesource.com/8804
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

7 years agoMove looping logic into start_pipeline().
Mike Klein [Tue, 21 Feb 2017 21:50:52 +0000 (16:50 -0500)]
Move looping logic into start_pipeline().

This should be a big win on Windows, but I haven't timed there yet.
On my Mac, it's a solid 2% speedup.

PS1 was insufficiently ambitious, but was this for posterity:
    No need to vzeroupper twice on Windows.

    On Windows start_pipeline() will vzeroupper,
    so no need to do it in just_return().

Change-Id: I099320b95da85900a60ce96fdb7a216a36db1858
Reviewed-on: https://skia-review.googlesource.com/8821
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoPrint GL shader source with line numbers when there is a compile error
csmartdalton [Fri, 17 Feb 2017 21:52:48 +0000 (14:52 -0700)]
Print GL shader source with line numbers when there is a compile error

BUG=skia:

Change-Id: I06bad4aacf5992d8207881f59f20615479536481
Reviewed-on: https://skia-review.googlesource.com/8562
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>

7 years agoMake GrXferProcessor and related classes private.
Brian Salomon [Tue, 21 Feb 2017 21:32:20 +0000 (16:32 -0500)]
Make GrXferProcessor and related classes private.

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

7 years agoMake sure fuzzer can't pick an illegal colortype
Kevin Lubick [Tue, 21 Feb 2017 21:06:19 +0000 (16:06 -0500)]
Make sure fuzzer can't pick an illegal colortype

BUG=skia:6216

Change-Id: Ifb0a0a1e634bb291c586d2094401ec10349dcd0e
Reviewed-on: https://skia-review.googlesource.com/8817
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>

7 years agoRemove SkSpecialImage's GrTexture-based ctors
Robert Phillips [Tue, 21 Feb 2017 15:19:29 +0000 (10:19 -0500)]
Remove SkSpecialImage's GrTexture-based ctors

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

7 years agoRename GrContextFactory::ContextOptions to ContextOverrides
csmartdalton [Tue, 21 Feb 2017 19:36:05 +0000 (12:36 -0700)]
Rename GrContextFactory::ContextOptions to ContextOverrides

Also changes the behavior of these flags to only override their
corresponding context options when set, and to leave them unchanged
when not set.

BUG=skia:

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

7 years agoFix ComposeOneFragmentProcessor coverage as alpha optimization.
Brian Salomon [Tue, 21 Feb 2017 19:19:07 +0000 (14:19 -0500)]
Fix ComposeOneFragmentProcessor coverage as alpha optimization.

It should only be advertised if the child also advertises it.

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

7 years agoSkPath.readFromMemory: check for error case
Hal Canary [Tue, 21 Feb 2017 19:18:01 +0000 (14:18 -0500)]
SkPath.readFromMemory:  check for error case

Fuzzing can produce inconsistant data, such as flags or bounds.

Also, use std::unique_ptr to reduce the need for calling `delete`.

BUG=skia:6262
BUG=skia:6263
Change-Id: I1de6b5f764cda346bb3cd5cd4698816b6b68f395
Reviewed-on: https://skia-review.googlesource.com/8812
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoClamp gradient colors in fragment shader after interpolation when there is a color...
Brian Salomon [Tue, 21 Feb 2017 19:35:11 +0000 (14:35 -0500)]
Clamp gradient colors in fragment shader after interpolation when there is a color space.

This matches what is done in the LUT texture case.

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

7 years agoSkJumper: Windows
Mike Klein [Tue, 21 Feb 2017 17:13:44 +0000 (12:13 -0500)]
SkJumper: Windows

    - Compile stages with -DWIN to pick up MS-specific start_pipeline().
    - Add SkJumper_generated_win.S with MS-specific assembly.
    - Add a minimal asm tool to our GN Windows toolchain.

The SkRasterPipeline_f16 benchmark run ~4x faster on my desktop.

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

7 years agoGrTessellator (AA): implement fast path for removing non-boundary edges.
Stephen White [Tue, 21 Feb 2017 15:35:49 +0000 (10:35 -0500)]
GrTessellator (AA): implement fast path for removing non-boundary edges.

Instead of using a full tessellate() pass, which allocates Polys,
MonotonePolys, etc. It's faster to simply accumulate the winding number
in the left-adjacent edge, and use that to remove non-boundary edges
(edges for which apply_fill_type() returns the same value on either
side of the edge).

This gives ~4-5% boost on MotionMark Fill Shapes.

Change-Id: I66bd4248ace01a8c35abd99519f4c455f936e5e5
Reviewed-on: https://skia-review.googlesource.com/8782
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>

7 years agoinitial clean up of pdf clipping
Mike Reed [Tue, 21 Feb 2017 18:54:30 +0000 (13:54 -0500)]
initial clean up of pdf clipping

clipstack is always available, canvas checks for empty clips up-front

Next step is to clarify if PDF wants to use Regions or Clipstack for its clipping (but not both)

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

7 years agoAdd GrTFlagsMask<> wrapper for C++11 bitfield enums
csmartdalton [Mon, 20 Feb 2017 06:51:45 +0000 (23:51 -0700)]
Add GrTFlagsMask<> wrapper for C++11 bitfield enums

Previously, operator& for enum class bitfields was reserved only to
return a bool. e.g:

  if (flags & Flags::kFlag)

This change adds a new template class GrTFlagsMask<> that gets
instantiated by operator~ and allows us to write expressions like:

  flags &= ~Flags::kFlag
  (flags & ~Flags::kFlag1) | Flags::kFlag2

BUG=skia:

Change-Id: I21e5eb9304135e82cdda459e8a833a3489f6beaf
Reviewed-on: https://skia-review.googlesource.com/8563
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoUpdate milestone schedule on skia.org
Heather Miller [Tue, 21 Feb 2017 19:01:34 +0000 (14:01 -0500)]
Update milestone schedule on skia.org

BUG=skia:

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

Change-Id: Ic46ee37e90f90ebf6826cf5ead18bfd5ed75817a
Reviewed-on: https://skia-review.googlesource.com/8809
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agomove PDFDevice over to cipstackdevice
Mike Reed [Tue, 21 Feb 2017 18:15:07 +0000 (13:15 -0500)]
move PDFDevice over to cipstackdevice

BUG=skia:6214

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

7 years agoRemove unneeded is_fuzzing flag
Kevin Lubick [Tue, 21 Feb 2017 17:39:57 +0000 (12:39 -0500)]
Remove unneeded is_fuzzing flag

BUG=skia:6260

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

7 years agoAdd machine_type dimension to disambiguate bots with GTX960.
Ben Wagner [Sun, 19 Feb 2017 04:28:26 +0000 (23:28 -0500)]
Add machine_type dimension to disambiguate bots with GTX960.

BUG=skia:

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

7 years agoSimplify GrPaint::isConstantBlendedColor to avoid FP analysis and XP virtual calls
Brian Salomon [Tue, 21 Feb 2017 16:31:40 +0000 (11:31 -0500)]
Simplify GrPaint::isConstantBlendedColor to avoid FP analysis and XP virtual calls

This was the only non-test user of GrXPFactory::isConstantPreCoverageBlendedColor which is now removed.

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

7 years agoImprove SkCanvas::temporary_internal_getRgnClip performance
Stan Iliev [Tue, 21 Feb 2017 16:15:53 +0000 (11:15 -0500)]
Improve SkCanvas::temporary_internal_getRgnClip performance

Improve temporary_internal_getRgnClip performance for rect clips
by avoiding SkClipStack::asPath.

BUG=skia:

Change-Id: I371ac6031df325646841d57c4afaba7b835a12bb
Reviewed-on: https://skia-review.googlesource.com/8688
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoPrefer EllipseOp instead of DIEllipseOp
Stan Iliev [Tue, 21 Feb 2017 16:06:16 +0000 (11:06 -0500)]
Prefer EllipseOp instead of DIEllipseOp

Prefer EllipseOp instead of DIEllipseOp, which improves the
performance.

BUG=skia:

Change-Id: I607c21326b44a80e0586c577349452a9c369488f
Reviewed-on: https://skia-review.googlesource.com/8690
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
7 years agoRemove GrProcessorTestData's GrTextures
Robert Phillips [Tue, 21 Feb 2017 15:04:31 +0000 (10:04 -0500)]
Remove GrProcessorTestData's GrTextures

(No longer) Blocked on: https://skia-review.googlesource.com/c/8450/ (Remove asTextureRef from SkSpecialImage & update effects accordingly (take 2))

This also (unfortunately) picks up a few straggling effects that didn't have a sk_sp<GrTextureProxy> factory.

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

7 years agoMove declaration of is_fuzzer to where it is used
Ravi Mistry [Tue, 21 Feb 2017 15:50:13 +0000 (10:50 -0500)]
Move declaration of is_fuzzer to where it is used

BUG=skia:6260

Change-Id: Iaca4fb1afb4d182f4d2ae64d939729363a226ce6
Reviewed-on: https://skia-review.googlesource.com/8772
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

7 years agoStore GrRenderTarget rather than just its ID in GrRenderTargetOpList::RecordedOp.
Brian Salomon [Tue, 21 Feb 2017 14:49:20 +0000 (09:49 -0500)]
Store GrRenderTarget rather than just its ID in GrRenderTargetOpList::RecordedOp.

This will allow us to feed the op's their render target when they don't have a pipeline before execution.

Change-Id: I01f16bec32e930c0152105a9179306159cb14dc4
Reviewed-on: https://skia-review.googlesource.com/8693
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoClean up DFs for extremely small paths
Jim Van Verth [Fri, 17 Feb 2017 19:02:13 +0000 (14:02 -0500)]
Clean up DFs for extremely small paths

BUG=skia:6255

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

7 years agoRoll recipe DEPS again
Eric Boren [Tue, 21 Feb 2017 14:43:05 +0000 (09:43 -0500)]
Roll recipe DEPS again

This time with coverage bypass

BUG=skia:

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

7 years agoDraw path onto a canvas when fuzzing
Kevin Lubick [Tue, 21 Feb 2017 14:37:48 +0000 (09:37 -0500)]
Draw path onto a canvas when fuzzing

BUG=skia:
NOTRY=true
TBR=jcgregorio@google.com

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

7 years agoRoll recipe DEPS
Eric Boren [Tue, 21 Feb 2017 12:22:20 +0000 (07:22 -0500)]
Roll recipe DEPS

Attempt 2. Lots of fixes due to upstream breaks.

BUG=skia:

Change-Id: Ie05b2da1790fbcce5c45ef09c4c832e09de6b5c5
Reviewed-on: https://skia-review.googlesource.com/8762
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoUpdate Valgrind match-leak-kinds for keep-alive thread.
Mike Klein [Tue, 21 Feb 2017 13:12:09 +0000 (08:12 -0500)]
Update Valgrind match-leak-kinds for keep-alive thread.

Valgrind has tipped over from seeing the keep-alive thread as possibly
leaked to seeing it as definitely leaked.  We can suppress both.

An alternative here is "all" or to just remove the line.  For the moment
I think this is best, as we're still excluding indirect leaks this way.
I'd want to think a bit whether it made sense for the keep-alive thread
to indirectly leak anything, so I'd like it to fail if it comes up.

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

7 years agoStream logs in symbolized dm/nanobench
Kevin Lubick [Mon, 20 Feb 2017 13:48:35 +0000 (08:48 -0500)]
Stream logs in symbolized dm/nanobench

BUG=skia:

Change-Id: I693bec4daa819f3c7802aa54f452b47f228b370b
Reviewed-on: https://skia-review.googlesource.com/8673
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>

7 years agoBlacklisting scaled_tilemodes_npot on GalaxyTab3
Kevin Lubick [Tue, 21 Feb 2017 12:58:16 +0000 (07:58 -0500)]
Blacklisting scaled_tilemodes_npot on GalaxyTab3

It now fails after a few minutes instead of timing
out after 4 hours, so that's an improvement.

BUG=skia:

Change-Id: I3e9319711953a5dad7898eea507cd4d83db7842d
Reviewed-on: https://skia-review.googlesource.com/8729
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoWrite SkRegion fuzzer
Kevin Lubick [Mon, 20 Feb 2017 22:47:18 +0000 (17:47 -0500)]
Write SkRegion fuzzer

BUG=688987

Change-Id: I2ad1c53ea01185a77b662d2d86b0c6d36fcb63c7
Reviewed-on: https://skia-review.googlesource.com/8499
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
7 years agoRemove asTextureRef from SkSpecialImage & update effects accordingly (take 2)
Robert Phillips [Sun, 19 Feb 2017 17:27:01 +0000 (12:27 -0500)]
Remove asTextureRef from SkSpecialImage & update effects accordingly (take 2)

This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef

This is a reland of: https://skia-review.googlesource.com/c/7995/ (Remove asTextureRef from SkSpecialImage & update effects accordingly)

It should be good to land since https://skia-review.googlesource.com/c/8701/ (Replace SkSpecialImage::makeTightSubset with asImage (take 2)) fixes the Chrome-side issue

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