Commit Graph

15680 Commits

Author SHA1 Message Date
Mike Klein
8a7dc29572 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>
2017-02-22 15:08:15 +00:00
Hal Canary
58a1ea8d54 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>
2017-02-22 14:08:28 +00:00
Brian Osman
60c774db3e 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>
2017-02-22 13:32:56 +00:00
Mike Reed
22eb2f1aa0 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>
2017-02-22 04:31:18 +00:00
Matt Sarett
973ca80f07 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>
2017-02-22 00:29:27 +00:00
Mike Klein
5a3c948fe5 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>
2017-02-21 23:45:49 +00:00
Ethan Nicholas
ef653b86b2 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>
2017-02-21 22:56:00 +00:00
Mike Klein
9ef63754a7 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>
2017-02-21 22:52:13 +00:00
csmartdalton
c663953504 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>
2017-02-21 22:50:57 +00:00
Brian Salomon
94cce4cb2c 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>
2017-02-21 22:27:17 +00:00
Robert Phillips
2c6d2bfced 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>
2017-02-21 21:50:27 +00:00
Brian Salomon
e026511f4c 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>
2017-02-21 21:43:29 +00:00
Hal Canary
709b025346 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>
2017-02-21 21:23:48 +00:00
Brian Salomon
c5ca7f955b 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>
2017-02-21 20:17:01 +00:00
Mike Klein
ed1b9022b3 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>
2017-02-21 19:48:19 +00:00
Stephen White
497890630b 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>
2017-02-21 19:40:02 +00:00
Mike Reed
afcd2e1398 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>
2017-02-21 19:35:15 +00:00
Mike Reed
f0fb92985c 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>
2017-02-21 18:54:12 +00:00
Brian Salomon
00b2cca300 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>
2017-02-21 18:29:37 +00:00
Stan Iliev
4eabd5d88a 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>
2017-02-21 16:57:24 +00:00
Stan Iliev
eb868aa3a2 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>
2017-02-21 16:42:22 +00:00
Robert Phillips
dbc8eeb592 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>
2017-02-21 16:34:11 +00:00
Brian Salomon
cdcc33f7d6 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>
2017-02-21 15:42:53 +00:00
Jim Van Verth
25b8ca1ee7 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>
2017-02-21 15:31:56 +00:00
Kevin Lubick
edee1ae9e3 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>
2017-02-20 23:18:58 +00:00
Robert Phillips
8e1c4e6725 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>
2017-02-20 19:21:53 +00:00
Robert Phillips
a5fdc974a9 Replace SkSpecialImage::makeTightSubset with asImage (take 2)
This is a reland of https://skia-review.googlesource.com/c/8498/ (Replace SkSpecialImage::makeTightSubset with asImage)

It must wait on https://codereview.chromium.org/2702703002/ (Add suppressions for upcoming Skia DEPS roll) due to minor layout test changes

This should allow the relanding of:

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

Change-Id: I7086a419869dbeb62d9b9e9714c796d54e75ee49
Reviewed-on: https://skia-review.googlesource.com/8701
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-18 23:26:20 +00:00
Robert Phillips
6f9f7ebb74 Expand use of GrMakeCachedBitmapProxy (take 2)
Reland of https://skia-review.googlesource.com/c/8666/ (Expand use of GrMakeCachedBitmapProxy) with a fix for the non-GPU build

Change-Id: I91d1658139b895b94e04d3f486e56b76bc6d184a
Reviewed-on: https://skia-review.googlesource.com/8700
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-18 20:55:51 +00:00
Hal Canary
251bf3e089 SkRegion deserialization more robust
BUG=chromium:688987
Change-Id: Ide6d70330c8cd1fce814eb2c445da1fbff498ef6
Reviewed-on: https://skia-review.googlesource.com/8496
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2017-02-18 13:34:30 +00:00
Mike Klein
16fcb230cc SkJumper: aarch64 and armv7
Change-Id: Ie356b062372af3516a437d27bafa20d98e28edd6
Reviewed-on: https://skia-review.googlesource.com/8678
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-18 13:31:44 +00:00
Brian Salomon
7fc4a2d2f0 Fix -Wshadow-field warning in class NullInterface
This warning fires in a tip of tree clang build because the base class to NullInterface also has a field called fExtensions.

Change-Id: I5e2a901583ae223a85d562f2d8b082e4d0cbf690
Reviewed-on: https://skia-review.googlesource.com/8691
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-18 02:18:28 +00:00
Mike Reed
f67c45994d add ViaSVG to dm
BUG=skia:

Change-Id: I52892a0dd466bee6e3abcaa89a373b93493d201f
Reviewed-on: https://skia-review.googlesource.com/8682
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-02-17 22:49:59 +00:00
Leon Scroggins
e005edd3a5 Revert "hide deprecated underline and strikethru"
This reverts commit a01bf9ab74.

Reason for revert: Breaking Android merge. They access setUnderlineText on their <shudder> subclass of SkPaint.

Original change's description:
> hide deprecated underline and strikethru
> 
> BUG=skia:6250
> 
> Change-Id: I85395e4960b16ab91237a74ff35e5b7588965512
> Reviewed-on: https://skia-review.googlesource.com/8600
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
> 

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

Change-Id: If55f69f061dc4439ca2faa62807a9c5694ebbeb4
Reviewed-on: https://skia-review.googlesource.com/8687
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-02-17 22:49:03 +00:00
Ethan Nicholas
52cad15d0b sksl support for geometry shaders
BUG=skia:

Change-Id: I8541b98aadcf4c2484fef73e2f49be3ee38bc1e2
Reviewed-on: https://skia-review.googlesource.com/8409
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-17 22:00:23 +00:00
Mike Klein
c12551c1f3 SkJumper: Linux
Just need to take care to match C symbols with asm symbols.  Linux
doesn't add the leading underscore automatically like Mac and Windows.

Change-Id: I488cdfec942b442554ffefdfd006a1305ad77d9d
Reviewed-on: https://skia-review.googlesource.com/8667
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-17 21:14:00 +00:00
Mike Reed
c5e641cc99 use common intermediate device class for clipstack management
BUG=skia:6214

Change-Id: I64b849ad7c8dafe423e24e6fccfb3f0c1d096ab0
Reviewed-on: https://skia-review.googlesource.com/8669
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-02-17 21:03:43 +00:00
Robert Phillips
eae7524c59 Revert "Expand use of GrMakeCachedBitmapProxy"
This reverts commit 561d1f8153.

Reason for revert: ios-device-xcode-clang

Original change's description:
> Expand use of GrMakeCachedBitmapProxy
> 
> Change-Id: Ic276b9d772763dc16ac6b15a0896578d2d02e06e
> Reviewed-on: https://skia-review.googlesource.com/8666
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

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

Change-Id: I5349cfea983cb65c11b5c250e674a841b9691c40
Reviewed-on: https://skia-review.googlesource.com/8677
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-17 20:19:04 +00:00
Herb Derby
25272096bd Make mask uintptr_t when calculating alignment.
A suggestion from from the code review on cl/7614.

TBR=mtklein@google.com

Change-Id: Icfbe08bfe63ac1e21ed56481dc5251c2af5bb96a
Reviewed-on: https://skia-review.googlesource.com/8674
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-17 19:38:56 +00:00
Robert Phillips
561d1f8153 Expand use of GrMakeCachedBitmapProxy
Change-Id: Ic276b9d772763dc16ac6b15a0896578d2d02e06e
Reviewed-on: https://skia-review.googlesource.com/8666
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-17 19:15:51 +00:00
Florin Malita
ef0a15b164 Fix TAP ASAN failure.
The current SkFixed3232 pinning logic in SkClampRange is not safe:
SkFixed3232ToFloat(SkFixed3232Max) and SkFixed3232ToFloat(SkFixed3232Min)
are not exactly representable in float, so they are not good SkTPin
limits.

Use the next representable float value towards zero.  Constants computed
with nextafterf(..., 0).

Change-Id: I8e2eb35b22f65077e8ce6055d670d90d2a163bae
Reviewed-on: https://skia-review.googlesource.com/8662
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-17 18:47:30 +00:00
Ben Wagner
7d07d46638 Revert "Add SkTypeface::getVariationDesignPosition."
This reverts commit 87e7f820f7.

Reason for revert: Failed a test on Mac

Original change's description:
> Add SkTypeface::getVariationDesignPosition.
> 
> Allow users to query a typeface's position in variation design space.
> 
> Change-Id: I5d80c8ff658708a5d1aa386ec5b7396dcb621198
> Reviewed-on: https://skia-review.googlesource.com/7130
> Commit-Queue: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> 

TBR=bungeman@google.com,reed@google.com,reviews@skia.org,drott@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ia65792083642dbe9333a62eb75d162931b57cffd
Reviewed-on: https://skia-review.googlesource.com/8670
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-02-17 18:39:09 +00:00
Ben Wagner
87e7f820f7 Add SkTypeface::getVariationDesignPosition.
Allow users to query a typeface's position in variation design space.

Change-Id: I5d80c8ff658708a5d1aa386ec5b7396dcb621198
Reviewed-on: https://skia-review.googlesource.com/7130
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-17 18:05:47 +00:00
Mike Klein
86125483f9 Revert "Revert "Take missed opportunity: memset for A8.""
This reverts commit 2028625f9b.

Reason for revert: not the reason for broken roll.

Original change's description:
> Revert "Take missed opportunity: memset for A8."
> 
> This reverts commit 9cee33e631.
> 
> Reason for revert: Chrome roll?
> 
> Original change's description:
> > Take missed opportunity: memset for A8.
> > 
> > Just recently noticed we weren't doing this.
> > It seems to be triggering all the time.
> > 
> > Draws the same of course.
> > 
> > Change-Id: Ie3d869a05194a5d52d635643eba1c96c8a21ce67
> > Reviewed-on: https://skia-review.googlesource.com/8471
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Mike Klein <mtklein@chromium.org>
> > 
> 
> TBR=mtklein@chromium.org,msarett@google.com,reed@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: I26a3f2b1a9ae9093180e9c5cc61094b239377c17
> Reviewed-on: https://skia-review.googlesource.com/8606
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> 

TBR=mtklein@chromium.org,msarett@google.com,reed@google.com
NOPRESUBMIT=true

Change-Id: Ib14360c6669abf9dd0c5bd152773b314d094fe72
Reviewed-on: https://skia-review.googlesource.com/8617
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-17 17:46:43 +00:00
Herb Derby
1bf3fc74b0 Switch from size_t to uint32_t to represent constraints better.
TBR=mtklein@google.com

Change-Id: Ib7400f2a3e2af0d8976998e5857c4d2c9cb6dbd0
Reviewed-on: https://skia-review.googlesource.com/7614
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-17 17:36:35 +00:00
Mike Reed
a01bf9ab74 hide deprecated underline and strikethru
BUG=skia:6250

Change-Id: I85395e4960b16ab91237a74ff35e5b7588965512
Reviewed-on: https://skia-review.googlesource.com/8600
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-17 17:31:33 +00:00
Mike Klein
d1fe9522e3 SkJumper: start on asm
Will follow up with Linux, then Android aarch64 and armv7, then iOS, then Windows.

I took some opportunities to refactor.

CQ_INCLUDE_trybots=skia.primary:Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug,Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug

Change-Id: Ifcf1edabdfe5df0a91bd089f09523aba95cdf5ef
Reviewed-on: https://skia-review.googlesource.com/8611
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-17 17:29:25 +00:00
csmartdalton
2e777ead12 Add a workaround for platforms with broken geo shader invocations
BUG=skia:

Change-Id: I9105b65b522d9ffac5a90ca7126bfd4ae88f8069
Reviewed-on: https://skia-review.googlesource.com/8422
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-17 17:29:23 +00:00
Robert Phillips
e14349a754 Revert "Replace SkSpecialImage::makeTightSubset with asImage"
This reverts commit 5df6db15dc.

Reason for revert: Possibly blocking Chrome DEPS roll

Original change's description:
> Replace SkSpecialImage::makeTightSubset with asImage
> 
> This should allow the relanding of:
> 
> https://skia-review.googlesource.com/c/8450/ (Remove asTextureRef from SkSpecialImage & update effects accordingly (take 2))
> 
> Change-Id: I517af11036e3f44a280bbe6b9275f6c38f4a86a4
> Reviewed-on: https://skia-review.googlesource.com/8498
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

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

Change-Id: Ib5bebda78b2323e65a73504a61af918872ad231f
Reviewed-on: https://skia-review.googlesource.com/8607
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-17 13:29:00 +00:00
Mike Klein
2028625f9b Revert "Take missed opportunity: memset for A8."
This reverts commit 9cee33e631.

