Commit Graph

24993 Commits

Author SHA1 Message Date
Brian Salomon
f8c187c22b Revert "Revert "Blend functions as SkSL built ins.""
Changes since the last time:

1) Adds workaround for Adreno 6xx devices.

2) Restores ProcessorOptimizationTest threshold to its original values.

This reverts commit 682ba43ba3.

Change-Id: Ic6e65311fc845926fc35c223d6bb13ee2356e16c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261086
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-19 20:21:16 +00:00
Jim Van Verth
73d4615160 Add wireframe support to Metal.
Also fixes segfault with cached shaders.

Change-Id: I32be8c3dd28e93ffabc61437e62be729e4fc2d32
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261085
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2019-12-19 19:40:22 +00:00
Mike Reed
8845c377c0 extend imageshader updater to handle perspective
- have to commit to a perspective stage (used to only use affine)
- coordinate between updater and shader/stages

Benches:

verts 608  --> 270
atlas 17.9 --> 5.6

Change-Id: I1d1ce9eb27b49d2ddcc610f6ea5c4720901b9e1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261136
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2019-12-19 18:56:39 +00:00
Michael Ludwig
4ef1ca1d08 Fix int/uint comparison in TextureOp asserts
Bug: skia:9705
Change-Id: I288bd125739cfe3dc38d8a8150a11a1c0115103a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261079
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-12-19 16:32:49 +00:00
Robert Phillips
ead321bdfe Add glue to link the GrContext createCompressedBackendTexture API to the GL and Vulkan backends
Bug: skia:9680
Change-Id: I05230ec8fd4f9733ba868fd595b163a79c30d32a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261081
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-19 16:15:49 +00:00
Jim Van Verth
de30e4233f Clean up GenDistanceFieldFromPath.
* Disabled use of PathOps Simplify() due to missing segments in final path.
* Added test to GM to catch Simplify() bug.
* Added comments and changed variables to make the code easier to follow.

Change-Id: I25e024e7d568468e29a76badb455355254fe46ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259809
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-19 15:40:47 +00:00
Robert Phillips
d04ddcd6c5 Update GL and Vulkan backends to support compressed backend formats
We're running out of pretty ways to split up the omnibus CL. This just
brute force updates the two working backends (sorry Metal).

Bug: skia:9680
Change-Id: I62ce1229ff40e3d4e194337f2fe0acddb3f934e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260897
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-19 15:02:17 +00:00
Brian Osman
173e153552 Runtime SkSL: API sketch for child shaders/effects
Only works on GPU backend for now, and still only supports
single-argument sample (at original coords).

Change-Id: I4c36ebd0c370ca65126786802c5ea268c3f32edd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260899
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-19 14:40:17 +00:00
Jian Cai
9e0afb791a Fix clang warnings
Explicitly convert unsigned int to uint64_t before converting them to
uint16x4_t or uint8x8_t.

BUG=chromium:1035559

Change-Id: I7d0084c1ab9393063a15972a714d89db4e5e1afe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260981
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-19 00:57:12 +00:00
Mike Reed
2c38315710 hide/remove obsolete/tricky SkMatrix methods
Change-Id: Iee399b929e8ca1a7326a326a643539d05e333d81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260818
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-12-18 22:29:52 +00:00
Mike Reed
c880346ba5 Detect when perspective is really affine, and update the matrix as we handoff
the ctm to the device.

This catches cases where the matrix bottom-row might look like
   [ 0, 0, not_one ]

That would get categorized as perspective, but in reality that matrix
behaves like affine. If we can detect that pattern, and scale the entire
matrix by 1/not_one, we don't change its behavior, but it will now be
categorized as affine (seen as simpler/faster).

bug: skia:9698
Change-Id: Ib77b647c1d32f73538b1c0d8e9e49ec533610b3a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260776
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-12-18 21:25:43 +00:00
Brian Salomon
60931454f2 "fix" formatting of auto generated cpp from fp
TBR: egdaniel@google.com
Change-Id: I24da4ec120ccc46383f7e8041d78de7ed1e5312c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260900
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-18 20:12:16 +00:00
Brian Salomon
766098de94 Make sure random unit test processors use an alpha type compatible with
texture data.

It'd probably be good to provide an opaque texture that has an alpha
channel and widen the range of color types that are present in the
future.

Change-Id: I5587a479f7e2f3991f8ae27a4cd44afc533324e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260696
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-18 19:40:11 +00:00
Robert Phillips
0d7e2f158e Change signature of several gpu backend methods
This makes:

onCreateBackendTexture better match onCreateCompressedBackendTexture to better reflect our mipMapping assumptions.

