This change allows Chrome to treat its single channel YUV planes uniformly (as kGray_8_SkColorType).
Change-Id: Icc80ae4e4cbb192318635b443741b216f2008609
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231417
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Add special case to GrConvertPixels for non-converting copies.
Change-Id: I8b5a7513e28e966e4269f42dbed387d8800d25fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231559
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Add an output function argument updateProc to MakeBackendTexture.
updateProc needs to be invoked, when AHB buffer content has
changed. OES_EGL_image_external spec requires to bind the
texture, when buffer content has changed.
glEGLImageTargetTexture2DOES is invoked too (spec is not clear,
but MTK devices require it).
Test: Built and ran android
Bug: b/138674291
Change-Id: If7cf3051bc513c037440ab3331e0a0fdfcba5c2b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231482
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Introduce an SkColorFilter_Matrix flavor operating in HSLA space.
(CPU-only for now)
Change-Id: If081de062b9e920c3365bd7b281e45bb069c3d1a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231259
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Follow-on CL will use this new priv method to fix the BitmapState logic.
That change will be complicated, as we will likely have to guard it
to stage layout changes with clients.
Bug: skia:9293
Change-Id: If3bc4356944ee673a3e56897a70c373b47ecaedd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231560
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
There are a bunch of native premul->premul color filters, and about an
equal number of native unpremul->unpremul filters that all have roughly
the same logic to interoperate with a premul color pipeline. I haven't
seen anything that wants premul in and unpremul out or vice versa.
(It's easy to find by grepping for ::unpremul.)
This CL flags the natively unpremul color filters and centralizes the
logic to handle premul interop. This mostly eliminates the need for
SkColorFilter subclasses to know shaderIsOpaque, but not quite entirely.
It's of course used in the centralized SkColorFilter::appendStages(),
but is still also needed by any subclass that calls that, any subclass
that composes other color filters. I've commented out any unused
shaderIsOpaque arguments.
In the future we could imagine handling this outside in a more
sophisticated way, like eliding unnecessary alpha format conversions.
We'd need to move this logic out of SkColorFilter::appendStages() to
it's callers... the blitter, composing subclasses, and any other misc.
Should be no diffs and no interesting perf change.
I couldn't help but correct some misuse of "protected" where I was
editing anyway. I'm feeling a mega CL coming...
Change-Id: If3528820ca639357864b8b99c8fe11ab60c1ae0d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231465
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Combine the GPU and Raster morph type and direction enums, and have the
morphology base class accept the type as an argument instead of a virtual.
Adds somewhat complex deserialization code to be backwards compatible with
the old erode and dilate create procs.
Also updates SkXfermodeImageFilter's implementation to be named with the
"Impl" suffix instead of _Base, and updates both filters to have the common
code layout for image filter implementations.
Change-Id: I5082914f9754c2be71becfceb0c7d9a8fd06f569
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231099
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
For text animators without associated range selectors, BodyMovin still
exports a selector entry with invalid (0) domain/shape props.
Suppress warnings for these, as they are expected with BM.
TBR=
Change-Id: I7ec3737ebc2a33f4ba6955975c50ea7bf116b003
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231481
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Bug: chromium:988237
Change-Id: Idf7c77b009f9dc9daa56426c18a85f8441dc319c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231476
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
This will decrease our reliance on GrPixelConfig for testing.
Bug: skia:6718
Change-Id: I951f57cce229792d994391dbba74dd206bbfb923
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230893
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This makes sure image filter implementation classes are in an anon.
namespace, removes the extraneous Impl::Make factory by making their
ctors "public", and reorders the definitions to be (more or less):
- Impl class in anon namespace
- Public Make factory definition
- Flattenable registration
- CreateProc definition
- flatten definition
- Miscellaneous overrides and small functions
- filterBounds() and filterImage implementations
This doesn't really apply to the lighting image filter, which is its
own beast. A follow up CL applies this same clean up (and a little more)
to SkMergeImageFilter and SkXfermodeImageFilter, but it is separated
because it requires bumping the SkPicture version number.
Change-Id: I1e75d3b9a4e8a4599172af4a28789f7dfe0f010d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231098
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: Ied143be9c8139b1949a79ff68c857c22b43084b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231258
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
https://crrev.com/447b45d42307021be3dc11d9e557b59e42f30ef8 [vpython] Roll to 98a268c6432f18aedd55d62b9621765316dc2a16 (smut@google.com)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I814d4d6b5cafd1ad8b976ecec582ef59a834b097
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231276
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Also add GrDawnCaps to friends of GrShaderCaps, as the other backends do.
Change-Id: Iae60cae7168ad9194f7808c2f51f41de10e53071
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230747
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Change-Id: I49a233a28d16622b286ffc4150446b33f899a891
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230557
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
If the nominal_glyphs callback returns a value less than 'count'
HarfBuzz will process the rest of the buffer with the nominal_glyph
callback and attempt to find glyphs through NFC and space synthesis. It
may be preferable in the future to tweak this behavior, since this is
effectively modifying the font.
Change-Id: If2deeb643c5e636d18e914eb7ee32518f86077f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231110
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: Ic0fd9f3bb807a8377a63a07321e26c4ee5cdeaa7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231176
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
The goal here is to help reduce a lot of the refs and unrefs that happen
during each of our draws.
Change-Id: I81b45a2259acf24b73d1a01f8574a48c0adae9fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230741
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Change-Id: Ie04918f2bfc296eedbba67d96f62ee37e0303061
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231136
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Also add a unit test that crashes before this change.
Change-Id: I94e441a57a9c28e7c12bc2b214a65b41446ffab8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230754
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Add weird color types that handle the swizzling.
Change-Id: Ie37a00eb877fe5e519f7498bf749e02a2f1dc204
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230135
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This omission appears to have been causing YUV problems in Chrome.
Change-Id: I7f13b18ba5c367dcdc242eff3532cacb2e06d1da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231100
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This allows TextValues to be manipulated via the skottie::PropertyObserver API in a future change.
Change-Id: I96b22771d8ee9a90c8d41869ece814b0bfa4dc74
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230917
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
cbabea734c..1ebe601438
git log cbabea734cbd..1ebe6014389e --date=short --no-merges --format='%ad %ae %s'
2019-07-30 lujc@google.com Vulkan: Only check sampler when setUniform1i(v)
2019-07-30 geofflang@chromium.org GL: Implement EXT_external_objects
2019-07-30 geofflang@chromium.org GL: Load external object extension entry points.
2019-07-30 geofflang@chromium.org Support the SearchType argument for loading libraries with posix.
2019-07-30 syoussefi@chromium.org Vulkan: Fix barriers between render passes
2019-07-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 9559cdbdf011..ac3d131054ac (4 commits)
2019-07-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 7fc868349143..f04f1f93a70f (1 commits)
2019-07-30 timvp@google.com Vulkan: Enable Line Rasterization Emulation
2019-07-30 timvp@google.com Make libEGL function pointers hidden in symbol table
Created with:
gclient setdep -r third_party/externals/angle2@1ebe6014389e
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Bug: None
TBR=benjaminwagner@google.com
Change-Id: I2a4e98edcbc9eff078414395c2f05fc1fa428447
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/231028
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This is in preparation of exposing new factory functions DropShadow()
and DropShadowOnly(), which do not take the enum at all in their params.
Bug: skia:9280
Change-Id: If6e16f46e94b54ab156d2fd02c59fd6171a30f2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230742
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: Ibd541b4f4d8a9ab2b86743c86a6cfbc50a56518f
TBR: benjaminwagner@google.com
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230891
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Fixes problems when adding user-defined helper functions to the SkSL.
Change-Id: I00c3031f67e70039c09ac375774778b698d8a3c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230889
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Just because a program doesn't read from or
write to memory doesn't mean it's pointless.
Oh wait, yes it does. It shouldn't crash though.
Change-Id: I6a9c26c065831f9598afccce6e0a34a178cbd925
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230839
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 1dfb4d25d1.
Reason for revert: This appears to have poorer performance on integrated GPUs.
Original change's description:
> Use shared mode for Metal texture upload buffers.
>
> On Mac, originally the temporary upload buffer was stored in managed
> memory, which will generate two copy actions, one from the CPU side to
> the GPU side of the managed buffer, then another from the GPU side of
> the buffer to the GPU texure. Shared mode buffers are in PCI-accessible
> system memory, so by storing the temporary texture data there, we should
> be copying from the CPU buffer directly to the GPU texture. This gives
> us another 10-15% perf improvement over the old upload code.
>
> Change-Id: Ia675e7130e0ae7d0c5f16c8170eeef60a69bfbbd
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230299
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
TBR=egdaniel@google.com,jvanverth@google.com,brianosman@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ib89b014586b7bbd899fed5d8e5807e083368a825
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/230882
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>