Reason for revert: Chrome roll?

Original change's description:
> Take missed opportunity: memset for A8.
> 
> Just recently noticed we weren't doing this.
> It seems to be triggering all the time.
> 
> Draws the same of course.
> 
> Change-Id: Ie3d869a05194a5d52d635643eba1c96c8a21ce67
> Reviewed-on: https://skia-review.googlesource.com/8471
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> 

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

Change-Id: I26a3f2b1a9ae9093180e9c5cc61094b239377c17
Reviewed-on: https://skia-review.googlesource.com/8606
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-17 12:48:42 +00:00
Florin Malita
f614ba2ddc Fix drawVertices() texture mapping in the presence of a local matrix
Change-Id: I6379f2e7c030d7d1e0fcb2bd6ecc7d81c8a4eec5
Reviewed-on: https://skia-review.googlesource.com/8502
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-02-17 03:45:02 +00:00
csmartdalton
1d2aed0398 Check for GL_EXT_geometry_shader on ES
BUG=skia:

Change-Id: If4f13af35679c048253c6c513a74e79be808dd74
Reviewed-on: https://skia-review.googlesource.com/8466
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-17 02:37:01 +00:00
Stephen White
11f65e0bb4 GrTessellator (AA): Performance tweaks and cleanup.
The SkArenaAlloc destructor was showing up as hot in profiling,
especially on Linux.  The reason is that it was being used
incorrectly: the size estimate was being used as the chunk size. It
turns out that the best performance seems to be achieved with no
initial allocations and a fixed chunk size of 16K, as the CPU path
renderer does.

Also remove some unused code.