GrCompressedDataSize better match GrComputeTightCombinedBufferSize to allow the used of generated mipmap data.

createVkImageForBackendSurface and createMtlTextureForBackendSurface take a GrRenderable instead of a raw bool

Change-Id: Ifb7d60bc0e626dfbf1cea0d362bcb04093a71ba7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260780
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-12-18 18:27:15 +00:00
Brian Osman
d927bd246d Runtime SkSL: Reflect inputs in SkRuntimeEffect
Adds a new structure to describe the inputs, including type,
shape, name, etc. This removes any references to the type
variables in the compiler's context, and centralizes the
logic for parsing those type variables.

Also normalizes the rules for what types are supported.
(This was inconsistent among the various functions before).

Now:
  - bool and int must be 'in'
  - float may be 'in' or 'uniform'
  - float[2-4] and matrices must be 'uniform'

Includes a new Slide that allows for interactive editing
of a runtime shader.

Change-Id: Ic2af68a80c8bb645ba96417c430da24de0a9c2d8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260497
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-18 17:37:55 +00:00
Brian Salomon
4dea72a987 Reland x3 "Remove most of GrConfig.h"
This change makes this safe for Chrome:
https://skia-review.googlesource.com/c/skia/+/260779

This reverts commit 3f1a98b779.

Change-Id: Ic6886ceabbf626040fc527ea10fe06cbe74a3854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260783
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-18 17:14:45 +00:00
Robert Phillips
ee94693c7a Fix a sprinkling of GPU issues
Change-Id: I0123fdc3b492f56f8bc9ff592ffe74f854be380b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260816
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-18 16:53:55 +00:00
Chris Dalton
1215cda5a2 Add a kWireframe flag to GrPipeline
Adds the flag to GrPipeline, as well as a 'w' keystroke in viewer for
toggling the alternate global wireframe mode.

Change-Id: I385c31320a5fa2cec79b527a91fa876b19cdff89
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260747
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-12-18 15:55:54 +00:00
Brian Salomon
8d97c155be Remove SkRuntimeEffect.h include from SkColorFilterPriv.h
Also, less importantly, from SkRTShader.h

Change-Id: I0d7a56583cdd681bae6b2a08861daca33cc25fc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260779
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-18 15:33:15 +00:00
Mike Reed
190b82d67c Add clipping for perspective triangles
more UI for halfplanes in SampleClip

bug: skia:9698
Change-Id: I9463fe9860fa482ef05fc2113114e61524c38fc0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260500
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-17 23:24:18 +00:00
Greg Daniel
3f1a98b779 Reland "Revert "Remove most of GrConfig.h""
This reverts commit 5b9c7ba313.

Reason for revert: Looks to still be breaking chrome

Original change's description:
> Revert "Revert "Remove most of GrConfig.h""
> 
> This reverts commit b0047b57b7.
> 
> Change-Id: I0c6df9e9d5c3984987398d2b7f675005828ab3de
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260697
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com

Change-Id: Ia9860b39c562368f8a2f84283c52f55593333075
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260642
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-12-17 23:16:58 +00:00
Mike Klein
85a2ec672b de-skvx PackIDSkPoint()
This constructor is causing trouble on x86 GCC Debug builds.
I'm not sure if GCC is wrong or skvx is wrong, but taking the
skvx out of this constructor fixes a bunch of failing tests.

Do we have a perf test to see if this non-skvx version runs slower?

Bug: skia:9664
Change-Id: I27d679c8ad06883f0acc5cb4e7d2f436a50fbed7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260521
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-17 22:36:48 +00:00
Greg Daniel
14b57216e3 Rename GrCaps textureSwizzle to readSwizzle.
Change-Id: Ia5e2c4d3ca7346a1ad7559cd158ed632a70145bc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260699
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-12-17 21:59:08 +00:00
Brian Salomon
5b9c7ba313 Revert "Revert "Remove most of GrConfig.h""
This reverts commit b0047b57b7.

Change-Id: I0c6df9e9d5c3984987398d2b7f675005828ab3de
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260697
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-17 21:23:48 +00:00
Ethan Nicholas
8ae1b56d77 support more types from .fp files
Change-Id: Ic9df4565e6c704c92c20b3a0d24ca69406bb1ee0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260638
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2019-12-17 20:54:46 +00:00
Robert Phillips
b915c94384 Add interface(s) for compressed backend texture support
This is just the API level interface(s) and the backend virtual calls needed to implement them.

