This is a pure refactor, making room for a fourth argument per Op.
I'll use this to make store128 work more naturally, taking all
128 bits of its input at once, rather than spreading across two strided
64-bit stores as done today. I've left this for a second CL because
this refactor on its own seemed error-prone enough.
Change-Id: I704e4f2e165b0bfd0276af921d97bf2cc01e8550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355659
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
I've been looking to simplify and expand the kinds of instructions
we can support, and one easy early simplification is to break the
union of regs y,z and immy,immz into separate fields.
To further reinforce how unrelated they are, rename to immA,immB.
With the guaranteed two immediates available, we can simplify the
representation of some ops to use the immediates more naturally.
Change-Id: Iad139b5d77e8464e71f1360d881c1ed2e0957db8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355658
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Update libgifcodec to include the fix and test an animated gif with
too-big-bounds. This image (alphabetAnim.gif, checked into our skimage
assets to be downloaded and tested on the bots) has bounds that extend
outside the edge of the canvas.
https://skia-review.googlesource.com/c/libgifcodec/+/339831
broke this image, so add it to our visual tests to verify that it's
fixed.
Change-Id: Id21c1858c72822db7c59d84591401ec9f74420f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353624
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Bug: chromium:1162942
Change-Id: Idc1dcb725ff9eae651b84de2fe792b188dcd1c1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354671
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
`globalStruct` is now named `_skGlobals` and is passed around directly
by reference, with no additional helper variable (`_globals`) at all.
Change-Id: Icc5566d2212afd14a4d43700e89f50bedcc8b45f
Bug: skia:11168
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355717
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Dug in with instruments and yeah there's substantial work to do here.
Bug: skia:10877
Change-Id: I0f6978e0d16385e09e6017a0532fdcf9ba9a5d0c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355716
Auto-Submit: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Instead of attempting to keep fill & stroke SkPaints synchronized with
the current presentation attributes throughout the DAG walk, build the
SkPaints on the fly, only when needed.
This simplifies presentation attribute handling and enables further
/future refactoring.
Change-Id: I3791b4244530644e7e4b983d93b3c966ea7a1b22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355096
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
The hb_position is always tracked in 16.16 now, so take direct advantage
of that instead of relying on the ratio of the requested size and size
as known by HarfBuzz. This avoids potential issues with division of zero
by zero when shaping zero sized fonts.
Bug: oss-fuzz:29240
Change-Id: I9715629034008552f88afd4feb1074a11cae15e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354117
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
This reverts commit 2ba80af000.
Reason for revert: new test fails ddl and cpu configs on imggen
Original change's description:
> Test all YUVA image factories with different encoded origins.
>
> Now that SkImage_GpuYUVA stores a GrYUVATextureProxies it supports
> encoded origins.
>
> Modify wacky_yuv_format GMs to use different origins and remove
> restriction in SkImage::MakeFromYUVAPixmaps.
>
> Bug: skia:10632
> Change-Id: I02477d592b7baba164944d629eeac48223698c10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353623
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=jvanverth@google.com,bsalomon@google.com
Change-Id: If909ee4769cc1c74e1682a5e2870ec85a83f65c5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354661
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Sometimes our cache of convexity is wrong -- still trying to figure out
what do do about that.
Change-Id: Ie36292b87c4d07fc18643cc91f93be00c577b2ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355616
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
68635b431b..81430e11c8
2021-01-19 jmadill@chromium.org Vulkan: Remove command processor special functions.
2021-01-18 penghuang@chromium.org Support create ANGLE EGLContext from an external EGLContext
2021-01-18 penghuang@chromium.org Only call context::unMakeCurrent() if context is changed.
2021-01-18 geofflang@google.com Generate internal gl entry point functions as C functions.
2021-01-18 geofflang@google.com GL: Add detection of IMG and Vivante GPUs.
2021-01-18 cwoffenden@gmail.com Fix to build with VS2019
2021-01-18 james@clarkezone.io Add support for building in Flutter Windows UWP configuration
2021-01-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from aedd133cd85f to 149733cead63 (2 revisions)
2021-01-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7b69f3d087b8 to 2bb77d70cc64 (4 revisions)
2021-01-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 2ef9c5ff8ca7 to 55486659cf9b (469 revisions)
2021-01-18 syoussefi@chromium.org Reland "Cleanup translator option checks"
2021-01-18 syoussefi@chromium.org Reland "Vulkan: Generate xfb support code in SPIR-V for extension path"
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC scroggo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: scroggo@google.com
Change-Id: Ib839d3f5d9836d14ceae211ad2bfa6e7043b1169
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355517
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
50c82f42e3..68635b431b
2021-01-18 syoussefi@chromium.org Reland "Vulkan: Move xfb position decl to translator in extension path"
2021-01-18 syoussefi@chromium.org Reland "Vulkan: Generate gl_Position.z correction in SPIR-V"
2021-01-17 syoussefi@chromium.org Reland "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
2021-01-16 syoussefi@chromium.org Vulkan: Redo RewriteStructSamplers
2021-01-16 m.maiya@samsung.com Vulkan: Rename ReplaceClipDistanceVariable files
2021-01-16 timvp@google.com Tests: Add Real Gangster Crime trace
2021-01-16 timvp@google.com Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
2021-01-16 timvp@google.com Revert "Vulkan: Generate gl_Position.z correction in SPIR-V"
2021-01-16 timvp@google.com Revert "Vulkan: Move xfb position decl to translator in extension path"
2021-01-16 timvp@google.com Revert "Vulkan: Generate xfb support code in SPIR-V for extension path"
2021-01-16 timvp@google.com Revert "Cleanup translator option checks"
2021-01-16 syoussefi@chromium.org Cleanup translator option checks
2021-01-15 m.maiya@samsung.com Vulkan: Support EXT_clip_cull_distance extension
2021-01-15 syoussefi@chromium.org Vulkan: Translator pass to monomorphize problematic functions
2021-01-15 syoussefi@chromium.org Vulkan: Generate xfb support code in SPIR-V for extension path
2021-01-15 syoussefi@chromium.org Vulkan: Move xfb position decl to translator in extension path
2021-01-15 lexa.knyazev@gmail.com OpenGL: Remove avoidDXT1sRGBTextureFormat workaround
2021-01-15 jmadill@chromium.org Capture/Replay tests: Fixes and improvements.
2021-01-15 syoussefi@chromium.org Vulkan: Generate gl_Position.z correction in SPIR-V
2021-01-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5255c465bbba to aedd133cd85f (1 revision)
2021-01-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5869a809d551 to 7b69f3d087b8 (5 revisions)
2021-01-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from fabc0b0b129a to 2ef9c5ff8ca7 (556 revisions)
2021-01-15 syoussefi@chromium.org Vulkan: Generate gl_Position pre-rotation in SPIR-V
2021-01-15 syoussefi@chromium.org Vulkan: Fix validation of MSRTT framebuffer attachment
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC scroggo@google.com on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: scroggo@google.com
Test: Test: angle_perftests --gtest_filter=TracePerfTest.Run/*real_gangster_crime*
Change-Id: Idb24d78ea43a8956ce57217450e8f73931600bf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355418
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
- Remove unexplained special case where we avoided coercing uints to int
- Replaced the set<int> of case values with SkTHashSet<SKSL_INT>. Should
be faster and more type-correct.
Change-Id: I3286bd50253cc7a1ff6a550dc429bdfebbb8d8c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354670
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The Inliner likes to move function bodies around; after inlining, code
can inadvertently move upwards, above ProgramElements that the code
relies on. We work around this by always emitting functions last.
Change-Id: Ie5486cc3a79a478920342fb9f578d575486fb4cf
Bug: skia:11186
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354669
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This was originally added so that some clients (BitmapFactory,
BitmapRegionDecoder) could ignore exif for backwards compatibility, and
others (ImageDecoder) could respect it.
With the addition of NDK APIs for decoding all frames of an animated
image, hwui/ImageDecoder will handle compositing frames, including
handling the orientation, so it may as well always handle it.
This removes tests for SkAndroidCodec that are no longer applicable.
Android already has tests for most of them.
AndroidCodec_sampledOrientation is recreated in
ag/Ieda439910ae52e609f0710d424503616d99ae5c7.
Change-Id: Ibd280986892176f284895d543f2f50bca22d196b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344763
Commit-Queue: Leon Scroggins <scroggo@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
This enforces an even stricter version of the rules from GLSL ES 1.0
Appendix A, Section 5. Essentially, indices (to arrays, vectors,
matrices) must be made of literals, loop indices, and expressions made
of those two.
Bug: skia:10837
Bug: skia:11096
Change-Id: I437a5ed64da58e24d5991ddbde68859f5214e98b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354665
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Property inheritance is supposed to follow the tree hierarchy, but we
implement it based on the render path.
One nasty side effect is when resolving IRI paint servers
(gradients, patterns), the referencing node properties get inherited
(leak) into the paint server fragment. E.g.
<pattern id="pat">
<rect fill="green"/>
</pattern>
<rect stroke="blue" fill="url(#pat)" stroke="blue"/>
The pattern subtree incorrectly inherits a blue stroke property from
the referencing node when we resolve the fill.
As a temporary (and imperfect) workaround, we can reset the presentation
context when resolving IRI paint servers.
Change-Id: Ia4a8a6199222820661f805c43340b5e16902feff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354668
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
As far as I know, there shouldn't be a way to introduce a struct or enum
other than at global scope; the keywords are not accepted inside a
function body. In fact, I wasn't able to find a way to exercise these
code paths in practice. But we now have concrete assurance that any
possible type can be cloned into a symbol table safely; all Types are
either built-in (available everywhere by design) or are clonable.
Change-Id: I4b006b6cab995b3e598b683736ab9689828629c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354664
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
The inliner needs to clone Types from one SymbolTable to another when
cloning blocks of code. However, it seems like a poor division of
responsibility for the inliner to need to know how to clone every Type
correctly. It makes more sense for this logic to exist within the Type
class itself.
Change-Id: I4a383d5e22d5084eb35992a0b5c24865d2030282
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354662
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This reverts commit 97c476ecb7.
Reason for revert: tree breakage - Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Original change's description:
> Disable the MSAA atlas mode for CCPR
>
> We have a long term path rendering plan that uses dynamic MSAA instead.
> This CL is a test to see if we can drop support for CCPR now.
>
> Change-Id: I1bff3ca3143a6b453b65a7932a1805c195922805
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354036
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,csmartdalton@google.com
Change-Id: I9f472807f743b8ddfee92800ee3b62609f2d4717
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354673
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This was disabled a long time ago, when this was (incorrectly) forbidden
by the IR generator, most likely.
Change-Id: I14585d249104b263c152fa59cbeba0c4e9a2e074
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354666
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Change-Id: I62755dfcf5c8bb5bd7e0cc742e675aacf4afbb78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354658
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Note we are still not passing filters-blend-01-b because we don't yet
support feImage.
Bug: skia:10841
Change-Id: Ibca52c0e8e8d45e73473dea3b0252d6b81eaa584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354657
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Also fix a crash if you try to play an effect that has never compiled
correctly. (After the first compile, the arrays were always large enough
to set "dt" -- this code is all going to be reworked soon for SkVM, but
I hit this while diagnosing the type coercion error).
Change-Id: I5bfab539c7304bde2da36b0b0604991d5b5b303a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354660
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Really I just want the Mac binary, but Linux kind of comes along for
free. (It'd work for Windows too if there were arm64 GN binaries.)
Python2 calls Linux 'linux2', while Python3 calls it 'linux'.
Change-Id: I8ef3d482a956acfe6b1eec3d7b5429b25c528c54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354556
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
When both filter and opacity attributes are set on a leaf node, the
opacity must be applied as a separate layer so that the results of the
filter are modified by the opacity. Previously in this circumstance we
were incorrectly applying the opacity to the paints only (without a
layer).
To illustrate:
<svg viewBox="0 0 1000 500" version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<filter id="Green" x="0%" y="0%" width="100%" height="100%">
<feFlood flood-color="lime" flood-opacity="1" />
</filter>
</defs>
<rect x="30" y="20" width="400" height="100" fill="red" opacity="0.1"
filter="url(#Green)"/>
<g filter="url(#Green)">
<rect x="30" y="200" width="400" height="100" fill="red" opacity="0.1"/>
</g>
</svg>
The two rects should render differently. In the <g> case, the filter
output (opaque green) overrides the translucent red pixels of the rect.
In the <rect> case, the filter output overrides the translucent red
pixels with opaque green, but then is modified by the opacity on the
<rect>.
Relevant W3C test is filters-blend-01-b (and possibly others).
Change-Id: I165eed36c546f1f99457865cee58ee2b3bffe6f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354879
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
We have a long term path rendering plan that uses dynamic MSAA instead.
This CL is a test to see if we can drop support for CCPR now.
Change-Id: I1bff3ca3143a6b453b65a7932a1805c195922805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354036
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This CL limits the availability of functions like "MakeLiteralType" and
"MakeScalarType" to the BuiltinTypes class. This allows us to know,
definitively, that whenever we encounter these types, they are part of
the BuiltinTypes class and available anywhere in the program without
needing to be cloned.
The remaining MakeXxxxxxTypes in SkSL::Type are constructed dynamically
and injected into child symbol tables during parse/IR generation. These
types must be treated with special care when being moved or cloned:
- Arrays (MakeArrayType)
- Structs (MakeStructType)
- Enums (MakeEnumType)
Change-Id: I5490d6739c2a5ffdd54195f5a0b9b5be05d07953
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354878
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
No code or functionality changes.
Change-Id: I24317767570ae9ebbfea56f873d98709fb22d8b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354876
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Nice periodically, and this version also has a Mac arm64 binary.
Refine a few visibility rules from ":*" (any target in this file)
to "./*" (any target in any .gn file anywhere under this directory).
Use frameworks over libs where now required.
Change-Id: Ic19e1533e2810d18ae4684645d8555b422320b7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354536
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
The inliner discovered that when a binary expression is inlined, its
type is not cloned into the destination's SymbolTable. This meant that
when the inlined-from function was later dead-stripped, the type pointer
would become dangling. Did a quick pass over inlineExpression and
inlineStatement and ensured that types are always copied.
Also found that `copy_if_needed` was making a copy of eligible types
each time one was encountered, instead of making one copy and reusing
it. This is fixed as well.
Change-Id: Iee3259ab038dfb04034bf0110af1909ccffec3de
Bug: oss-fuzz:29444
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354219
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Now that SkImage_GpuYUVA stores a GrYUVATextureProxies it supports
encoded origins.
Modify wacky_yuv_format GMs to use different origins and remove
restriction in SkImage::MakeFromYUVAPixmaps.
Bug: skia:10632
Change-Id: I02477d592b7baba164944d629eeac48223698c10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353623
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I93d580e67cb66d388bd66b280ff229cb79e5b154
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354218
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Per spec, the explicit <mask> bounds [x,y,w,h] are used to also clip
the content (the actual mask geometry may extend beyond these bounds).
This clip is currently scoped such that it applies both to the mask
layer and the content layer. When the clip is not pixel-aligned,
we're anti-aliasing both layers' edges -- which darkens the composition
result (producing dark hairlines around the mask).
Push the clip down such that it applies to content only.
Change-Id: I32169e2b6dc9685e50a51c6b22cfaaac1a897239
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354217
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>