(This is a partial re-land of https://skia-review.googlesource.com/c/8560/)

TBR=bsalomon@google.com

Change-Id: I277eb1a6e5718a221974cd694c8a7e481e432ca6
Reviewed-on: https://skia-review.googlesource.com/8561
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-02-17 00:34:34 +00:00
Ben Wagner
dab4811661 Revert "GrTessellator (AA): Performance tweaks and cleanup."
This reverts commit e595bbfba6.

Reason for revert: Breaking roll into Chromium.

virtual/gpu/fast/canvas/canvas-arc-circumference-fill.html
virtual/gpu/fast/canvas/canvas-ellipse-circumference-fill.html

https://build.chromium.org/p/tryserver.blink/builders/linux_trusty_blink_rel/builds/5170

https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/5170/layout-test-results/results.html


Original change's description:
> GrTessellator (AA): Performance tweaks and cleanup.
> 
> The SkArenaAlloc destructor was showing up as hot in profiling,
> especially on Linux.  The reason is that it was being used
> incorrectly: the size estimate was being used as the chunk size. It
> turns out that the best performance seems to be achieved with no
> initial allocations and a fixed chunk size of 16K, as the CPU path
> renderer does.
> 
> Also, allocate the bisectors used for edge inversions on the
> stack, not the heap. And remove some unused code.
> 
> BUG=skia:
> 
> Change-Id: I754531c753c9e602713bf2c8bb5a0eaf174bb962
> Reviewed-on: https://skia-review.googlesource.com/8560
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Stephen White <senorblanco@chromium.org>
> 

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

Change-Id: I3cf6495c7345b6e6a79c2cb3a21dc6df0eed122f
Reviewed-on: https://skia-review.googlesource.com/8605
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-02-16 22:28:14 +00:00
Robert Phillips
5df6db15dc Replace SkSpecialImage::makeTightSubset with asImage
This should allow the relanding of:

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

Change-Id: I517af11036e3f44a280bbe6b9275f6c38f4a86a4
Reviewed-on: https://skia-review.googlesource.com/8498
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-16 21:40:32 +00:00
Jim Van Verth
dc0cae19b4 Let DFPathRenderer accept smaller paths.
BUG=chromium:682918

Change-Id: Ib5f935a92f967354be696fb24ba874f3602ebdb4
Reviewed-on: https://skia-review.googlesource.com/8601
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-16 21:08:32 +00:00
Ethan Nicholas
50afc17655 Fixed a couple of spots where sksl didn't have proper array support.
vec2 x[3] worked, but vec2[3] x didn't. Interface blocks also did
not work with array sizes.

BUG=skia:

Change-Id: I45b424891db46804f1e3c1f4793470b7b501a6de
Reviewed-on: https://skia-review.googlesource.com/8523
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
2017-02-16 20:27:43 +00:00
Mike Reed
d519d48494 add device-clipping to gpudevice
BUG=skia:

Change-Id: Id8c8994d4bddf591e1205ed9d591f4fce7d3af99
Reviewed-on: https://skia-review.googlesource.com/8531
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-16 19:49:37 +00:00
Stephen White
e595bbfba6 GrTessellator (AA): Performance tweaks and cleanup.
The SkArenaAlloc destructor was showing up as hot in profiling,
especially on Linux.  The reason is that it was being used
incorrectly: the size estimate was being used as the chunk size. It
turns out that the best performance seems to be achieved with no
initial allocations and a fixed chunk size of 16K, as the CPU path
renderer does.

Also, allocate the bisectors used for edge inversions on the
stack, not the heap. And remove some unused code.

BUG=skia:

Change-Id: I754531c753c9e602713bf2c8bb5a0eaf174bb962
Reviewed-on: https://skia-review.googlesource.com/8560
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-02-16 19:44:13 +00:00
Mike Reed
ea91b11872 remove code for TextDecorations
BUG=skia:6250

Change-Id: I8c67c69017e0514b09f4583f5f2f9d16dec4f830
Reviewed-on: https://skia-review.googlesource.com/8497
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-16 19:34:36 +00:00
Hal Canary
7ad8793898 SkPDF/font subsetting: Use new version of SfntlyWrapper::SubsetFont
Change-Id: Ib4bddcedb09b50556e8e1f02926c443870f46a09
Reviewed-on: https://skia-review.googlesource.com/8544
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-02-16 18:49:15 +00:00
Mike Klein
78594b26dd SkJumper: everyone gets a start_pipeline().
Windows needs this as a shim to switch to the System V ABI and back.

Other platforms need it too, if only to make UBSAN happy about calling
functions through the correct function pointers.

One day maybe we can move the looping logic inside start_pipeline?

Change-Id: I47d9ef48752becc6c43fc052b12a540c157bcaaa
Reviewed-on: https://skia-review.googlesource.com/8542
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-16 18:38:49 +00:00
Mike Klein
9cee33e631 Take missed opportunity: memset for A8.
Just recently noticed we weren't doing this.
It seems to be triggering all the time.

Draws the same of course.

Change-Id: Ie3d869a05194a5d52d635643eba1c96c8a21ce67
Reviewed-on: https://skia-review.googlesource.com/8471
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-16 17:11:02 +00:00
Mike Klein
b8d5275a3f SkJumper: fma() -> mad()
mad (Multiply-anD-Add) conveys the desired behavior better than fma...
we don't particularly care about the fusedness of the mad, only that
we're doing the fastest multiply-add available.

This also avoids conflicts with fma() that may be defined in <math.h>.

Change-Id: I9298ce9ff6c6aa5b7798ac446eea248ab035625f
Reviewed-on: https://skia-review.googlesource.com/8543
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-16 15:59:49 +00:00
Jim Van Verth
d25cc9b548 Fix DistanceFieldPathRenderer assert.
If there's a reflection in the matrix, the scales
could be negative.

BUG=chromium:682918

Change-Id: Ifde42c3bc8b1f2938009b47d3a8380cf871448e9
Reviewed-on: https://skia-review.googlesource.com/8541
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-16 15:37:53 +00:00
Mike Klein
b8702deab1 SkJumper: make some room for wider instructions.
No real change here.

Change-Id: I56449c292585038901d78902e6aeb68203e36351
Reviewed-on: https://skia-review.googlesource.com/8476
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-16 14:40:40 +00:00
Matt Sarett
5444446b75 Use non-linear color spaces for Android decode outputs
BUG=skia:

Change-Id: Ic4bce28f4bc45f73cbfcacc3630140d11fa9c41f
Reviewed-on: https://skia-review.googlesource.com/8530
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-16 14:23:40 +00:00
Jim Van Verth
f9e678d696 Use SDF path miplevels based on the original path's size
Should produce sharper results than arbitrary fixed sizes.
Adds a new test to pathfill GM.

Was: https://skia-review.googlesource.com/c/8328/

BUG=chromium:682918, skia:6238

Change-Id: Ia62ea5ce6b4a5ac2b8b51d06d57dc951d6c340b8
Reviewed-on: https://skia-review.googlesource.com/8384
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-16 13:35:20 +00:00
Mike Klein
fa64774820 Flush to zero when loading f16 with sse2/sse4.1.
The multiply by 0x77800000 is quite slow when the input is denormalized.
We don't mind flushing those values (in the range of 1e-5) to zero.

Implement portable load_f16() / store_f16() too.

Change-Id: I125cff1c79ca71d9abe22ac7877136d86707cb56
Reviewed-on: https://skia-review.googlesource.com/8467
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-16 12:54:04 +00:00
Mike Klein
8729e5bbf7 Simplify more: remove SkRasterPipeline::compile().
It's easier to work on SkJumper if everything funnels through run().

I don't anticipate huge benefit from compile() without JITing,
but it's something we can always put back if we find a need.

Change-Id: Id5256fd21495e8195cad1924dbad81856416d913
Reviewed-on: https://skia-review.googlesource.com/8468
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-16 12:23:06 +00:00
Dominic Mazzoni
394d414452 Implement SkHighContrastFilter
This is a color filter to apply several contrast adjustments for users
with low vision, including inverting the colors (in either RGB or HSL
space), applying gamma correction, converting to grayscale, and increasing
the contrast.

BUG=skia:6235

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

Change-Id: Icb8f3e290932d8bcd9387fb1f39dd20767e15cf6
Reviewed-on: https://skia-review.googlesource.com/7460
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-16 02:34:44 +00:00
Mike Klein
e1caee1ad8 SkJumper
Change-Id: If9f73e712e429564fef58ccb838c212ec8d2e68c
Reviewed-on: https://skia-review.googlesource.com/8525
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-16 00:27:57 +00:00
bungeman
4ec46aa171 Work around Mac x- and cap-height calculation.
With at least some system fonts and apparently all fonts from data the
x-height and cap-height on at least 10.12.3 are always 0.6666 and .8888
of the ascent, respectively. The values from the 'OS/2' table appear
to be read, but then the values are overwritten. Work around this by
using the values from the 'OS/2' table when available.

This also removes fFUnitMatrix as it is no longer used.

BUG=skia:6203

Change-Id: Ib79d9d32bca77797de043499c854c35e5ef3aa4b
Reviewed-on: https://skia-review.googlesource.com/8452
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-16 00:23:39 +00:00
Matt Sarett
25834ffc5a Use non-linear blending flag in raster pipeline blitter
BUG=skia:

Change-Id: I00b52e6de3b46b7d26c1df2aa63c521b6c7ece2d
Reviewed-on: https://skia-review.googlesource.com/8526
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-15 22:59:27 +00:00
Mike Klein
f6a1a2179a Clean up SkSplicer.
SkJumper's looking promising enough that I want this further out of my face.

Change-Id: I6dbe71aeabe32f7f4258ba157460e6985733b0ce
Reviewed-on: https://skia-review.googlesource.com/8528
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-15 22:47:58 +00:00
Mike Reed
185130c643 return and take SkImageGenerator as unique_ptr
BUG=skia:

Change-Id: I4bc11042dd1dbf1eabd40af206027bc65acc3186
Reviewed-on: https://skia-review.googlesource.com/8444
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-02-15 20:51:28 +00:00
Brian Salomon
eb62829a83 Check that coverage FPs are compatible with alpha as coverage
Change-Id: Ic3b6a02248d571e82f6729827c199d358fb75114
Reviewed-on: https://skia-review.googlesource.com/8508
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-15 20:50:31 +00:00
Robert Phillips
63c67461ed Tighten up GrSurfaceProxy typing
This may reduce the number of "why not GrTextureProxy" issues

Change-Id: I9e0e5042f5801ba9a933b697a380cb0cb54b4522
Reviewed-on: https://skia-review.googlesource.com/8510
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-15 20:17:29 +00:00
Ethan Nicholas
3614d9adb3 improved performance of parsing SkSLLayout flags
BUG=skia:

Change-Id: Ib0e1393fb44f5f934ad2f88fed638ef7a0fa7393
Reviewed-on: https://skia-review.googlesource.com/8463
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-15 19:49:58 +00:00
Mike Reed
c24447dc49 Revert "Revert "make SkClipStack.h private (in src)""
This reverts commit 1c8e82b72b.

Reason for revert: previous reason to revert fixed. relanding.

Original change's description:
> Revert "make SkClipStack.h private (in src)"
> 
> This reverts commit 3efca0a2a8.
> 
> Reason for revert: update caller in GraphicsContext.cpp
> 
> Original change's description:
> > make SkClipStack.h private (in src)
> > 
> > BUG=skia:
> > 
> > Change-Id: I05f1140fe483f4a92093cb9783c6e9f067420d30
> > Reviewed-on: https://skia-review.googlesource.com/8481
> > Reviewed-by: Florin Malita <fmalita@chromium.org>
> > Commit-Queue: Mike Reed <reed@google.com>
> > 
> 
> TBR=fmalita@chromium.org,reed@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
> 
> Change-Id: Iff1138d72ff2d1187d522487fe76ea293f706f60
> Reviewed-on: https://skia-review.googlesource.com/8501
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> 

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

Change-Id: If7e54653c00a0c57ffa60b0c9f40dd0ffad2fe42
Reviewed-on: https://skia-review.googlesource.com/8522
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-15 19:16:08 +00:00
Robert Phillips
e14d3053f3 Add GrMakeCachedBitmapProxy
This is split out of https://skia-review.googlesource.com/c/7889/ (Remove SkSpecialImage's GrTexture-based ctors) to allow focusing on the caching/subsetting changes.

Change-Id: Ic2af7a0d03e88941ab5b6cdfcecbbdefe3578eda
Reviewed-on: https://skia-review.googlesource.com/8456
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-15 19:15:20 +00:00
Stephen White
cc70083fbf GrTessellator (AA): null GrGeometryProcessor crash fix.
Add a null-check on geometry processor creation.

Add a test which exercises it: AA tessellator, with a non-invertible
matrix and a fragment processor which needs local coords (e.g., linear
gradient).

BUG=691902

Change-Id: I005b893aed58d3ad2500c41501045ac94b0b4b95
Reviewed-on: https://skia-review.googlesource.com/8462
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-02-15 17:42:26 +00:00
Mike Reed
1c8e82b72b Revert "make SkClipStack.h private (in src)"
This reverts commit 3efca0a2a8.

Reason for revert: update caller in GraphicsContext.cpp

Original change's description:
> make SkClipStack.h private (in src)
> 
> BUG=skia:
> 
> Change-Id: I05f1140fe483f4a92093cb9783c6e9f067420d30
> Reviewed-on: https://skia-review.googlesource.com/8481
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Mike Reed <reed@google.com>
> 

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

Change-Id: Iff1138d72ff2d1187d522487fe76ea293f706f60
Reviewed-on: https://skia-review.googlesource.com/8501
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-15 17:28:12 +00:00
Brian Salomon
f3b995b628 Clarify when tweak alpha for coverage optimizaton can occur.
Also refer to it directly rather than using the term "modulate"

Change-Id: Ifa44a4d46e1be11b567943f58ead24e38f10d03b
Reviewed-on: https://skia-review.googlesource.com/8488
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-15 17:27:10 +00:00
Mike Klein
2b512d00ef much better idea
Instead of trying to genereate snippets of code that an work when
splicing and when interpreting, let's just make one snippet for each.
And then, let's add one more portable single float version!

Why build one when you can have three at thrice the price?

This doesn't make these new strategies active, but does start moving the
code in build_stages.py and SkSplicer_stages.cpp towards that.

Change-Id: I2197fa2a11e233f24da67e54a4f291135652b087
Reviewed-on: https://skia-review.googlesource.com/8453
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-15 17:16:02 +00:00
Mike Reed
3efca0a2a8 make SkClipStack.h private (in src)
BUG=skia:

Change-Id: I05f1140fe483f4a92093cb9783c6e9f067420d30
Reviewed-on: https://skia-review.googlesource.com/8481
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-15 16:13:59 +00:00
csmartdalton
a0c9832882 Remove GL asserts for geo shaders to not have uniforms
BUG=skia:

Change-Id: I51468c808f8a2e6593c237b4c4368df2f6729dff
Reviewed-on: https://skia-review.googlesource.com/8421
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-15 16:02:41 +00:00
Mike Reed
26e573c7ef removed unused code around scaled generators
BUG=skia:

Change-Id: I9e042cd9343e0f29032f84ee17b4b316214ec693
Reviewed-on: https://skia-review.googlesource.com/8403
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-02-15 16:00:06 +00:00
Hal Canary
08f14bd478 SkPictureImageGenerator.h include guard
Change-Id: I6d9894ce3db427985c000b431fb79388c211b70c
Reviewed-on: https://skia-review.googlesource.com/8455
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-15 15:29:56 +00:00
Brian Salomon
56ec7586f1 Make GrPipelineInput::setToSolidCoverage set the opaque bit.
Change-Id: I3580a9bf1b40c46ac642157f50e09b1fab40c3d3
Reviewed-on: https://skia-review.googlesource.com/8485
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-15 14:59:45 +00:00
Matt Sarett
2ae3a2ec29 Suggest P3 for wide gamut images in SkAndroidCodec
This will prevent us from clipping the gamut
to sRGB.

BUG=skia:

Change-Id: Ifc34369d96aa9dd92ae2af72aac1cfa17fdc4b94
Reviewed-on: https://skia-review.googlesource.com/8025
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-02-15 14:35:48 +00:00
Brian Osman
3f405985be Non linear blending flag for SkColorSpace
BUG=skia:6242

Change-Id: I63cce6019ce854ba807b2a819ef4fe3214898bee
Reviewed-on: https://skia-review.googlesource.com/8344
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-15 14:25:35 +00:00
Matt Sarett
485c499a27 Rename SkConfig8888/SkPixelInfo to SkConvertPixels
BUG=skia:

Change-Id: I4f3c6370b3ef4247aa446716c7c154899925d089
Reviewed-on: https://skia-review.googlesource.com/8442
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-15 13:50:55 +00:00
Mike Klein
c43559e6e6 Remove returns at end of stage splices.
Returns?  Where we're going, we don't need returns.

I have discovered a truly marvelous alternative, a description of which
this code review is too narrow to contain.

Change-Id: I13fb36eb75771bc691d8187dddd876efcebc57d6
Reviewed-on: https://skia-review.googlesource.com/8480
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-14 23:34:34 +00:00
Florin Malita
4b66512a63 Handle collapsed drawVertices() texture coords gracefully
Detect collapsed coords and implement using a solid color shader.

Replace SkTLazy objects with a stack-based SkArenaAllocator.

Change-Id: I5d867648d551ea30558fd8ae0c99b9292bc92961
Reviewed-on: https://skia-review.googlesource.com/8451
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-14 22:54:56 +00:00
Herb Derby
70c60638be Move SkDOM to SkArenaAlloc from SkChunkAlloc.
TBR=mtklein@google.com

Change-Id: Icecfc661c9bd4ed03409a132947af0f78784f984
Reviewed-on: https://skia-review.googlesource.com/8401
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-14 22:32:34 +00:00
Matt Sarett
9df70bb74d Picture backed images must have a bit depth and color space
Enforce that picture backed images created by the public API
must have a non-null SkColorSpace.

SkPictureShader uses a private call to get around this restriction.

BUG=skia:

Change-Id: I2fc11a8ffe583035d09e83abf40b827fbf575321
Reviewed-on: https://skia-review.googlesource.com/8415
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-14 21:32:10 +00:00
Brian Osman
46da1cc9f2 GrContext option to prevent GPU based YUV -> RGB
Rob and I spent a long time debugging why this wasn't working for
Flutter - doing the more complex operations on the loading thread
produces a blank texture when it's used later on the drawing thread.

Limiting ourselves to just creating and uploading RGBA data fixes
that. We need to debug what's going wrong, but in the meantime, this
lets Flutter use Skia APIs to manage GPU uploading and lifetime of
texture-backed images, while still doing those uploads on their IO
thread.

BUG=skia:

Change-Id: Ibf5c37f2439814544beab8c93c2a646f7a9e779d
Reviewed-on: https://skia-review.googlesource.com/8443
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-02-14 20:42:06 +00:00
Herb Derby
5a8fe978c3 Remove include/xml from public API.
Move SkDOM and ilk from include/xml to src/xml.

I have looked for uses of SkDOM in the depot using cs/ and have found none,
but this is not perfect. So, if this breaks external builds, revert it.

TBR=reed@google.com

Change-Id: I162a1977f0649b049c0f93f016701784d025996d
Reviewed-on: https://skia-review.googlesource.com/8447
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-14 20:17:05 +00:00
Mike Reed
c42a1cdd1d work on raster device clipping
With the flag (SkDevice.h) enabled, I get correct drawing w/ the rasterbackend.

After this lands, hopefully we can work in parallel on gpu/pdf/svg/xps/etc.

BUG=skia:6214

Change-Id: Ie35fee818470aab57aebacca8a2a5b812a552ee2
Reviewed-on: https://skia-review.googlesource.com/8192
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-14 20:07:08 +00:00
Herb Derby
78c0c4c5a0 Remove SkSmallAllocator.
TBR=mtklein@google.com

Change-Id: I375af12c5de4397a682c1946404282da95ad42ec
Reviewed-on: https://skia-review.googlesource.com/8392
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-14 19:32:58 +00:00
Matt Sarett
8572d85351 Make raster pipeline support all pixel conversions
BUG=skia:

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

Change-Id: Idc76999d0f5591a567b3976cb9db829c350e4be2
Reviewed-on: https://skia-review.googlesource.com/8304
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-14 17:50:52 +00:00
Herb Derby
4bf560a056 Simplify code for making paints with shaders.
Since SkAutoBitmapShaderInstall was simplified to create shaders on the
heap, it is no longer needed. Simplify to a single routine.

TBR=mtklein@google.com

Change-Id: Ib18be559b03e234a05105d0892c1457cafce28b7
Reviewed-on: https://skia-review.googlesource.com/8391
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-14 17:02:33 +00:00
Brian Salomon
c6b7146eef Remove component flags from GrPipelineInput.
We don't use these anywhere downstream except to check for opaqueness.

Change-Id: I897137135d69004ed45c0f4c1e7297183f49fc6d
Reviewed-on: https://skia-review.googlesource.com/8402
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-14 16:34:59 +00:00
Brian Salomon
9a51498720 Remove component flags from GrXPFactory output analysis.
Change-Id: Ieb8dab564e6e593dca2e092d352756052dadfd90
Reviewed-on: https://skia-review.googlesource.com/8354
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-14 16:06:13 +00:00
Robert Phillips
6a307cc6c4 Add check for finite phase to SkPath1DPathEffect::Make
Change-Id: I600f2e697769ecdb9080cda1533104231e00b14c
Reviewed-on: https://skia-review.googlesource.com/8406
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-14 15:36:13 +00:00
Mike Klein
ce44a0f4e7 SkSplicer: implement constant_color
Change-Id: I3a5475eb3e76eef19183950f14e17b119f32458b
Reviewed-on: https://skia-review.googlesource.com/8405
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-14 15:20:04 +00:00
Mike Klein
7598b4882c SkSplicer: fix dstover
dstover was updating the {dr,dg,db,da} registers instead of {r,g,b,a}.

Change-Id: Ie2280abe80efb274fb422dc38a329c6dac12f846
Reviewed-on: https://skia-review.googlesource.com/8404
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-14 15:12:42 +00:00
Herb Derby
bfdc87a621 Revert "Revert "Always make SkImageShaders in heap.""
This reverts commit 07f665efb9.

Reason for revert: Android code moved from priv api to real api

Original change's description:
> Revert "Always make SkImageShaders in heap."
> 
> This reverts commit ff590a1244.
> 
> Reason for revert: This breaks the android roll because they are using
> a private call. Updating android tests to use new api.
> 
> Original change's description:
> > Always make SkImageShaders in heap.
> > 
> > I made a couple of measurments, and it looks like any differences is
> > well below the noise threshold.
> > 
> > Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
> > I was using top25 .skps as workload.
> > 
> > TBR=mtklein@google.com
> > 
> > Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
> > Reviewed-on: https://skia-review.googlesource.com/8341
> > Reviewed-by: Herb Derby <herb@google.com>
> > Commit-Queue: Herb Derby <herb@google.com>
> > 
> 
> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: Ibdaafc796702e250933b62e5f4abb5e2ce8d40c0
> Reviewed-on: https://skia-review.googlesource.com/8393
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Herb Derby <herb@google.com>
> 

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

Change-Id: I320b5ebf707d74ffafd8b70d69646b74a30f0ae8
Reviewed-on: https://skia-review.googlesource.com/8407
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-14 15:06:35 +00:00
Mike Reed
8be952ad8c SkScalarMul is deprecated
BUG=skia:

Change-Id: I88ecfe9d4c72506f6b1a0e0dfadd2a5c171a6cb6
Reviewed-on: https://skia-review.googlesource.com/8353
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2017-02-14 14:43:47 +00:00
Mike Klein
351549feba SkSplicer support for 2-point gradients.
Add some stages to SkSplicer:
   - seed_shader
   - matrix_2x3
   - clamp_x
   - clamp_y
   - linear_gradient_2stops

seed_shader needed new constants, 0.5f and {0,1,2,3,4,5,6,7}.

$ out/nanobench -m gradient_linear_clamp\$ --config f16 --ms 2000 -q
    Before: 612.17us
    After:  163.80us

Change-Id: I6e03383c95ea070250424e743080a7930efeca77
Reviewed-on: https://skia-review.googlesource.com/7348
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-14 14:13:17 +00:00
csmartdalton
936f81b958 Move the rt adjust uniform into GP EmitArgs
The GP will likely require this value when dealing with a geometry
shader. In the future we may wish to either switch to device-space
geometry shaders, or else put this value in an "sk_" builtin.

BUG=skia:

Change-Id: I8dff88fc219feef84d39fb7bbd08f3b5686f53d2
Reviewed-on: https://skia-review.googlesource.com/8362
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-13 23:21:35 +00:00
Stephen White
5926f2da75 GrTessellator (AA): fix "Canvas Arcs" coverage artifact.
When sanitizing contours, if the first and last vertices coincide,
continue with the previous vertex, not the next vertex, since we
may otherwise exit prematurely. Also, round the last vertex before
entering the loop, just in case it coincides with the first.

Add a test case to exercise the above, and another one which exercises
the intruding-vertex workaround.

BUG=691593

Change-Id: Ic28a9308a21164d185edef0ee6fbc29b40742149
Reviewed-on: https://skia-review.googlesource.com/8364
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-02-13 21:18:10 +00:00
Mike Klein
6fcea9d436 Enable sse2 backend for SkSplicer.
One more piece of https://skia-review.googlesource.com/c/8230/.

-mno-red-zone makes it safe for x86 stages to use the stack on Windows
(at the expense of an extra sub and add to the stack pointer on !Windows).

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release,Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug

Change-Id: I81f8220e790b201757a7e1e9752b2fe94520ccbb
Reviewed-on: https://skia-review.googlesource.com/8352
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-13 21:08:10 +00:00
Herb Derby
07f665efb9 Revert "Always make SkImageShaders in heap."
This reverts commit ff590a1244.

Reason for revert: This breaks the android roll because they are using
a private call. Updating android tests to use new api.

Original change's description:
> Always make SkImageShaders in heap.
> 
> I made a couple of measurments, and it looks like any differences is
> well below the noise threshold.
> 
> Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
> I was using top25 .skps as workload.
> 
> TBR=mtklein@google.com
> 
> Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
> Reviewed-on: https://skia-review.googlesource.com/8341
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
> 

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

Change-Id: Ibdaafc796702e250933b62e5f4abb5e2ce8d40c0
Reviewed-on: https://skia-review.googlesource.com/8393
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-13 20:04:16 +00:00
Mike Klein
d2d6d726fa Fix stack alignment in Windows before_loop/after_loop.
This should land as a no-op, as nothing using the stack yet.
It will allow us to land the SSE2 code, which does spill in to_srgb.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release

Change-Id: Ie8000d50a85d56ad6229736d79f3a947f06a808c
Reviewed-on: https://skia-review.googlesource.com/8389
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-13 19:53:48 +00:00
Hal Canary
c8f918004a SkPDF: skip shader lookup for SkShader::kColor_GradientType
Also: SkPDFShader::State isi now zero-initilized.

No change in PDF tests.

BUG=chromium:690875
Change-Id: Ibc56cc9435362733adf50cbb51b11c9413572e7f
Reviewed-on: https://skia-review.googlesource.com/8355
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-13 18:59:17 +00:00
Herb Derby
5cdc9dda33 Move GrTessellator from SkChunckAlloc to SkArenaAlloc.
TBR=ethannicholas@google.com

Change-Id: I2efcbe540a2bdc42b8c2f0a675a42fe9e9ed717d
Reviewed-on: https://skia-review.googlesource.com/8383
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-13 18:58:26 +00:00
Hal Canary
385468f6e2 SkPDF: better tolerance path conversion to quadratics
BUG=chromium:691386
Change-Id: I2cb9be7dd606b2ba61ff609f9fd81a55655901f6
Reviewed-on: https://skia-review.googlesource.com/8381
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
2017-02-13 18:24:11 +00:00
Brian Salomon
a12c15376c Add preserves premul and modulate optimization to compose fragment processors.
Fixes out of range colors produced by matrix convolution and dither effects. Adds modulate optimization to matrix convolution.

Change-Id: I8424250a52e864f4b5feaf4474293695c26039d8
Reviewed-on: https://skia-review.googlesource.com/8351
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-13 18:14:12 +00:00
Herb Derby
ff590a1244 Always make SkImageShaders in heap.
I made a couple of measurments, and it looks like any differences is
well below the noise threshold.

Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
I was using top25 .skps as workload.

TBR=mtklein@google.com

Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
Reviewed-on: https://skia-review.googlesource.com/8341
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-13 17:37:17 +00:00
Mike Reed
267be7fbc3 Revert "Revert "IWYU""
This reverts commit 3c727d2386.

BUG=skia:

Change-Id: I72e9b40fec96d044e0ac12906669a52529e77882
Reviewed-on: https://skia-review.googlesource.com/8356
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-13 15:59:35 +00:00
Hal Canary
03a7f5fe2d Make header files idempotent; script to check
Change-Id: I960ded854e6bc7cdee029a7393cac2a686c41754
Reviewed-on: https://skia-review.googlesource.com/8308
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-13 15:52:59 +00:00
Brian Salomon
cb30bb2cb7 Remove GrFragmentProcessor::computeInvariantOutput
Change-Id: If475730103052c6097eb91be06808fb723b70bf8
Reviewed-on: https://skia-review.googlesource.com/8330
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-13 15:32:00 +00:00
Brian Salomon
d1a8bdfbb9 Initialize test textures for ProcessorOptimizationValidationTest.
Ensure the data in the RGBA texture is premul.

Reenable the "modulation" optimization flag on GrAlphaThresholdFragmentProcessor.

Change-Id: I49ef215cee83ea74526c589bcee4bc215bc28ba4
Reviewed-on: https://skia-review.googlesource.com/8323
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-13 15:21:34 +00:00
Ethan Nicholas
3865711259 Replaced all calls to fragmentPosition() with sk_FragCoord
Change-Id: I2ed4558aea74b3ae7ee11dfe4736cdbcb16ae49e
Reviewed-on: https://skia-review.googlesource.com/8278
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-13 14:49:09 +00:00
Robert Phillips
b34727f1a3 Remove unused/barely-supported compressed GrPixelConfigs
Change-Id: Ie7b813c8b0523ae53cf9f2328645ddf4c5af49a8
Reviewed-on: https://skia-review.googlesource.com/8326
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-13 13:51:24 +00:00
Mike Reed
b43a3e0160 Only use DeviceCM->fNext if the layer doesn't affect the clip
Before this, fNext always pointed at the next (prev) saveLayer in the stack.
Typically each layer is isolated, as it is defined to "consume" the current clip.
Android has an option to not affect/consume the clip, hence the support for looping
through this link-list in updateMC().

The current code always executes this loop, subtracting the current layer's clip from
the global clip, so typically the 2nd iteration will see an empty remaining clip and
draw nothing ... but we still pay for the subtract and the draw-overhead.

This change makes fNext point to the next layer ONLY if the current layer was marked
as non-consuming.

As a side-effect, this change also now detects the "last" restore by looking for
fMCRec == null, rather than fNext == nullptr. fMCRec was always null on the last
layer, so this change is safe, and could have landed independently.

BUG=skia:6214

Change-Id: I787574fa35c4869d3b884054aece925f457ad5bd
Reviewed-on: https://skia-review.googlesource.com/8348
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-12 18:16:45 +00:00
Mike Klein
e52577ff9f Refactor without turning on sse2/sse41.
This is another slice of https://skia-review.googlesource.com/c/8230/.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release

Change-Id: I9a95b319c9695874c975d17d230f1569a8996f83
Reviewed-on: https://skia-review.googlesource.com/8350
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-11 18:17:07 +00:00
Mike Klein
d37979c66d Make Win before_loop/after_loop SSE compatible.
This is one little slice of https://skia-review.googlesource.com/c/8230/.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release

Change-Id: I3a03246d28f34bf7692d4cb79425510c78a7f8c1
Reviewed-on: https://skia-review.googlesource.com/8349
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-11 16:46:08 +00:00
Mike Klein
f8866c5b3a Revert "Generate sse2/sse4.1 splices, use them."
This reverts commit 1fe55dc9fa.

Reason for revert: breaking Win GPU bots?

Original change's description:
> Generate sse2/sse4.1 splices, use them.
> 
> While we're at it, tidy up build_stages.py a bit.
> Redirecting stdout seems a lot easier than print >>f all over the place.
> 
> TODO: non-VEX-encoded before_loop() and after_loop()
> 
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug
> 
> Change-Id: I3f38e55f081670dd598c6050435466d9f394e5be
> Reviewed-on: https://skia-review.googlesource.com/8230
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> 

TBR=mtklein@chromium.org,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug

Change-Id: Iba1905c54cb2dc42a880b9e6a8093835ffd530a2
Reviewed-on: https://skia-review.googlesource.com/8347
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-11 14:02:05 +00:00
Robert Phillips
3c727d2386 Revert "IWYU"
This reverts commit 2aeae78a2c.

Reason for revert: It looks like this is breaking the android roll

out/target/product/angler/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/android_graphics_Canvas.o frameworks/base/core/jni/android_graphics_Canvas.cpp"
frameworks/base/core/jni/android_graphics_Canvas.cpp:178:15: error: incomplete type 'SkRegion' named in nested name specifier



Original change's description:
> IWYU
> 
> BUG=skia:
> 
> Change-Id: Ib6b4d52841dbe3fa69a86ddb6b97d6a5d0f004ee
> Reviewed-on: https://skia-review.googlesource.com/8231
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Mike Reed <reed@google.com>
> 

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

Change-Id: If979c3dd9dc3fe08ac450ced113b3d1e9a86f02a
Reviewed-on: https://skia-review.googlesource.com/8346
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-11 01:25:19 +00:00
Robert Phillips
54be5c9286 Revert "More non-invertible shader local matrix guards"
This reverts commit 368af4605d.

Reason for revert: checking to see if this is breaking the Chrome DEPS roll
Original change's description:
> More non-invertible shader local matrix guards
> 
> Change-Id: Ida9a300420ff1d883e617cdaadb80e88c99ad226
> Reviewed-on: https://skia-review.googlesource.com/8333
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> 

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

Change-Id: Id0a771342b9be27c85d91f511d814297b8c3e0b8
Reviewed-on: https://skia-review.googlesource.com/8345
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-11 01:19:47 +00:00
Matt Sarett
3e50027f22 Delete legacy named color space API
BUG=skia:

Change-Id: I3a41b5affdfad830cea969a1e4932794d27f4f7a
Reviewed-on: https://skia-review.googlesource.com/8331
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-10 22:53:06 +00:00
csmartdalton
75864b09e1 Add GrGLSLShaderBuilder::declareGlobal
BUG=skia:

Change-Id: I75eeb7cbd1bf157c463e5e80b4560a953b7883e8
Reviewed-on: https://skia-review.googlesource.com/8245
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-10 22:51:45 +00:00
Herb Derby
34e91ca5cc Remove unused field, and use official size.
TBR=reed@google.com

Change-Id: I15fd225651142eefb0eb94a4f1dde55b13abe0aa
Reviewed-on: https://skia-review.googlesource.com/8343
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-10 22:29:49 +00:00
Brian Salomon
246a3c269d Re-enable ProcessorOptimizationValidationTest on iOS.
Change-Id: I05aae2e86cd7a219ab98e882bb6041263b4aca71
Reviewed-on: https://skia-review.googlesource.com/8318
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-10 21:58:47 +00:00
Jim Van Verth
8600b1b3d6 Revert "Use SDF path miplevels based on the original path's size."
This reverts commit 6e83b13c22.

Reason for revert: Fractional path sizes are causing asserts on the bots.

Original change's description:
> Use SDF path miplevels based on the original path's size.
> 
> Should produce sharper results than arbitrary fixed sizes.
> Adds a new test to pathfill GM.
> 
> BUG=chromium:682918
> 
> Change-Id: I5a394098665d01e995a244fde278236f1471e6c9
> Reviewed-on: https://skia-review.googlesource.com/8328
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> 

TBR=jvanverth@google.com,bsalomon@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:682918

Change-Id: I4a52df808ef3f769d0e6f75785148d46936a6747
Reviewed-on: https://skia-review.googlesource.com/8342
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-02-10 21:45:59 +00:00
Jim Van Verth
6e83b13c22 Use SDF path miplevels based on the original path's size.
Should produce sharper results than arbitrary fixed sizes.
Adds a new test to pathfill GM.

BUG=chromium:682918

Change-Id: I5a394098665d01e995a244fde278236f1471e6c9
Reviewed-on: https://skia-review.googlesource.com/8328
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-10 21:26:33 +00:00
Florin Malita
368af4605d More non-invertible shader local matrix guards
Change-Id: Ida9a300420ff1d883e617cdaadb80e88c99ad226
Reviewed-on: https://skia-review.googlesource.com/8333
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-10 21:15:16 +00:00
Mike Klein
1fe55dc9fa Generate sse2/sse4.1 splices, use them.
While we're at it, tidy up build_stages.py a bit.
Redirecting stdout seems a lot easier than print >>f all over the place.

TODO: non-VEX-encoded before_loop() and after_loop()

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug

Change-Id: I3f38e55f081670dd598c6050435466d9f394e5be
Reviewed-on: https://skia-review.googlesource.com/8230
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-10 20:43:16 +00:00
Ben Wagner
a67615f370 'gasp' to control symmetric rendering on Windows.
Currently Skia tries hard to use symmetric rendering with DirectWrite
as often as possible. However, particularly on Windows 7 with CJK fonts,
thin horizontal strokes can be rendered without sufficient contrast
because the font was relying on the 6x1 oversampling for what is
effecitvely drop-out control. This change will only allow symmetric
rendering if the font allows it in the 'gasp' table.

BUG=chromium:645055

Change-Id: I45a9d5e4a0b49bb969c44fb20dc92528dfe9c48d
Reviewed-on: https://skia-review.googlesource.com/8268
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-02-10 20:13:29 +00:00
Brian Salomon
eec6f7be54 Use new fragment processor optimization queries.
This doesn't yet delete the old virtuals.

It still uses the color and component flags model for the pipeline input and blended output but I'm planning to change those as well.

Change-Id: I64e2ec0fe9ed9fae3aabf1ca8c9bc0582fc7565a
Reviewed-on: https://skia-review.googlesource.com/7760
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-10 20:02:32 +00:00
Mike Reed
2aeae78a2c IWYU
BUG=skia:

Change-Id: Ib6b4d52841dbe3fa69a86ddb6b97d6a5d0f004ee
Reviewed-on: https://skia-review.googlesource.com/8231
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-10 19:43:03 +00:00
Brian Osman
da297e689e Remove declaration of non-existent constructor
BUG=skia:

Change-Id: If60588d5b6e960f2fb89cc24296cea7606fa189a
Reviewed-on: https://skia-review.googlesource.com/8324
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-10 18:06:41 +00:00
Herb Derby
2e83b13122 Remove SkTextureCompressor.
This is the ultimate state of what it looks like to remove
SkTextureCompressor.

This end result will result from the following steps.

1) Remove Skia dep on ktx (done)
2) Move format over to ktx (done)
3) Remove all SkTexture compressor code

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