Bug: skia:9680
Change-Id: I6c655751e23ce18c6a184c925e8d472902e8a478
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259976
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-17 20:30:06 +00:00
Brian Salomon
682ba43ba3 Revert "Blend functions as SkSL built ins."
This reverts commit 3794db84e1.

Reason for revert: Still breaking Pixel3 processor optimization test

Original change's description:
> Blend functions as SkSL built ins.
> 
> GPU-only for right now.
> 
> Use in GrGLSLBlend::AppendMode.
> 
> Remove unused GrGLSLBlend::AppendRegionOp.
> 
> Change-Id: I23affe255a1adafa55f3a07ca6291dc84e18e213
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254678
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,brianosman@google.com,ethannicholas@google.com

Change-Id: I0675c0fe00d6540202ca0676fd9b07f3007d0404
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260639
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-17 20:20:46 +00:00
Brian Salomon
3794db84e1 Blend functions as SkSL built ins.
GPU-only for right now.

Use in GrGLSLBlend::AppendMode.

Remove unused GrGLSLBlend::AppendRegionOp.

Change-Id: I23affe255a1adafa55f3a07ca6291dc84e18e213
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254678
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-17 19:56:47 +00:00
Greg Daniel
1a372c3038 Add SurfaceView for SkImage_GpuYUVA's flattened proxy.
Bug: skia:9556
Change-Id: If71e0a9f375b7d30db2c09bd93ea690cd66fb99b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259817
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-17 19:29:10 +00:00
Brian Osman
dd5f655594 Don't allocate invalidation messages for generators that make uncacheable textures
Fixes a memory leak in Flutter.

Change-Id: Ia86ea8d4d78539dc28acb207e834861f274c0a5c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260538
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-17 18:35:33 +00:00
Mike Reed
cbeabd969b Can't fold ctm and color matrix when in perspective
Will work on clipping in follow-up CL

Change-Id: I1e4cc485555a435c740a4e5b50445f21e9ec20c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260404
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2019-12-17 10:49:42 +00:00
Herb Derby
fdb2b7d530 Add more thread annotations to SkStrike
* remove internalGetHead/Tail
* make validate private because fLock must be held.

Change-Id: If998cfe8ba0414e4520807034f841e40b94aa206
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260284
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-17 05:22:12 +00:00
Greg Daniel
46e366ae21 Remove GrTextureContext.
This change mostly just removes GrTextureContext and switches users to
directly creating GrSurfaceContexts. Outside of updating types, the factory
functions for creating Gr*Contexts have not been updated in this but will
be done in a followup.

Change-Id: I55257568d4c096c5fb48c5e38bfa2c01b824e7b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260289
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-16 20:45:10 +00:00
Robert Phillips
48257d74cd Spruce up GrDataUtils in preparation for compressed backend texture support
This fixes a bug in the computation of a solid colored ETC1 block and adds support for mipmapped ETC1 data.

Bug: skia:9680
Change-Id: I50be60d652bd974e0f11966d72228bea5441696c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259977
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-12-16 20:14:03 +00:00
Herb Derby
26300d64ca Make allocation of SkDescriptor do initialization
The SkDescriptor fuzzer did not call init. This caused
mysterious failures.

Make SkDescriptor's constructor initialize its fields.
Remove init().

Change-Id: Icab79c53b2d2878fceecfec06c886b71613cea6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260287
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-16 19:55:42 +00:00
Brian Salomon
5c60b751c7 Simplify proxy functionally exact check.
Now we know ahead of time what size approx textures will use when they're
allocated.

Change-Id: I9e15140496d15e7d6933aa03d0215222ac3b5be5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260040
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-16 19:40:41 +00:00
Robert Phillips
df6c734253 Add GrCaps::getConfigFromCompressedBackendFormat
When wrapping a backend texture we currently need to derive a GrPixelConfig from the backend format. The normal caps method (i.e., getConfigFromBackendFormat) is inappropriate for the compressed backend texture use case.

Bug: skia:9680
Change-Id: Ic4de7550c9a11f6e6207374c27d0ea23b8ab1575
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260044
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-16 19:19:11 +00:00
Chris Dalton
77912983a3 Include line numbers in Viewer's shader error windows
Change-Id: I83bea6e9c94431afba858b0e7b60456e8f9a2176
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260356
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-12-16 19:08:11 +00:00
Brian Osman
2fe83fed94 Runtime SkSL: Disallow 'when', 'tracked', 'key', 'ctype'
'key' was already disallowed later in the process, this catches it
earlier. The others are all unnecessary complications (and 'when' and
'tracked' weren't actually doing anything).

Change-Id: I39b4f0da73a7a12793484eb90decadc9c94b5693
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260281
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-16 18:55:41 +00:00
Robert Phillips
42716d4b4b Expand GrGpu::BackendTextureData to include compressed data
This will allow us to funnel compressed texture data back to the GPU-specific backend texture creation point(s).

Bug: skia:9680
Change-Id: I83a8ad0279c02aa4044b29fbce1d6ee1fcd9b784
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260039
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-16 18:44:11 +00:00
Chris Dalton
ce425afaf5 Add a "conservative raster" flag to GrPipeline
Change-Id: I20c9223e06cd48568f26fde19e2d768f044a00cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260312
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-12-16 18:24:00 +00:00
Robert Phillips
d6df7b55a5 Switch GrCaps::isFormatCompressed virtual to be 'compressionType'
Most call sites really only want the Boolean so I also added an isFormatCompressed helper.

Change-Id: I77f16033b69bc99329344201d2c85599d60cb757
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259168
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-16 18:00:00 +00:00
Greg Daniel
99448bf7ca Delete unused GrDebugMarkerOp.
Change-Id: Id3222effc21aea673b4d5d82a98e3e60f34512b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260278
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-12-16 16:43:34 +00:00
Brian Osman
7b1678a527 Major refactor of runtime effects
Adds SkRuntimeEffect, a ref-counted object to hold SkSL,
a Compiler, and compiled Program, along with uniform info.

Removes the old SkSLFP factory and factory cache types.
Caching is done by simply holding on to the effect (or
the shader/color filter factories, which own an effect).

The effect class is simply ref'd by the factories, the
shader and color filter types, and the FP.

NOTE: Changes to public headers only affect private functions.

Change-Id: I0c1401505cb234e83943ad4ef2db6680f4c69fb9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259336
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-16 15:59:04 +00:00
Herb Derby
7363021456 Simplify fRegenFlags
Change-Id: I2a7510f97dd8bdae4d5fbd2314718c14711a822a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260076
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-16 15:50:04 +00:00
Nigel Tao
7b8b0ec62c Have SkWuffsCodec.cpp link to Wuffs API docs
Bug: skia:8235
Change-Id: I2b2743c23cf53a27cc16f323aa53248bb9d46574
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260236
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-12-16 15:06:04 +00:00
Mike Reed
cf0e3c63fd remove dead code around old SkPath enums
Change-Id: I8dc06da48e881d3a9c40b47c799afe27bdcce819
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/257689
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2019-12-14 01:58:10 +00:00
Herb Derby
cd9ad409a9 More cleanup on GrStrikeCache
I missed the comments on cl/260038; do them in this cl.

Change-Id: If3a842385c935ae7833ae9ead6ba527e4e9f11a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260096
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-12-13 23:27:10 +00:00
Brian Osman
9d10abe300 Remove all layout(ctype=...) from runtime SkSKL
Most of these did nothing, and I'd like to remove the feature. Also, the
benchmark was using 'in uniform' which isn't supported (it asserts in
debug build).

Change-Id: I671ca69fdd50811a2090c7a03f5f23e6b38e6f96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260043
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-13 22:02:03 +00:00
Herb Derby
6d50a097f4 Use SkTHashTable in GrTextStrike
Change-Id: I29eb56e9fc7397836c2326bafd131554ad69c33f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259998
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-13 21:13:42 +00:00
Herb Derby
5c7f38a67d Revert "Remove unused fields from GrTextBlobKey"
This reverts commit 51b99659ed.

Reason for revert: These are important for the key.

Original change's description:
> Remove unused fields from GrTextBlobKey
> 
> Change-Id: Ibb42f943ffbed16867d714e9a1eee35d3f422b2a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259282
> Commit-Queue: Herb Derby <herb@google.com>
> Auto-Submit: Herb Derby <herb@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,herb@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: If34b4637136135d5d8a7b66c5b5ff1a24bd214c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259807
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-13 20:55:44 +00:00
Herb Derby
b26f813bd3 Convert GrStrikeCache to sk_sp<GrTextStrike>
Change-Id: I3f198c67dd271ff008f0696a012ed652ad5b37b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/260038
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-12-13 20:29:54 +00:00
Herb Derby
5bf5b04ed0 switch to SkPoint for the idea of drawingOrigin
Start making distinctions between three different uses
of matrices and origins.

* draw{M|O} - the information provided by the draw command.
* initial{M|O} - the drawing information captured when the
                 GrTextBlob was created.
* current{M|O} - the matrix and origin used to create the
                 data that is in the SubRun's vertices.

Where {M|O} == Matrix or Origin.

Rearrange computeTranslation and calculate_translation to
return vectors instead of taking out parameters.
Remove init() call.