Change-Id: I3ad7a6abbea006a3034d95662c652d6db90b86ef
Reviewed-on: https://skia-review.googlesource.com/8272
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-02-10 17:36:43 +00:00
csmartdalton
6aa0e1150e Add support for RG float textures
Adds kRG_float_GrPixelConfig.

Also removes default labels from switches on GrPixelConfig, in order
to help guide future enumerals to handle them properly.

BUG=skia:

Change-Id: Ie80b9413b4002b666df3ef1a7a8ea4c9c29ce43b
Reviewed-on: https://skia-review.googlesource.com/8226
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-10 16:44:43 +00:00
Florin Malita
63b6156273 Fixed3232 overflow in LinearGradientContext::shadeSpan()
Speculative fix for TAP ubsan failures.

Change-Id: Id3a78adbfab04ba3404a23059cbd8c162d812c2e
Reviewed-on: https://skia-review.googlesource.com/8315
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-10 16:17:35 +00:00
Herb Derby
57bfa0209e Change the Sprite portion of SkBlitter use SkArenaAlloc.
The semantics of createT and make are the same with respect to
dtors, so it just a simple replacement of calls.

TBR=reed@google.com

Change-Id: Ib7d071d214edb44ea5c5466ce81252e9374b6eb7
Reviewed-on: https://skia-review.googlesource.com/8301
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-10 15:29:43 +00:00
Robert Phillips
f1d0ced9cb Fix GrRenderTargetContext::drawArc's abandoned Context handling
This was causing a crash in --preAbandonGpuContext mode