Change-Id: I8644d95a560d7065d48424cafa51eaebe303d8b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259828
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2019-12-13 20:09:44 +00:00
Herb Derby
d938a8b886 Convert GrStrikeCache to use SkTHashTable
Change-Id: I24179f1eafd0f39735415d1d4194a34d5478f8e3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259432
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-12-13 20:04:14 +00:00
Herb Derby
17e7dfa377 More viewMatrix renaming
Change-Id: I9e6ecab124da0c03f31968270b2df79e3cd129d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259979
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-13 19:37:33 +00:00
Ben Wagner
ab51c2ce08 Add more variation support on Mac.
With the recent transition to creating fonts from data as CTFonts and
dropping variation support from macOS 10.11 and earlier, it is now
possible to reliably make variation clones and get the axis information.

Change-Id: Ia9a0922ac94a29e1508d2e74d4ce973751044866
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259421
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-12-13 18:16:13 +00:00
Herb Derby
1c5be7b197 Rename viewMatrix to drawMatrix, initialMatrix, or currentMatrix
The viewMatrix has three different uses.
* drawMatrix is the matrix passed in by the drawTextBlob.
* initialMatrix is drawMatrix this a blob was created with.
* currentMatrix describes what stored in the SubRun.

Change-Id: Idd547f079950385485a279d22728f03145d5a77f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259834
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-13 18:12:13 +00:00
Brian Salomon
a6069a154d Support clipRegion on GPU backend
Bug: skia:9580
Change-Id: I663549dafc4239248e265bee8d6927bf5b259303
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259804
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-13 17:34:33 +00:00
Greg Daniel
81b98978bc Store GrSurfaceProxyView on SkImage.
Bug: skia:9556
Change-Id: I57340db52ce2e317acb6d1f88190460186350f5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259435
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-13 16:39:13 +00:00
Michael Ludwig
d0840ecf58 Provide record time allocator to onCombineIfPossible()
Change-Id: I3acf5d5fdb29bfbd3407a8065b7567dff43503a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259427
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-13 14:13:43 +00:00
Mike Klein
f46d5ca492 use std::make_unique
Change-Id: I7c672ff6b8eb95ec8c1123a5bfdb202e1644f494
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259281
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-12 22:32:45 +00:00
Brian Salomon
6986c6539e Make Gr[Op]MemoryPool allocate itself into its initial block.
Saves one heap allocation per DDL recorded.

Change-Id: I9393aedc3b48031cd2ea5f0160b107915077099a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259419
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-12-12 20:33:40 +00:00
Mike Reed
bb59dfa9e3 perform perspective clip by default
- this adds new (default) parameter to control clipping when transforming
  rects and paths

Bug: skia:9698
Change-Id: I4cfb36b60bd6bbfcdac0226e374dbc27d5284952
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259431
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-12-12 20:19:59 +00:00
Michael Ludwig
cb10e4d323 Reland "Detach op memory pool from recording context"
This reverts commit ed58654e39.

Reason for revert: Fix field order in SkDeferredDisplayList to deconstruct
dependent types in the proper order.

Original change's description:
> Revert "Detach op memory pool from recording context"
>
> This reverts commit 6b95516728.
>
> Reason for revert: breaking some Win10 bots
>
> Original change's description:
> > Detach op memory pool from recording context
> >
> > This changes GrOpMemoryPool to no longer extend SkRefCnt, and all usages
> > either are std::unique_ptr for owners, or GrOpMemoryPool* when ownership
> > is held somewhere else. The culmination of this is that DDLs explicitly
> > detach the memory pool from the recording context instead of the GrOpsTask
> > maintaining a strong ref that preserved the memory somewhat sneakily.
> >
> > Change-Id: I33e2caebea70cebe8fd7681207c631feeaf2c703
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259424
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
>
> TBR=bsalomon@google.com,robertphillips@google.com,michaelludwig@google.com
>
> Change-Id: I942ae1e07fdc63d9311f6ee482bd71beca090502
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259696
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: Derek Sollenberger <djsollen@google.com>

Change-Id: Ia82fa6e42fc8d75b8aa57e5172894e8dfc7e83d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259816
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2019-12-12 20:11:40 +00:00
Herb Derby
c514e7d9be Move the GrGlyph* and vertex data onto the arena alloc.
This change reorganizes data that was normally managed by the blob
as arrays of GrGlyph*s and vertex data to arrays stored in the arena,
and managed by the SubRuns. Instead of all data lumped together for
all subruns, the arrays are broken up by subrun.

other changes:
* remove useless typedef of Blob

Change-Id: I76f404276ff96edea8040f1f371a9c089ee20fdb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259426
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-12 18:12:38 +00:00
Derek Sollenberger
ed58654e39 Revert "Detach op memory pool from recording context"
This reverts commit 6b95516728.

Reason for revert: breaking some Win10 bots

Original change's description:
> Detach op memory pool from recording context
> 
> This changes GrOpMemoryPool to no longer extend SkRefCnt, and all usages
> either are std::unique_ptr for owners, or GrOpMemoryPool* when ownership
> is held somewhere else. The culmination of this is that DDLs explicitly
> detach the memory pool from the recording context instead of the GrOpsTask
> maintaining a strong ref that preserved the memory somewhat sneakily.
> 
> Change-Id: I33e2caebea70cebe8fd7681207c631feeaf2c703
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259424
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,robertphillips@google.com,michaelludwig@google.com

Change-Id: I942ae1e07fdc63d9311f6ee482bd71beca090502
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259696
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2019-12-12 16:07:33 +00:00
Robert Phillips
a27d625ca6 Add compression to Mock backend
Bring the Mock backend up to speed since we're expanding compression support.

Bug: skia:9680
Change-Id: I7fd7bed9351d3534d238feca0add54eced31cb4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259099
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-12 15:42:53 +00:00
Michael Ludwig
6b95516728 Detach op memory pool from recording context
This changes GrOpMemoryPool to no longer extend SkRefCnt, and all usages
either are std::unique_ptr for owners, or GrOpMemoryPool* when ownership
is held somewhere else. The culmination of this is that DDLs explicitly
detach the memory pool from the recording context instead of the GrOpsTask
maintaining a strong ref that preserved the memory somewhat sneakily.

Change-Id: I33e2caebea70cebe8fd7681207c631feeaf2c703
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259424
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-12 15:37:04 +00:00
Anthony Catel
b79f1b527d Use absolute sigma instead of clamping to 0 in SkDropShadowImageFilter.
If the CTM is scaled to negative value (without skew), mapVector returns a negative value. We want to use its absolute value rather than clamping to 0.

https://bugs.chromium.org/p/skia/issues/detail?id=9704

Change-Id: I7393a52aa7d646b1494d4f0ae1a520ab60d02104
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259137
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-12 15:26:48 +00:00
Robert Phillips
bd99c0cf43 Reland "Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView."
This reverts commit c5c024791b.

Reason for revert: Doh

Original change's description:
> Revert "Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView."
> 
> This reverts commit acf5929ae0.
> 
> Reason for revert: May be blocking Chrome roll
> Original change's description:
> > Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView.
> > 
> > In future CLs I will update the Ops that create the TextureSamplers to pass
> > the GrSurfaceProxyView in.
> > 
> > Bug: skia:9556
> > Change-Id: I550dab64974d32e4c3047188063efa2d0832328e
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259164
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> 
> TBR=egdaniel@google.com,michaelludwig@google.com
> 
> Change-Id: Ic804a52c5c6d16a13a9cc2d85bb959f305134177
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:9556
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259433
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=egdaniel@google.com,robertphillips@google.com,michaelludwig@google.com

Change-Id: If2af5b5b323858e59c0c8db3b75477d74d78abfd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9556
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259434
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-12 13:27:21 +00:00
Robert Phillips
c5c024791b Revert "Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView."
This reverts commit acf5929ae0.

Reason for revert: May be blocking Chrome roll
Original change's description:
> Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView.
> 
> In future CLs I will update the Ops that create the TextureSamplers to pass
> the GrSurfaceProxyView in.
> 
> Bug: skia:9556
> Change-Id: I550dab64974d32e4c3047188063efa2d0832328e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259164
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

TBR=egdaniel@google.com,michaelludwig@google.com

Change-Id: Ic804a52c5c6d16a13a9cc2d85bb959f305134177
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9556
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259433
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-12-12 13:24:51 +00:00
Herb Derby
51b99659ed Remove unused fields from GrTextBlobKey
Change-Id: Ibb42f943ffbed16867d714e9a1eee35d3f422b2a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259282
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-12 03:46:45 +00:00
Greg Daniel
826484f263 Always report SkImage_Gpu subclasses as being texture backed.
Change-Id: I1af002df1b07f04543b32add94bfdc0a016a338b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259284
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-12-12 01:13:26 +00:00
Greg Daniel
f4107946e4 Revert "When converting runtime SkSL to FP SkSL, use default settings"
This reverts commit 48fcf36e15.

Reason for revert: causing shader compiler errors in sksl