Change-Id: Ifbd8eea05402d4db2f06c48f31aa53bce09d0c07
Reviewed-on: https://skia-review.googlesource.com/8310
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-10 15:11:27 +00:00
Robert Phillips
19c22e946d Revert "Roll minimum picture version up to 44."
This reverts commit e037d12625.

Reason for revert: Checking to see if this broke the Chrome DEPS roll

Original change's description:
> Roll minimum picture version up to 44.
> 
> This is the version produced by Chrome M54.  M56 is stable now.
> 
> I am most interested in deleting SkBitmapSourceDeserializer,
> because it awkwardly calls from core into effects (SkImageSource).
> 
> Change-Id: I58b8b990017ba43372ab3333a4ef8312e75abc61
> Reviewed-on: https://skia-review.googlesource.com/8286
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> 

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

Change-Id: I9202591c7945c9421f335e544bf12461e38acdc6
Reviewed-on: https://skia-review.googlesource.com/8305
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-10 12:32:21 +00:00
Mike Klein
b8b51e6b2f Add a -Mini build bot to build the smallest Skia possible.
This bot wants everything possible to turn off turned off.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Mini

Change-Id: Ida7ee2406f8fecda9bd408cd9880a3838590a81b
Reviewed-on: https://skia-review.googlesource.com/8280
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-10 02:40:41 +00:00
Hal Canary
6b20a55996 Make header files self-sufficient
Change-Id: Ice7d761b1023da77e50e5d6aa597964f7d9aa1d8
Reviewed-on: https://skia-review.googlesource.com/8302
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-10 01:19:52 +00:00
Matt Sarett
8616bb2544 Fix CopyPixels() bug
BUG=skia:

Change-Id: I102fa9f4b16caa1c00602af1a89a0a0372e047b2
Reviewed-on: https://skia-review.googlesource.com/8303
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-10 01:09:14 +00:00
bungeman
18ec7b9581 Replace kCTFontXXXOrientation with kCTFontOrientationXXX.
English has a quite complex order of adjectives, and adjectives come
before the noun.  However, this order often clashes with the desire for
clear hierarchy in naming. In the kingdom of nouns the nouns come first.
A great eye at Apple noticed a lack of dicipline in the naming of the
orientation constants and ranamed them to conform, deprecating the
original names. To avoid warnings which become errors, Skia must now
use the new names for these constants.

BUG=chromium:408571

Change-Id: I5ccce4a3353157e1e8780c3a169099cec76b7637
Reviewed-on: https://skia-review.googlesource.com/8300
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2017-02-09 22:55:34 +00:00
Mike Klein
e037d12625 Roll minimum picture version up to 44.
This is the version produced by Chrome M54.  M56 is stable now.

I am most interested in deleting SkBitmapSourceDeserializer,
because it awkwardly calls from core into effects (SkImageSource).

Change-Id: I58b8b990017ba43372ab3333a4ef8312e75abc61
Reviewed-on: https://skia-review.googlesource.com/8286
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-09 22:36:57 +00:00
Florin Malita
d9569664fe Fix int64 overflow in SkClampRange::init()
BUG=skia:5915,skia:6219

Change-Id: Ic849bf9dc90e623fc1d6269cd245a2e3eca05d1d
Reviewed-on: https://skia-review.googlesource.com/8290
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-09 22:23:03 +00:00
Matt Sarett
c7b2908947 Refactor pixel conversion: premul and unpremul
Just going for simpler and more code sharing.

BUG=skia:

Change-Id: I84c20cd4dbb6950f7b4d0bc659c4b3b5a2af201c
Reviewed-on: https://skia-review.googlesource.com/8287
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-09 22:11:13 +00:00
bungeman
f1ef1fa598 Properly create CTFontDescriptor from SkFontStyle.
There has been a long standing TODO about adding weight, width, and slant
properly to created CTFontDescriptors. Now that the correct mappings are known,
add these values to the descriptors.

Change-Id: I37c3b892c2eb9dc3bb63399d14b535737c4fafb3
Reviewed-on: https://skia-review.googlesource.com/8273
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-02-09 21:50:57 +00:00
Mike Klein
d678723728 Move C effects into effects.
Change-Id: If5fb69781425260004a9782f8e92ea3d981bb0ed
Reviewed-on: https://skia-review.googlesource.com/8283
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-09 21:50:55 +00:00
Brian Salomon
2c49a41858 Remove inner/outer threshold restriction on SkAlphaThresholdFilter.
Chrome pixel tests are relying on this being a valid configuration.

Change-Id: Ib67e3168b72c15d014fae50faff4eb34fcc50a0d
Reviewed-on: https://skia-review.googlesource.com/8284
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-09 21:46:45 +00:00
Florin Malita
3d1a6bc5f3 [4fGradient] Relax interval checks for SkGradientShaderBase also
Similar to https://skia-review.googlesource.com/8270, treat intervals
as closed at both extremities in the 4f gradient fallback impl also.

BUG=skia:6212

Change-Id: I7f164868202ae6a0f76cbcdbcbf8e62db12a1bd4
Reviewed-on: https://skia-review.googlesource.com/8277
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-09 20:44:47 +00:00
Ethan Nicholas
84645e3c67 re-land of skslc type constructor cleanups
BUG=skia:

Change-Id: I953be07e2389dd4a9e7dcce0ddfd7505b309bda1
Reviewed-on: https://skia-review.googlesource.com/8265
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-09 20:26:39 +00:00
Brian Salomon
99dbe7b2c4 Temporarily don't mark alpha threshold fp as modulating
Change-Id: I4b2b4f69f1d68cb55ca65d046355a5ea2dc34e36
Reviewed-on: https://skia-review.googlesource.com/8279
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-09 20:18:54 +00:00
Matt Sarett
5101448ebb Pixel conversion refactors: use raster pipeline for 565 and gray
I'm trying not to do too much in one CL.  But, in general, I hope
to drop (non-performance important/optimized) special cases and
use the pipeline.

BUG=skia:

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

Change-Id: I724d3982f1467f6232371360b860484f13b1ede8
Reviewed-on: https://skia-review.googlesource.com/8271
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-09 19:54:11 +00:00
Mike Klein
a04bb45b23 Make src/effects explicitly optional.
This adds a GN argument to disable src/effects, which can cut about 1M
off libskia.  It's not the first place you'd go to trim code size, but
after turning off easy big things like Ganesh, it starts looking big.

I tested that fiddle builds and links.  It uses Skia but not effects.
Most of our test apps use effects and can't build in this new mode.

Change-Id: I9b5d6e9289a87bc08eedf6d202d0eabe754da41a
Reviewed-on: https://skia-review.googlesource.com/8263
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-09 19:30:25 +00:00
Ethan Nicholas
67d64605d3 added support for sk_ClipDistance
Change-Id: I9ea202679211b98cf98165c8609f24f9b4e14b66
Reviewed-on: https://skia-review.googlesource.com/8247
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-09 19:29:33 +00:00
Brian Salomon
5d4cd9ea88 Re-enable processor optimization test with some fixes.
Enables on GL (for now)

Change-Id: I5f5a38632963dd705f8434e8627eb33446e8f027
Reviewed-on: https://skia-review.googlesource.com/7721
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-09 19:25:21 +00:00
Florin Malita
e659c7f36f [4fGradient] Relax interval checks
We're currently considering intervals open at one extremity, in order to
ensure that a given value is always contained in a single interval.

This creates problems with synthetic clamp intervals [1, +inf), for
t == +inf (no interval can contain it).

Treat intervals as closed at both extremities instead.  This introduces
some ambiguitiy for overlapping values (contained in both adjacent
intervals), but solves the more serious problem above.

BUG=skia:6213

Change-Id: I33064f762fa9c2b914615e27977115d6654b12f4
Reviewed-on: https://skia-review.googlesource.com/8270
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-09 19:21:35 +00:00
Herb Derby
cf1bff945b Remove last use of ktx.h
If this breaks something in Google3, revert it.

Change-Id: Id719a87b6ca95c41d06f44f05ee1fdd430d4e0a2
Reviewed-on: https://skia-review.googlesource.com/8262
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-09 18:19:25 +00:00
Jim Van Verth
8cefe40ab0 Don't batch circles and circular rrects beyond index limit
BUG=skia:6158, chromium:690144, chromium:688582, chromium:684112

Change-Id: I7a6d1fb73cbe6cb4328848acd153ff2505b5fea2
Reviewed-on: https://skia-review.googlesource.com/8256
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-09 17:29:31 +00:00
Ethan Nicholas
49a36ba623 Revert "skslc type constructor cleanups"
This reverts commit 6f22328366.

Reason for revert: bot breakage

Original change's description:
> skslc type constructor cleanups
> 
> BUG=skia:
> 
> Change-Id: I87108b5e107419d99c996ef032eda512a68451ab
> Reviewed-on: https://skia-review.googlesource.com/8117
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> 

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

Change-Id: I1c9a8c4c62c7dd0f724f22000507112641d25e3b
Reviewed-on: https://skia-review.googlesource.com/8259
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2017-02-09 17:04:41 +00:00
Ben Wagner
8fa7468ab4 Include correct header in SkFontMgr_custom_empty_factory.cpp.
The SkFontMgr_New_Custom_Empty function used to be declared in
SkFontMgr_custom.h, but is now declared in SkFontMgr_empty.h.
2017-02-09 10:06:49 -05:00
Ethan Nicholas
cac5b12824 Revert "added support for sk_ClipDistance"
This reverts commit 8b8c76506a.

Reason for revert: breaks Vulkan

Original change's description:
> added support for sk_ClipDistance
> 
> Change-Id: I14fd921cace23ab37a1e5e9d5da94d92d3688680
> Reviewed-on: https://skia-review.googlesource.com/8225
> Reviewed-by: Chris Dalton <csmartdalton@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> 

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

Change-Id: I84d6bc75738eb9a8e090aa60e6421f2437a027b2
Reviewed-on: https://skia-review.googlesource.com/8246
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2017-02-09 14:59:57 +00:00
Ben Wagner
8ab590f17f Split custom font managers.
Some users would like to use the empty font manager, but the directory
gont manager brings in extra dependencies to work which would otherwise
be unneeded. Allow these users to build just the bits of code they
actually need.

Change-Id: Ib029ef2682883509bad5a2aa39f1ef55631f4d8a
Reviewed-on: https://skia-review.googlesource.com/8200
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-02-09 14:50:05 +00:00
Ethan Nicholas
6f22328366 skslc type constructor cleanups
BUG=skia:

Change-Id: I87108b5e107419d99c996ef032eda512a68451ab
Reviewed-on: https://skia-review.googlesource.com/8117
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-09 14:48:18 +00:00
Ethan Nicholas
8b8c76506a added support for sk_ClipDistance
Change-Id: I14fd921cace23ab37a1e5e9d5da94d92d3688680
Reviewed-on: https://skia-review.googlesource.com/8225
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-09 14:13:57 +00:00
Florin Malita
52bab3047b [4fLinearGradient] Avoid NaNs for degenerate perspectives
BUG=skia:6211

Change-Id: I92148497b29860b3844fe35c2985070a197e4085
Reviewed-on: https://skia-review.googlesource.com/8229
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-09 14:06:00 +00:00
csmartdalton
b37cb236c3 Add integer vectors to GrSLType
BUG=skia:

Change-Id: I4a4a50e214f2240d83f6f0b02cf43e695c067933
Reviewed-on: https://skia-review.googlesource.com/8122
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-08 21:37:22 +00:00
csmartdalton
119fb2b950 Add a basic constructor to GrPipeline
Adds a simple constructor for when we just need to set up basic
internal rendering.

BUG=skia:

Change-Id: Ib046c62e9a759aa7d0a3345e16ccf6e6af9342ea
Reviewed-on: https://skia-review.googlesource.com/8121
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-08 21:36:55 +00:00
Mike Klein
3a84615bbd SkRasterPipelineBlitter doesn't need an SkArenaAlloc.
Change-Id: Ie4f8bb1c05dee4639a075c100abbc5262e521fc4
Reviewed-on: https://skia-review.googlesource.com/8128
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-08 21:26:06 +00:00
Florin Malita
69d8d66eae [4fGradient] Fix degenerate vertical gradient assert
For vertical gradients, we rely on LinearIntervalProcessor to yield a
fAdvX == +inf, thanks to division by dx (== +/-0).

But certain degenerate values may cause the numerator to also collapse
to 0, resulting in fAdvX == NaN.

Instead or relying on float semantics, pin fAdvX to +inf explicitly for
vertical gradients.

BUG=skia:5912

Change-Id: Ia8007b99802a6b1e0b22f5618a0ca8959b0cfbb2
Reviewed-on: https://skia-review.googlesource.com/8223
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-08 21:23:54 +00:00
Herb Derby
73fe7b07e6 Remove use of SkSmallAllocator from all Loopers.
R=reed@google.com

Change-Id: I22b140ee8e12900de13bc623adb30b5fca3051f9
Reviewed-on: https://skia-review.googlesource.com/7658
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-08 21:08:02 +00:00
Mike Klein
16c149664d SkSplicer: begin on sse2/sse4.1 support
This lets us target older machines with SkSplicer.
SSE2 and SSE4.1 are the sweet spots if we're going to pick two more.

Nothing too interesting here except maybe the f16<->f32 code.

I rearranged a little to keep things consistent across platforms.

Next CL will get this into _generated.h and use it when appropriate.

Change-Id: Ibbdc61ea7a45d22b4f4058b01f75161ea74a7726
Reviewed-on: https://skia-review.googlesource.com/8193
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-08 21:07:05 +00:00
Mike Klein
30ec0b3735 Simplify SkCpu.cpp preprocessor guards.
We have a couple ways to detect CPU features on ARM:
  - on ARMv8, getauxval(AT_HWCAP)
  - on ARMv7, getauxval(AT_HWCAP) and cpu-features.h

This guards each of these methods with preprocessor guards to match
exactly when we can use them.  Today they're sort of a mix of that and
higher level expectations about particular build and operating systems.

I'm looking into doing this directly by reading CPU registers,
much like we do for x86 further up the file.

None of this is super important right now, so as long as we don't decide
that we have these features when we don't, things will be fine.  It's no
big deal for now if we fail to detect them.

Change-Id: I3b7768483086d0f3f4f6516b754c3ea5ec2d03e5
Reviewed-on: https://skia-review.googlesource.com/8182
Reviewed-by: Chinmay Garde <chinmaygarde@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-08 20:25:45 +00:00
Ben Wagner
3c5cfb0d15 Remove exec bit from source files.
Ran:
find src include \( -name '*.cpp' -o -name '*.h' \) -executable -exec chmod -x {} \;

BUG=skia:

Change-Id: I04a4adbfcea9fd9860ab83d43734dc5158d3a884
Reviewed-on: https://skia-review.googlesource.com/8220
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-02-08 20:21:18 +00:00
Mike Reed
7627fa5104 add virtuals in prep for device-clipping
Build flag available for backends to begin testing their impl.

Need to formalize save/restore, and how to forward these to device but not on picture canvases.

BUG=skia:6214

Change-Id: Ic5c0afba3e8c84fcf124567e63fe2f5880b623e7
Reviewed-on: https://skia-review.googlesource.com/8183
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-08 15:42:46 +00:00
Mike Klein
688ded2ee6 Add a blend-wrong mode to SkRasterPipelineBlitter.
This keeps correct linear blending as the only option exericsed,
but it should be easy to see how to turn on blend-wrong mode.

Change-Id: I7d87ef8ed00e8990107bd36b826f8d229d930400
Reviewed-on: https://skia-review.googlesource.com/8125
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-08 15:38:49 +00:00
Matt Sarett
f575993686 Revert "Revert "Disallow readPixels() conversions from untagged srcs to tagged dsts""
This reverts commit 8461506c8b.

Reason for revert: Fixed some Chrome code, let's try this again.

Original change's description:
> Revert "Disallow readPixels() conversions from untagged srcs to tagged dsts"
> 
> This reverts commit ccfd1083a7.
> 
> Reason for revert: Roll is failing.
> 
> Original change's description:
> > Disallow readPixels() conversions from untagged srcs to tagged dsts
> > 
> > This might break the roll into Chrome.  But let's see how.
> > 
> > BUG=skia:6021
> > 
> > Change-Id: I2698b5d6fe72d01bed0dc64703b592a03d441a80
> > Reviewed-on: https://skia-review.googlesource.com/7127
> > 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: I4b62178fd7c23f43cf69ca69fc14526ecd503956
> Reviewed-on: https://skia-review.googlesource.com/7205
> Commit-Queue: Matt Sarett <msarett@google.com>
> Reviewed-by: Matt Sarett <msarett@google.com>
> 

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

Change-Id: I3f3f33fe6b84fbd5c537b60ed5c8b9201d529a6a
Reviewed-on: https://skia-review.googlesource.com/8156
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-08 14:49:00 +00:00
Robert Phillips
696b29346e Revert "Remove asTextureRef from SkSpecialImage & update effects accordingly"
This reverts commit e88cf6b7aa.

Reason for revert: See if breaking DEPS roll

Original change's description:
> Remove asTextureRef from SkSpecialImage & update effects accordingly
> 
> This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef
> 
> Change-Id: I5ed8e475bb9688453b825ae4500ed0e8d324b5ac
> Reviewed-on: https://skia-review.googlesource.com/7995
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

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

Change-Id: I227cbd5fcaf7e2f86e858331d9ec7ff7a5f203ca
Reviewed-on: https://skia-review.googlesource.com/8184
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-08 12:49:16 +00:00
bungeman
83f1f44e3a SkFontHost_mac.cpp#create_descriptor to handle nullptr familyName.
Currently create_descriptor will crash if handed a familyName which is
nullptr. Instead it should simply create a descriptor without a family name
and allow CoreText to resolve a default font. This further simplifies
default font handling on Mac.

BUG=skia:6196

Change-Id: I0a2d081240e4cb5bd51dd3516ea2595277055fe0
Reviewed-on: https://skia-review.googlesource.com/8071
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-02-07 23:21:45 +00:00
Ethan Nicholas
a51740c4f8 added support for sk_VertexID
Change-Id: If3a2b7527ae6805ba54860c6ca6219431e2f3f76
Reviewed-on: https://skia-review.googlesource.com/8145
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-07 23:15:34 +00:00
Ethan Nicholas
8c3f4ae56a fixed assertion error when calling matrixCompMult()
Change-Id: I8e702eededf150e82226477558118f1bb7e66fef
Reviewed-on: https://skia-review.googlesource.com/8138
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-07 23:08:47 +00:00
Matt Sarett
5c49617f3d Reland "Respect canvas size and frame offset in webp decoder"
Original Change Reviewed At:
https://skia-review.googlesource.com/c/7800

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

BUG=skia:6185

Change-Id: I1a7732832d37920545c1775d7c7c65b43ed810f9
Reviewed-on: https://skia-review.googlesource.com/8157
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-07 22:40:13 +00:00
Robert Phillips
e88cf6b7aa Remove asTextureRef from SkSpecialImage & update effects accordingly
This CL also renames SkSpecialImage::asTextureProxy to asTextureProxyRef

Change-Id: I5ed8e475bb9688453b825ae4500ed0e8d324b5ac
Reviewed-on: https://skia-review.googlesource.com/7995
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-07 21:41:00 +00:00
Mike Klein
a960095e2e Tack on ret instructions to each SkSplicer stage.
This is just a warm up refactor to make the existing stages more
amenable to running in place without splicing.  Hopefully the driver
interpreter loop for that will be my next CL.

Change-Id: Ie76868b59af8ff3a10e2cd64f03c3f8d8a5031dd
Reviewed-on: https://skia-review.googlesource.com/8142
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-07 20:09:37 +00:00
Herb Derby
83e939bcb7 Use SkArenaAlloc in the SkAutoBlitterChoose code.
- Added default implementation of onMakeContext to support use in android.

Searches for uses:
"public SkShader"  package:^chromium$ -file:^src/third_party/skia
package:^aosp.* "public SkShader"  -file:external/skia -file:.*third_party/skia
package:^android$ "public SkShader"  -file:external/skia -file:.*third_party/skia

... shows that no subclass overrides onCreateContext.

TBR=reed@google.com
TBR=mtklein@google.com