Original change's description:
> When converting runtime SkSL to FP SkSL, use default settings
> 
> Anything related to caps should be resolved in the second compile.
> However, when calling toPipelineStage, the settings stored in the
> base Program are used, so we need to inject them at that point.
> 
> This also removes the cache of specialized programs. We only hit
> that code path when we're about to do a full compile, including
> generating SkSL, turning that into GLSL, etc. The specialization
> is implicitly cached as part of the entire program for common
> cases, so the second level isn't that useful.
> 
> Change-Id: I53bc54b0611951e1d97278d59881308c6b152090
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259162
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,brianosman@google.com,ethannicholas@google.com

Change-Id: I73e81f2dbacb329da819555c949f5c5ea32b7fda
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259429
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-12-12 01:03:04 +00:00
Brian Osman
48fcf36e15 When converting runtime SkSL to FP SkSL, use default settings
Anything related to caps should be resolved in the second compile.
However, when calling toPipelineStage, the settings stored in the
base Program are used, so we need to inject them at that point.

This also removes the cache of specialized programs. We only hit
that code path when we're about to do a full compile, including
generating SkSL, turning that into GLSL, etc. The specialization
is implicitly cached as part of the entire program for common
cases, so the second level isn't that useful.

Change-Id: I53bc54b0611951e1d97278d59881308c6b152090
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259162
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-11 23:22:18 +00:00
Greg Daniel
acf5929ae0 Update FragmentProcessor TextureSampler to hold an GrSurfaceProxyView.
In future CLs I will update the Ops that create the TextureSamplers to pass
the GrSurfaceProxyView in.

Bug: skia:9556
Change-Id: I550dab64974d32e4c3047188063efa2d0832328e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259164
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-12-11 23:17:15 +00:00
Jim Van Verth
1031994219 Change PerspectiveClip to clip directly to half plane.
This should be a little more numerically stable, and avoids the need
for the assert.

Bug: chromium:1032435
Change-Id: I038890000b251f3ffed41f37a14451afcf3b1866
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259167
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-12-11 23:17:14 +00:00
Jim Van Verth
6ee695c33c Adjust cache key for Metal persistent cache.
The Metal-specific parts of the ProgramDesc key aren't needed as we're
only storing source code at the moment.

Bug: skia:8243
Change-Id: I897f4a93bedafc954073466897605d753a40810e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259416
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-12-11 23:12:10 +00:00
Chris Dalton
a378b45616 Suppress allocation warnings for tests that induce them intentionally
Change-Id: I918b4b28753f71a15963d2c762f93c1ae1de7836
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259173
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-12-11 23:01:59 +00:00
Mike Klein
d111f043ba add SK_CPU_LIMIT_AVX
No new bots for now.  Tricky to get -O0 bots.

Bug: skia:9709
Change-Id: Ia54e535fad25481c39ca205e10d6ca6b8666727c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259418
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-11 22:56:55 +00:00
Herb Derby
a5909925e3 Remove unused buffer call for SkGlyphRunPaint
Change-Id: Ic9cad12704dc4dd7e52789c5a6fabc224a1a0cdd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259296
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-12-11 22:35:36 +00:00
Brian Salomon
3517aa7b14 Fix stroked arcs for mirror matrices.
Bug: b/142280381
Change-Id: I9933543377e6916bd262c6f2e936ed9f0976d039
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259174
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-11 14:44:30 +00:00
Herb Derby
e3c7ff4cef Move SubRun from .h to .cpp
Change-Id: I168df05e7cd77987d6bc501ceebf1b8aaa255e73
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259170
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-12-10 23:15:56 +00:00
Mike Klein
1bb7e2378d test for c++17 w/ c++14 stdlib
Apparently some of our stdlibs are not even quite c++11 compliant.

Bug: skia:9700
Change-Id: I842c2dd2eba55d576aa60b2b3a4734dbace00f6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259074
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-10 22:22:30 +00:00
Leon Scroggins III
ae834f5781 SkWebpCodec: enable a loop count of 1
Commit 557fbb added animation support to SkWebpCodec, with the intent to
match Chromium. This was during the ~1.5 year period between
crbug.com/592735 and crbug.com/649264 when Chromium attempted to align
WebP with GIF, and play the animation once more than the stored number
(see crbug.com/592735). This was later reverted, because it means that a
WebP is unable to play an animation a single time (see
crbug.com/649264). This commit catches SkWebpCodec up with Chromium.

Add a legacy build flag (SK_LEGACY_WEBP_LOOP_COUNT) so we can stage the
change on Android.