Change-Id: I8bd5f57a79534574e344b165d31dccee41c31767
Reviewed-on: https://skia-review.googlesource.com/8140
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-07 20:01:20 +00:00
Matt Sarett
77a7a1b57c SkColorSpace: remove named API, add gamut API
Reland from: https://skia-review.googlesource.com/c/8021/

BUG=skia:

Change-Id: I18985f130587b15fccbc86b76b2bb5c49ba5ba8a
Reviewed-on: https://skia-review.googlesource.com/8136
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-07 19:33:37 +00:00
Robert Phillips
dd8b72ae73 Revert "Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code."
This reverts commit 2b57b7f7a7.

Reason for revert: Android compile failing

Original change's description:
> Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code.
> 
> 
> TBR=reed@google.com
> Change-Id: Iefb044bf7657fbf982f23aa91a3f4d013ce2c626
> Reviewed-on: https://skia-review.googlesource.com/7786
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
> 

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

Change-Id: Id09c35377dddae0811d998b7d0c34c422325a5bc
Reviewed-on: https://skia-review.googlesource.com/8129
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-07 17:28:21 +00:00
Matt Sarett
1f2fff2544 Revert "SkColorSpace: remove named API, add gamut API"
This reverts commit ecaaf6f1c1.

Reason for revert: Breaks everything

Original change's description:
> SkColorSpace: remove named API, add gamut API
> 
> BUG=skia:
> 
> Change-Id: I01c5e1874c9a034febc64e25b3aaafb5050393a6
> Reviewed-on: https://skia-review.googlesource.com/8021
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Matt Sarett <msarett@google.com>
> 

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

Change-Id: Ief5a0a4eeabe75a21f7512e23fc15309151066c4
Reviewed-on: https://skia-review.googlesource.com/8127
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-07 17:06:24 +00:00
Matt Sarett
ecaaf6f1c1 SkColorSpace: remove named API, add gamut API
BUG=skia:

Change-Id: I01c5e1874c9a034febc64e25b3aaafb5050393a6
Reviewed-on: https://skia-review.googlesource.com/8021
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-07 17:00:58 +00:00
Brian Osman
041f7dfc57 Bring back SkImage::makeTextureImage
Ensures that an image is GPU backed on the passed-in GrContxt. The new
version requires a destination color space (intended usage of the image),
so we can make a proper decision about decoded format.

This reverts commit d263413a2a.

BUG=skia:

Change-Id: Ibccddbafc301779559592045ed5a5fa9264e7432
Reviewed-on: https://skia-review.googlesource.com/8116
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-07 16:58:07 +00:00
Matt Sarett
2bb94e8147 Revert "Reland "Respect canvas size and frame offset in webp decoder""
This reverts commit 604971e39a.

Reason for revert: Strange vk failures

Original change's description:
> Reland "Respect canvas size and frame offset in webp decoder"
> 
> Original Change Reviewed At:
> https://skia-review.googlesource.com/c/7800
> 
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN
> 
> BUG=skia:6185
> 
> Change-Id: I92baa9070e15ef3c62dd347c08c906c2715dda10
> Reviewed-on: https://skia-review.googlesource.com/8050
> Reviewed-by: Matt Sarett <msarett@google.com>
> Commit-Queue: Matt Sarett <msarett@google.com>
> 

TBR=msarett@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6185
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN

Change-Id: Ice93b62c55ea13fce83140567be16225ff0e2fdb
Reviewed-on: https://skia-review.googlesource.com/8123
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-07 16:39:39 +00:00
Mike Klein
a13b248e92 Remove _lowp SkSplicer experiment for now.
SkSplicer is an experiment, and _lowp SkSplicer is an experiment^2.
It's not that it's a bad idea... it just makes working on the main
SkSplicer experiment more complicated.

While not live at head, it'll live on in my heart.

Change-Id: Ib099370be25623e4cf1bbbca211634e3fe92b475
Reviewed-on: https://skia-review.googlesource.com/8112
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-07 16:15:19 +00:00
Brian Salomon
ea69686da1 Another workaround for libstdc++ unique_ptr
Change-Id: Ic08bf6f23e2509db332fcc0f6cab577189c2f558
Reviewed-on: https://skia-review.googlesource.com/8115
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-07 15:46:56 +00:00
Herb Derby
2b57b7f7a7 Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code.
TBR=reed@google.com
Change-Id: Iefb044bf7657fbf982f23aa91a3f4d013ce2c626
Reviewed-on: https://skia-review.googlesource.com/7786
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-07 15:43:45 +00:00
Brian Salomon
aff27a23ad Use SkVertices for tessellated spot and ambient shadow rendering.
Change-Id: Ia81e7a771d345286533752708e4304c1ae3b97c9
Reviewed-on: https://skia-review.googlesource.com/8042
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
2017-02-07 15:03:48 +00:00
Brian Salomon
67386d44c7 ShadowUtils: Fix umbra inset calculation when determining if umbra is fully occluded.
Change-Id: Id0db49ad45b341d39abf7ee532ecc0799a832192
Reviewed-on: https://skia-review.googlesource.com/8079
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-02-07 14:38:16 +00:00
Robert Phillips
8bb3b21a4a Add GM to exercise some of the darker corners of SkMagnifierImageFilter
An upcoming CL (https://skia-review.googlesource.com/c/7995/ (Remove asTextureRef from SkSpecialImage & update effects accordingly)) modifies some untested portions of the SkMagnifierImageFilter.

This adds a test to prevents regressions.

Change-Id: I9fa406f699e39fa393212e7f63a457b015b36edb
Reviewed-on: https://skia-review.googlesource.com/8023
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-07 13:06:48 +00:00
Brian Salomon
fab30a30b6 Add a fast case for copying vertices in GrDrawVerticesOp.
Uses Sk2f to apply a translation-only matrix when the vertex attributes contain only positions and colors.

We should look at how to generalize this for other draw vertices cases and other ops.

Change-Id: I5eb692982dc216b1c0a71209c969672b0562143c
Reviewed-on: https://skia-review.googlesource.com/8103
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-07 00:41:33 +00:00
Brian Osman
a950a86d22 Fix rounding error with tiled bitmap draws
We were snapping the top-left of the destination rectangle to integers,
but using the original (fractional) size. This led to us losing rows or
columns of pixels at the first tile boundary.

Also added a GM that demonstrates the bug (now renders correctly).

BUG=skia:

Change-Id: I50629dab9dd90fedad2c7e3393a1b1d1c7a8d45e
Reviewed-on: https://skia-review.googlesource.com/8102
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-06 22:34:19 +00:00
Stephen White
92eba8a5ef GrTessellator (AA): improve antialiasing of thin shapes.
(Long description, but actually quite a small change.)

This is the first change inspired by the "straight skeleton" algorithm.
This algorithm gives us a mental model to describe the edge-antialiasing
problem: consider the shape as walls of a house, the outer alpha
geometry is a 45-degree "roof" up to a flat top at a height of 1.0
(the filled interior).  The faces of the sloping roof join at the
bisectors between the inner and outer points.

When the shape being drawn is sufficiently thin, there should be no flat
roof, and the sloping roof meets at an edge (the straight skeleton).

This patch detects cases where an edge inverts on stroking, which
indicates that the flat roof has turned inside out, and should be
reduced to a point instead. The model above describes what to do:
follow down the "roof" along the bisectors to their intersection.
This is the point to which an inverted edge should be collapsed.
Fortunately, the bisector edges are easy to compute: they're the
connector edges joining inner and outer points. Linearly interpolating
the distance from the top to the bottom point gives the alpha we
should use to approximate coverage.

Now that we are correctly handling inversions, bevelling outer edges
is no longer necesary, since pointy outer edges won't cause nasty
opaque artifacts.

A couple of other quality improvements: on intersection, always lerp
the alpha of connector edge, even if the opposite edge is an inner edge
(later, when these edges are collapsed, we need this value to compute
the correct alpha). Fix the case where an intruding outer vertex
intersects exactly with an inner edge by maxing its alpha with the
computed value in check_for_intersection(). Finally, we also no longer
round off the intersections produced by Line::intersect(), since it
introduces a loss of quality with no measurable performance benefit.

Change-Id: I6fd93df3a57fffc0895e8cb68adbdba626ded0f1
Reviewed-on: https://skia-review.googlesource.com/8028
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>
2017-02-06 21:40:05 +00:00
Brian Salomon
3a97054456 Make workaround for std::unique_ptr<const T[]> bug in old libstdc++ work.
BUG=skia:

Change-Id: I58a07d4ce35bdd03e7edcf50e88d9982b3885546
Reviewed-on: https://skia-review.googlesource.com/8101
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-06 20:34:55 +00:00
Brian Salomon
604c9890cc Work around broken std::unique_ptr<const T[]> constructor from std::unique_ptr<T>&& in older libstdc++.
Change-Id: Ie4190800369515168203ff98b3e3fe0e2d790f1a
Reviewed-on: https://skia-review.googlesource.com/8072
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-06 19:59:02 +00:00
Herb Derby
6852170229 Add sk_sp make variant to SkArenaAlloc.
R=bungeman@google.com
BUG=skia:

Change-Id: Iec588cb6946f0230ff3d3ec46499c365aa6b8d09
Reviewed-on: https://skia-review.googlesource.com/8067
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-06 19:27:14 +00:00
Ethan Nicholas
e1d9cb82bf Revert "Added dead variable / code elimination to skslc."
This reverts commit 113628d761.

Reason for revert: Looks to have caused https://bugs.chromium.org/p/chromium/issues/detail?id=688939

Original change's description:
> Added dead variable / code elimination to skslc.
> 
> BUG=skia:
> 
> Change-Id: Ib037730803a8f222f099de0e001fe06ad452a22c
> Reviewed-on: https://skia-review.googlesource.com/7584
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
> 

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

Change-Id: I85599e4ca2bc6bfd782edc163f67b64195d6ae65
Reviewed-on: https://skia-review.googlesource.com/8077
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2017-02-06 19:25:13 +00:00
Jim Van Verth
a84898dbb8 Have ShadowTessellators transform path; add SkShadowTessellator base class
BUG=skia:6119

Change-Id: I37639ebab43c9f32f48d2d7dbb8d4619efb9b09e
Reviewed-on: https://skia-review.googlesource.com/8061
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-06 19:15:16 +00:00
Matt Sarett
a8f4139279 Revert "Allow conversion from non-opaque to opaque"
This reverts commit bfe8dca7df.

Reason for revert: I believe I've fixed all the call sites,
so this is now ok.

Original change's description:
> 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>
> 

TBR=msarett@google.com,robertphillips@google.com,reviews@skia.org
# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I2369c9b81321ca83a7063bb85e66ddbc03914d2b
Reviewed-on: https://skia-review.googlesource.com/8073
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-02-06 19:03:54 +00:00
Brian Osman
d05cdc310c Fix two bugs when deciding to tile. Large images were always tiling.
usedTileBytes was actually usedTileTexels, so we underestimated how much
of the image we were using by a factor of 4.

Then, to determine if we were using more than 50% of the image, we wrote:
usedTileBytes < 2 * bmpSize;

That meant we were off by another factor of 4.

BUG=skia:

Change-Id: Iba2acc75c5e7603543f05e4473b73f76a2937d7a
Reviewed-on: https://skia-review.googlesource.com/8063
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-06 19:03:36 +00:00
Hal Canary
5e221e7ca2 SkXPS: new document API.
Now requires a IXpsOMObjectFactory pointer.  This will allow sandboxing
to be used in Chromium.  (Chrome will create a IXpsOMObjectFactory, then
go into sandbox mode, then call SkDocumenent::MakeXPS().)

Change-Id: Ic4b48d4b148c44e188d12a9481fb74735546528a
Reviewed-on: https://skia-review.googlesource.com/8052
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-06 19:00:28 +00:00
Matt Sarett
604971e39a Reland "Respect canvas size and frame offset in webp decoder"
Original Change Reviewed At:
https://skia-review.googlesource.com/c/7800

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

BUG=skia:6185

Change-Id: I92baa9070e15ef3c62dd347c08c906c2715dda10
Reviewed-on: https://skia-review.googlesource.com/8050
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-06 18:55:41 +00:00
Hal Canary
9e2a319a1b SK_USE_SDL is never defined
This CL also removes dead code, SkOSWindow_SDL.cpp.

Change-Id: I659dc271a4bcceba7fe29ac5ac6e79d684153870
Reviewed-on: https://skia-review.googlesource.com/8070
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-06 18:52:54 +00:00
Mike Klein
160907f8de Clean up more references to GYP.
Delete files only used by GYP, and files that used GYP.  Neither can
possibly be actively used.  Beyond that, just a couple doc tweaks.

Change-Id: I0220d7226e7bb9ed7c54a7d8f2906a718313c521
Reviewed-on: https://skia-review.googlesource.com/8062
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Hal Canary <halcanary@google.com>
2017-02-06 17:55:35 +00:00
Brian Salomon
199fb875c5 Add refcnt'ed immutable vertices class for SkCanvas::drawVertices.
Change-Id: I44a62f5efc674d0adbbf4a33690c3ded9fab3803
Reviewed-on: https://skia-review.googlesource.com/8040
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-06 17:52:22 +00:00
Hal Canary
abc88d2636 SkXPS: Begin refactoring SkXPSDevice
A later CL will move all document-level fields  and methods into
SkXPSDocument.

  * SkXPSDocument cnstructor requires a xps factory ptr.

  * All device layers share ownership of a single factory.

  * renames SkDocument_XPS to the easier-to-say SkXPSDocument.

  * Moves autocoinitialize to DM.

TODO: pipe the IXpsOMObjectFactory* into the SkDocument api.

No change in rendered documents.

Change-Id: I8a4680a3603951b1ce5f6c1de48714d4902061a9
Reviewed-on: https://skia-review.googlesource.com/7998
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-06 17:13:38 +00:00
Mike Reed
a99b6ceff9 start removing uses of SkScalarMul
BUG=skia:6197

Change-Id: Ic444c7ee4ca547f483dc8232dcacd6d4ba87d913
Reviewed-on: https://skia-review.googlesource.com/8041
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-06 15:12:41 +00:00
Matt Sarett
0312a0cec9 Add toXYZD50() to SkColorSpace API
BUG=skia:

Change-Id: I996877c9482453fc5ff58b0f66fa29715bea2191
Reviewed-on: https://skia-review.googlesource.com/8024
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-06 14:00:13 +00:00
Robert Phillips
b3050b91f0 Revert "Respect canvas size and frame offset in webp decoder"
This reverts commit 0f33970c8d.

Reason for revert: msan complaint

Original change's description:
> Respect canvas size and frame offset in webp decoder
> 
> BUG=skia:6185
> 
> Change-Id: Id543cb689a5e33b800ebbc18f4a234e78a4c4298
> Reviewed-on: https://skia-review.googlesource.com/7800
> Commit-Queue: Matt Sarett <msarett@google.com>
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> 

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

Change-Id: Ie01dc7d7ebfebe36a235335d0d8cb28bccb2ecff
Reviewed-on: https://skia-review.googlesource.com/8046
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-06 13:43:16 +00:00
Jeremy Roman
20fbada09b Remove unused assignment in SkScan::AntiFillXRect.
Found by static analysis.

Change-Id: I566da96938a735d29acc854cd700fcb944bc09fc
Reviewed-on: https://skia-review.googlesource.com/8026
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-05 15:37:40 +00:00
Matt Sarett
0f33970c8d Respect canvas size and frame offset in webp decoder
BUG=skia:6185

Change-Id: Id543cb689a5e33b800ebbc18f4a234e78a4c4298
Reviewed-on: https://skia-review.googlesource.com/7800
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-02-03 21:45:30 +00:00
Brian Salomon
d1ac9823fd Improved SkShadowUtils caching
Multiple ambient and spot shadows can be cached for each geometry.

Spot shadows can be reused when x,y light offset is different.

We categorize spot shadows for rrects as either transparent, opaque with partial umbra occlusion, or opaque with full umbra occlusion and use that to improve cache performance.

Change-Id: Id530bdaa5092edb46c8f584979090fbb766307fc
Reviewed-on: https://skia-review.googlesource.com/7987
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-03 21:36:13 +00:00
Florin Malita
8d3ffad811 Revert "Revert "Don't instantiate shaders with non-invertible local matrix""
This reverts commit 0e86725ba4.

Reason for revert: landed Blink fix, should pass layout tests now

Original change's description:
> Revert "Don't instantiate shaders with non-invertible local matrix"
> 
> This reverts commit ebfbba9bbd.
> 
> Reason for revert: breaks chrome blink tests for linux_trusty_blink_rel
> 
> Original change's description:
> > Don't instantiate shaders with non-invertible local matrix
> > 
> > Change-Id: If11f7d57cbf45929632d858f91c02d8f5fa9f442
> > Reviewed-on: https://skia-review.googlesource.com/7885
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Florin Malita <fmalita@chromium.org>
> > 
> 
> TBR=fmalita@chromium.org,reed@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: I41c5513523c27dc4bad68008f08369185897b7a2
> Reviewed-on: https://skia-review.googlesource.com/7948
> Commit-Queue: Hal Canary <halcanary@google.com>
> Reviewed-by: Hal Canary <halcanary@google.com>
> 

TBR=halcanary@google.com,reviews@skia.org,fmalita@chromium.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I373ea6c61a256fd8cfbfb34f8b2d39a3ff8109db
Reviewed-on: https://skia-review.googlesource.com/8003
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-02-03 18:21:33 +00:00
Mike Reed
8d3196bdfc expose new tight-bounds method on SkPath
BUG=skia:

Change-Id: Ie50df49c1758af203042a84dc2cd505046373d2c
Reviewed-on: https://skia-review.googlesource.com/7996
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-03 17:26:43 +00:00
Brian Salomon
0dda9cb881 Make shadow tessellators fail gracefully and add unit test for this.
Change-Id: I42a9d06a18928588347a6dea2f6150518ba29aa8
Reviewed-on: https://skia-review.googlesource.com/7886
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-02-03 16:08:46 +00:00
Stephen White
48ded38da9 GrTessellator (AA): Fix for missing fill artifacts.
Some regions were being incorrectly filled due to setting
connector edges winding to zero *after* merging collinear edges.
This would cause the merge to add the wrong winding value. Putting the
adjust before the call to merge_collinear_edges() fixes the problem.

Also, some pixels were not getting coverage due the inner edge being
+1 winding. Using -2 winding for inner edges ensure the interior
regions are -1 winding, which gives coverage in more cases of
self-intersection. This required flipping the comparisons on the
intruding-vertices workaround.

BUG=skia:

Change-Id: I216fa3d30c196a6b7773637e48802f6572c993c7
Reviewed-on: https://skia-review.googlesource.com/7962
Commit-Queue: Stephan White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-03 15:47:07 +00:00
Jim Van Verth
0f90668c12 Initialize some more variables in SpotShadowTessellator
BUG=skia:6119

Change-Id: Id3a3042df6254e3367713b82f3b08257e0be71b1
Reviewed-on: https://skia-review.googlesource.com/7992
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-03 15:29:37 +00:00
Mike Reed
0d7dac8fb8 experimental tight-bounds
not sure about api -- perhaps it could just return the bounds, and make them 0,0,0,0 if the path
is empty -- the caller can trivially know if the path is empty themselves.

BUG=skia:

Change-Id: I2dbb861e8d981b27c5a6833643977f5bd6802217
Reviewed-on: https://skia-review.googlesource.com/7989
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-03 15:19:05 +00:00
Ethan Nicholas
113628d761 Added dead variable / code elimination to skslc.
BUG=skia:

Change-Id: Ib037730803a8f222f099de0e001fe06ad452a22c
Reviewed-on: https://skia-review.googlesource.com/7584
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
2017-02-03 14:37:55 +00:00
Brian Salomon
3f36369a94 Batch across matrix changes in drawVertices and add GM to test.
Change-Id: I6b08d37781e3c715a1d9d8c9729667ec78625836
Reviewed-on: https://skia-review.googlesource.com/7949
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-03 02:34:37 +00:00
Brian Salomon
66085ed417 Revert "Revert "Spot shadow cleanup and optimization""
This reverts commit aa2bd8f726.

Change-Id: Iaa5d9e649d842889ff031eeb11d0547270968420
Reviewed-on: https://skia-review.googlesource.com/7981
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-02 21:25:40 +00:00
Hal Canary
b39b09e447 SkXPSDevice inherits from SkBaseDevice
Change-Id: I81ed36da33821df36d11806a6349a2ede61c6f73
Reviewed-on: https://skia-review.googlesource.com/7942
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-02 20:22:19 +00:00
Hal Canary
0e86725ba4 Revert "Don't instantiate shaders with non-invertible local matrix"
This reverts commit ebfbba9bbd.

Reason for revert: breaks chrome blink tests for linux_trusty_blink_rel

Original change's description:
> Don't instantiate shaders with non-invertible local matrix
> 
> Change-Id: If11f7d57cbf45929632d858f91c02d8f5fa9f442
> Reviewed-on: https://skia-review.googlesource.com/7885
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> 

TBR=fmalita@chromium.org,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I41c5513523c27dc4bad68008f08369185897b7a2
Reviewed-on: https://skia-review.googlesource.com/7948
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2017-02-02 19:49:39 +00:00
Hal Canary
aa2bd8f726 Revert "Spot shadow cleanup and optimization"
This reverts commit 47784c18ad.

Reason for revert: MSAN, ASAN

Original change's description:
> Spot shadow cleanup and optimization
> 
> Fixes clip polygon and centroid calculation.
> Clips interior umbra region against original path.
> 
> BUG=skia:6119
> 
> Change-Id: I37a740ae004c38b75405e05158d92cf9fd954eda
> Reviewed-on: https://skia-review.googlesource.com/7823
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

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

Change-Id: I7a4d9fa3af0d30feac999229f2e94aae2bdafc9c
Reviewed-on: https://skia-review.googlesource.com/7947
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-02 19:48:13 +00:00
Jim Van Verth
47784c18ad Spot shadow cleanup and optimization
Fixes clip polygon and centroid calculation.
Clips interior umbra region against original path.

BUG=skia:6119

Change-Id: I37a740ae004c38b75405e05158d92cf9fd954eda
Reviewed-on: https://skia-review.googlesource.com/7823
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-02 18:50:49 +00:00
Ethan Nicholas
cae3a4c8ab Revert "Replaced all calls to fragmentPosition() with sk_FragCoord"
This reverts commit de4d301881.

Reason for revert: several Chrome rendering bugs on Mac

BUG=skia:

Change-Id: I492082b0b7e7c902ede4b598c5809f604d210ce1
Reviewed-on: https://skia-review.googlesource.com/7887
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-02 18:34:02 +00:00
Florin Malita
ebfbba9bbd Don't instantiate shaders with non-invertible local matrix
Change-Id: If11f7d57cbf45929632d858f91c02d8f5fa9f442
Reviewed-on: https://skia-review.googlesource.com/7885
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-02 16:03:58 +00:00
Robert Phillips
41511604ae Force instantiation in GaussianBlur to hopefully prevent (and diagnose) Chrome crash
BUG=687174

Change-Id: Ieb9930feca9abad9220a1a099e7dd247e6eff70e
Reviewed-on: https://skia-review.googlesource.com/7920
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-02 15:48:05 +00:00
Hal Canary
529bcd6db7 Revert "Revert "SkScalar: delete code that doesn't compile.""
This reverts commit 8233fc82b0.

Change-Id: Ia32ccdb3b385ed28e1b41e553c7d80cf803522cc
Reviewed-on: https://skia-review.googlesource.com/7899
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-02 15:43:08 +00:00
Leon Scroggins
8233fc82b0 Revert "SkScalar: delete code thqat doesn't compile."
This reverts commit 565da18f6e.

Reason for revert:  breaking android roll:

https://googleplex-android-review.git.corp.google.com/#/c/1853481/-1..1

Some code in Android references SK_SCALAR_IS_FLOAT:
https://cs.corp.google.com/android/frameworks/base/core/jni/android/graphics/Interpolator.cpp?q=frameworks/base/core/jni/android/graphics/Interpolator.cpp&sq=package:android&l=30

Original change's description:
> SkScalar: delete code thqat doesn't compile.
> 
> Change-Id: I8a5c404d6151fca79af5c5a98d4b44924c0ade52
> Reviewed-on: https://skia-review.googlesource.com/7882
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>
> 

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

Change-Id: I4df06c4593abaa3ac3877b270a41aec7a9c3fc8f
Reviewed-on: https://skia-review.googlesource.com/7888
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2017-02-02 13:12:36 +00:00
Hal Canary
6f6961ebad make GR_TEST_UTILS=0 work
Change-Id: Icce35140ca08b65217b32e6b1ffc6ad2f38ab37f
Reviewed-on: https://skia-review.googlesource.com/7840
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-02 12:49:17 +00:00
Robert Phillips
351b045a5e Have Vulkan advertise that compressed textures are currently unsupported
This allows the ProxyTest to run on the Vulkan backend.

Change-Id: I89a3212bdc2d4a1ceb0c27d0ff60f558d7b12647
Reviewed-on: https://skia-review.googlesource.com/7880
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-02 12:31:40 +00:00