Change-Id: If07e00d5e070847ceeb9ce27cd78a846974cdb4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259161
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-12-10 21:41:10 +00:00
Herb Derby
aebc5f8bd7 Move luminance calculation to GrTextBlob::Make()
This allows a couple of routines to be removed, and simplifies
the calling chaing.

Change-Id: I88b9396be79e4e245bbea291f4e778d12416b836
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259196
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-10 20:45:10 +00:00
Greg Daniel
9715b6c450 Add GrSurfaceProxyView to the various draw atlas ops.
Bug: skia:9556
Change-Id: I9eb825ab241fd0d0d4e63408af270a89e872d1c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258802
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-12-10 20:29:27 +00:00
Greg Daniel
ad994cd894 Store GrSurfaceProxyView on shadow ops.
Bug: skia:9556
Change-Id: I04a5a44a6483c3e4d70b84b1d7df7ea9db6d44d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258814
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-12-10 20:16:58 +00:00
Herb Derby
cb71889318 Put SubRuns in an alloc on GrTextBlob
This improves performance when there are multiple runs.

Bug: chromium:1029972

Change-Id: If32ddb2baf974ee1af7833710bd10a60e39c0169
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258736
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-10 20:05:57 +00:00
Hal Canary
e9bcc4719e utils/mac/SkCreateCGImageRef: cleanup
* Use SkUniqueCFRef
  * static fns use snake_case.
  * use unique_ptr to signify ownership

Change-Id: I57c2100a64bcf5d343af43b5fe9de117cfdbcd4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259098
Auto-Submit: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-10 18:38:16 +00:00
Brian Osman
3f9199a162 GrSkSLFP: "Kind" is always kPipelineStage
Change-Id: Ia32f0858bedae79ffa551ef6dde6e46d04436f5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259096
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-10 17:29:53 +00:00
Robert Phillips
ab2b722fdd Switch SkImage::CompressionType to be an enum class
Following CLs use CompressionType much more widely so let's switch it first.

Bug: skia:9680
Change-Id: Ie8847f24936e90dd85e0ad79cbe5542d68c87b12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258882
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-12-10 15:58:23 +00:00
Mike Klein
7da1a13cee delete unused gyp hack
Change-Id: I042caa65ae87e4ff2d1bf81917ccbbb647a20777
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259073
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-10 15:52:43 +00:00
Brian Salomon
095d2468a0 GrTextureDomain: Go back to doing vector impl when modes are the same
Doing it using scalars all the time caused a mysterious shader compilation
issue on Chromecast. In the past we've had similar problems for long shaders.

Change-Id: Ied667c1d4ae47fb4ae9eee62421a7ad52eecebba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258880
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-12-09 22:02:43 +00:00
Herb Derby
659e4092e3 Pass SkGlyphRunList to GrTextBlob::Make
Change-Id: I05703d1428be088b99b9016802b6e4cb9e6ca53d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258320
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Herb Derby <herb@google.com>
2019-12-09 20:40:37 +00:00
Herb Derby
15a1e98868 Cleanup GrTextBlob management code
* cacheBlob -> cachedBlob
* listPaint -> blobPaint
* variable contextPriv
* variable colorInfo
* color -> initialVertexColor
* filterColor -> drawingColor

Change-Id: I36c6f885f8a4d041d9b0d84f787999d5648675ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258807
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-12-09 20:39:12 +00:00
Jim Van Verth
9b2c06f2b5 Add persistent shader cache support to Metal.
Will store either SkSL or MSL shaders for now, until we can
find a way to store shader binaries.

Bug: skia:8243
Change-Id: I4debf553467bbcb4af57aeee96d05bc0a2f2b075
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/257687
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-12-09 20:35:33 +00:00
Brian Osman
c937bc5025 Improvements to uniform handling in runtime SkSL
- Support array uniforms
- Fix cases where the read head wasn't aligned in onSetData
- Default to float as the CType for half. (half4 was using
  PMColor, and other half types required a layout(ctype...)

Change-Id: I63cb1706071668de0ab80f3d812cd9ad29ff9651
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258808
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-12-09 17:57:05 +00:00
Hal Canary
425929c2f6 [minor] fix definition with different parameter names
Change-Id: If38451b11fad4973e033190bf1a436bbc576d2ba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258810
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-12-09 17:53:35 +00:00
Herb Derby
7c7314ac29 Remove the CACHE_SANITY_CHECK system.
This was never test and turned on. I tried this a month ago
before the large changes, and it was failing then. I don't think
this tells us anything interesting, and fails if the blob is reused.

Change-Id: I8aadc2be7e6a17d255d681ed9fab04dcbc538991
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258809
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-12-09 17:47:55 +00:00