Commit Graph

57570 Commits

Author SHA1 Message Date
Michael Ludwig
6c8e2e832e Fix winding when splitting edges at out-of-bounds vertices
Add GM repros and up triangulation verb count to match chromium's define
The GMs draw incorrectly in (base->p2) with the updated verb count, but
would draw fine w/o the increased verb count because a different path
renderer would be chosen.

This fixes a latent bug that was in the edge splitting code of the
triangulator that was exposed by https://skia-review.googlesource.com/c/skia/+/432196
Before that CL, intersections of two lines would be clamped to one of the
4 vertices of the 2 segments. In the CL linked, the clamping was adjusted
to clamp X and Y axes separately, so it increased the chance that a
clamped intersection would have its X or Y coord equal to line's vertex
but differ along the other coord (when they both equaled, they were
considered coincident and splitting that edge did nothing).

Splitting an edge at its intersection was intended to split (p0 to p1)
into new lines (p0 to v) and (v to p1) where p0 < v < p1 according to the
vertical or horizontal sorting that was imposed on the mesh. For a given
line segment and a clamped vertex, there are 8 ways the intersection
could be clamped (4 edges and 4 corners). If the edge has a positive
non-zero slope, a zero slope, or an infinite slope, in all cases the
clamped intersection will be sorted correctly and satisfy p0 < v < p1.

However, if the edge has negative slope
  vertical: p0.y<p1.y and p0.x>p1.x,
  horizontal: p0.x<p1.x and p0.y<p1.y
then intersections snapped to the primary sorting axis will be out of
order and produce a split such that v < p0 < p1 or p0 < p1 < v. This
was already detected, but it didn't update the winding of the new edge
to preserve the original winding from p0 to p1.

In these out-of-order cases, the intersection point is the top of both
the new and old edge, or the bottom of both the new and old edge. This
means that winding "top to bottom" on the new edge would go in the
opposite direction as the original winding from p0 to p1. Flipping the
winding on the new edge preserves the intended winding of the contour
while still allowing the edges/vertices to be sorted consistently.

This showed up as large gradients in the AA triangulator because w/o the
winding adjustment, the winding flip at the new edge would confuse the
border extractor that was used to compute insets and outsets for the 1px
coverage ramp. It would then use edges that were normally unrelated to
each and declare their line intersections as the "interior" with full
coverage. Obviously these could be anywhere so the 1px coverage ramp
would get smeared across that shape.

Bug: chromium:1257515
Change-Id: I015d6b4767db352e3eecfc53047958e74320268d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/458057
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-10-11 23:49:37 +00:00
John Stiles
116d2e0e48 Fix ES2 conformance test 'in_vs_no_in'.
SkSL treated these two functions as distinct, even though they are not:
    void func(in float x);
    void func(float x);

The `in` modifier on a function parameter is the default state, making
these two prototypes functionally identical. We now strip off an `in`
modifier on a function definition. This gives us three potential states
for each param: nothing (meaning `in`), `out`, and `inout`.

Change-Id: Id2acb53ecaca98f86a7f6a83e0b9a375f9abe2b8
Bug: skia:12525
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/458257
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>
2021-10-11 22:27:37 +00:00
Leon Scroggins III
fe1bf9d253 Update instructions for running debugger locally
Bug: skia:12425
Change-Id: I3790511df9a4db7cdc2d565dbf11f18d35c8f4a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/458058
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-10-11 21:45:31 +00:00
Robert Phillips
b23372df9c Fix G3 build
Change-Id: I47aed9cc6ebac1f3513a24126e068edc6e7eb308
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/458256
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-10-11 21:26:37 +00:00
John Stiles
3286a6962f Revert "Create looping binary-search gradient colorizer."
This reverts commit e2fa96ba4a.

Reason for revert: fillrect_gradient.html assert

Original change's description:
> Create looping binary-search gradient colorizer.
>
> This allows us to dramatically increase the number of gradient stops
> before falling back to sampling from a texture (which smears hardstops
> and shows artifacts in extreme edge cases). The analytic colorizer
> doesn't suffer from these artifacts and blurriness effects.
>
> In nanobench, this change comes at a performance penalty for some tests:
> http://go/paste/6302350793768960
>
> The texture path might have a bit of an unfair advantage here, if the
> gradient texture can just be uploaded once and reused from the cache
> repeatedly.  Presumably the setup cost of texture generation and upload
> is fairly expensive, but nanobench is testing just the steady-state
> render performance. In comparison, the analytic colorizer doesn't have
> a large setup cost.
>
> Change-Id: I71baa539a2c7f9e311ef8125de4ede2fdbf0c2d0
> Bug: skia:8401
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457499
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>

Bug: skia:8401
Change-Id: I4054d075d9322b9d9a6d3c7383be9b115ad20cfa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/458276
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-10-11 20:44:11 +00:00
Chris Dalton
90a66821f0 Add convenient "xyzw" accessors and swizzles to skvx (take 2)
Bug: skia:12515
Change-Id: I8db3501c129d93fc1eb822c90840119a7a7f2b4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457478
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-10-11 18:59:47 +00:00
John Stiles
e2fa96ba4a Create looping binary-search gradient colorizer.
This allows us to dramatically increase the number of gradient stops
before falling back to sampling from a texture (which smears hardstops
and shows artifacts in extreme edge cases). The analytic colorizer
doesn't suffer from these artifacts and blurriness effects.

In nanobench, this change comes at a performance penalty for some tests:
http://go/paste/6302350793768960

The texture path might have a bit of an unfair advantage here, if the
gradient texture can just be uploaded once and reused from the cache
repeatedly.  Presumably the setup cost of texture generation and upload
is fairly expensive, but nanobench is testing just the steady-state
render performance. In comparison, the analytic colorizer doesn't have
a large setup cost.

Change-Id: I71baa539a2c7f9e311ef8125de4ede2fdbf0c2d0
Bug: skia:8401
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457499
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-10-11 18:56:06 +00:00
Herb Derby
206c1f3f7e use fp_contract for better code generation in approx_acos
Change-Id: I96c842490ebaaae1733ee1359c46462ae1c80420
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457896
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-10-11 17:38:36 +00:00
John Stiles
108cb0cfa3 Add nonconstant-array-index-support shader caps bit.
This will be used to allow us to safely make shaders which index into
arrays using expressions which cannot be determined at compile-time.
(ES2 cannot do this.)

Change-Id: Id291aa69bfb7cbc366de17013ee19a9061db3bf2
Bug: skia:8401
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457196
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-11 17:09:34 +00:00
Chris Dalton
bfd6b09dc9 Extract a "VecStorage" base class in skvx
This is step 1 of a less surgical method of specializing vectors with
constructors and swizzles.

Bug: skia:12515
Change-Id: I4d65ad595387b35fa74df8564c73952e0a8b681c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457477
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-10-11 16:58:29 +00:00
Brian Salomon
9fa47cc1c6 Make class members that are static constexpr also be inline.
This is in prep for compiling with -std=c++14 and -Wno-c++17-extensions
when building with clang. Chrome has encountered problems with
third_party headers that are included both in Skia and other Chrome
sources that produce different code based on whether preprocessor macros
indicate a C++14 or C++17 compilation.

In C++17 they are already inline implicitly. When compiling with C++14
we can get linker errors unless they're explicitly inlined or defined
outside the class. With -Wno-c++17-extensions we can explicitly inline
them in the C++14 build because the warning that would be generated
about using a C++17 language extension is suppressed.

We cannot do this in public headers because we support compiling with
C++14 without suppressing the C++17 language extension warnings.

Bug: chromium:1257145
Change-Id: Iaf5f4c62a398f98dd4ca9b7dfb86f2d5cab21d66
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457498
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-10-11 16:22:59 +00:00
Robert Phillips
3062759ffd [graphite] Set up unit testing system
Bug: skia:12466
Change-Id: I401a185d818a964327d323b9ebcd0850ec0b1c9b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457318
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-10-11 16:18:05 +00:00
Florin Malita
132d47c90d [skottie] Path support for paragraph text
In addition to single line (point) text, AE also supports path layout
for paragraph text.

At a high level, the paragraph box top is mapped to the path (following
alignment rules), and each glyph is displaced along its path positioning
vector, post orientation.

The main difference compared to point text, is that the distance on path
is based on the fragment position relative to the paragraph left edge.

The paragraph box also plays a role in alignment: left/center/right
aligns with path start/mid/end.

This includes a tangential optimization: instead of validating cached
contour data in each PathInfo::getMatrix() call, we only check once at
a higher level (onSync) -- to avoid performing a shape vector comparison
for each fragment.

Change-Id: I2c31ce3b0a525a3cd2d4525abcf88d5fc943bb6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457656
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-10-11 15:26:00 +00:00
Florin Malita
d616f0b949 [skottie] More animatable text path properties
"Perpendicular To Path" and "Reverse Path" are animatable in AE, but
used to be exported as static props.  Bodymovin is being updated to
export them as animatable now.

Change the parser to handle both cases.

Change-Id: If2fea2a37af7ec6af5ac07c24cfb533bff5e03ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457736
Auto-Submit: Florin Malita <fmalita@chromium.org>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-10-11 14:34:36 +00:00
John Stiles
eafb39fc7e Create hardstop_gradients_many test slide.
This GM presents different gradients with an increasing number of
hardstops, from 1 to 100.

Change-Id: I1c279c6ea1a25f9785001aa29db632547a38ab68
Bug: skia:8401
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457437
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-10-11 13:44:02 +00:00
skia-autoroll
cbaf52b373 Roll ANGLE from 57dd7095ffd4 to e2d9121725bf (28 revisions)
57dd7095ff..e2d9121725

2021-10-10 syoussefi@chromium.org Vulkan: Lift helper_invocation suppressions
2021-10-10 syoussefi@chromium.org OpenGL: Lift image buffer windows/intel suppresions
2021-10-10 syoussefi@chromium.org Vulkan: Lift shader_image_load_store swiftshader suppression
2021-10-10 syoussefi@chromium.org Vulkan: Lift shader_image_load_store suppression
2021-10-10 syoussefi@chromium.org Vulkan: Remove VVL suppresions for VK_EXT_provoking_vertex
2021-10-10 syoussefi@chromium.org Vulkan: Turn 1-view multiview FBOs into no-multiview
2021-10-09 ynovikov@chromium.org Skip crashing pokemon_unite trace on Linux Intel
2021-10-09 ynovikov@chromium.org Revert "Update old NVIDIA bug suppression."
2021-10-09 yuxinhu@google.com Add Overlay Debug Document
2021-10-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d78bd80b30f6 to 651804d6bf55 (11 revisions)
2021-10-08 syoussefi@chromium.org Vulkan: Lift copy_tex_image_conversion test suppressions
2021-10-08 cnorthrop@google.com Capture/Replay: Skip pokemon_unite on Intel+Windows
2021-10-08 syoussefi@chromium.org Vulkan: Remove SyncHelper::mEvent
2021-10-08 jmadill@chromium.org Remove vertex attribute test suppressions.
2021-10-08 cclao@google.com Vulkan: Try to use CPU to copy when preserving old buffer data
2021-10-08 cclao@google.com Vulkan: Only preserve buffer data when BufferVk has valid data
2021-10-08 jmadill@chromium.org Update old NVIDIA bug suppression.
2021-10-08 jmadill@chromium.org Rename functions that overlap with Windows APIs.
2021-10-08 jmadill@chromium.org Update suppressions for clear test.
2021-10-08 geofflang@chromium.org Revert "Disable clearing textures for robust init on Mac."
2021-10-08 jmadill@chromium.org Remove N5X workaround in point size test.
2021-10-08 jmadill@chromium.org Enable previously slow Android Depth/Stencil tests.
2021-10-08 thakis@chromium.org Fix Wbitwise-instead-of-logical warnings
2021-10-08 jonahr@google.com Re-add suppression for TransformFeedbackTest.BufferOutOfMemory
2021-10-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 03fa329741b1 to a1594b97ef0c (3 revisions)
2021-10-08 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 85479eaa91b7 to 5a257b4ccbc1 (538 revisions)
2021-10-08 timvp@google.com VVL: Re-enable vkCmdDraw and vkCmdDrawIndexed
2021-10-08 timvp@google.com Android: Re-enable Texture3DCopy.FloatFormats/*Vulkan

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 jvanverth@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/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: jvanverth@google.com
Test: Test: Texture3DCopy.FloatFormats/*Vulkan
Test: Test: angle_perftests --gtest_filter="*pokemon_unite*"
Change-Id: Ida2dc2fdb6e47c185a3008e49fed7e7fbe1cbc8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457678
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-11 05:28:22 +00:00
skia-autoroll
cb15b7cf77 Roll SwiftShader from a1594b97ef0c to eacf0cd26b0a (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/a1594b97ef0c..eacf0cd26b0a

2021-10-09 capn@google.com Don't initialize device memory allocations in MSan builds
2021-10-08 capn@google.com Don't initialize host memory allocations in MSan builds
2021-10-08 thakis@chromium.org Disable C4244 when building LLVM for swiftshader

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC jvanverth@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: jvanverth@google.com
Change-Id: I9ea11d47a9bc276d165d802f94b6a301c6a668f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457677
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-11 05:21:52 +00:00
skia-autoroll
ef6bc4d7c5 Roll Dawn from a1e0aff8b8e2 to 9a8099eb8bee (2 revisions)
https://dawn.googlesource.com/dawn.git/+log/a1e0aff8b8e2..9a8099eb8bee

2021-10-08 thakis@chromium.org Fix Wbitwise-instead-of-logical warnings
2021-10-08 cwallez@chromium.org Improve validation errors for ShaderModule

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC bclayton@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: Ie1c9e3fa122535a2808a29a96a5decab712e981a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457679
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-11 04:44:59 +00:00
skia-autoroll
172a704018 Roll Chromium from 64ed0bfb2eb7 to 1ab99fc6c07f (472 revisions)
64ed0bfb2e..1ab99fc6c0

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC jvanverth@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: jvanverth@google.com
Change-Id: I860bd9fe316b5a8413673bd284140fb537dfee34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457676
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-11 04:44:52 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
af2f73c1bb Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I2cd7e0de8202df2020539140f1c700e9a029d844
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457620
Commit-Queue: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Bot-Commit: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-10-10 08:25:53 +00:00
skia-autoroll
ac828b77f6 Roll SK Tool from 5293a7d7df0d to 76de390babd5
https://skia.googlesource.com/buildbot.git/+log/5293a7d7df0d..76de390babd5

2021-10-10 skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com Update CIPD Packages

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/sk-tool-skia
Please CC rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Tbr: rmistry@google.com
Change-Id: I1954ffa1e3379a40899f3f48605cbcdc809f6d47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457617
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-10 06:17:52 +00:00
John Stiles
4e6353d3fe Fix precision-limit loop check.
This loop was not checking the entire range of gradient intervals.
In practice this is probably not a big deal, since it only affects a
few devices, and only matters for very complex gradients.

Change-Id: I735fcace013633c2bb14da65c4f573a3ef837d06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457497
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-10-08 23:56:47 +00:00
Chris Dalton
c63e913f57 Revert "Add convenient "xyzw" accessors and swizzles to skvx"
This reverts commit 01b02956c7.

Reason for revert: Codegen regressions

Original change's description:
> Add convenient "xyzw" accessors and swizzles to skvx
>
> Change-Id: Ic300285d10679a4e34190ab7b6b08bd1f6d80330
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/454309
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

Bug: skia:12515
Change-Id: Id853e4d9e25c6d2ae622668ef064e1b2b078b824
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457476
Auto-Submit: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-10-08 23:55:11 +00:00
John Stiles
6030e0a2c5 Restructure gradient creation code slightly.
These changes shouldn't directly affect the results at all, but make the
logic slightly more modular and reusable. This will be helpful in
followup CLs, which add a new gradient colorizer type and will share a
lot of this logic.

Change-Id: Ica7ccfe10877fcd69dbfa45da3e77874a0414120
Bug: skia:8401
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457297
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-10-08 21:32:00 +00:00
Jim Van Verth
89457e9237 [graphite] Some clean up in CommandBuffer creation
Makes the Make() method consistent with other methods by passing in
Gpu, and adds hooks for command buffer tracking.

Bug: skia:12466
Change-Id: If93c2126b1296dcbf788b5471916051fe90dafdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457319
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-10-08 19:54:37 +00:00
Kyle Carlstrom
cd2f207a2e Allow tracking of Precompositions onEnter/onExit
Change-Id: I6941d7d6c7a76eef462711964e5fb1cb4fd68634
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457156
Reviewed-by: Florin Malita <fmalita@google.com>
Reviewed-by: Avinash Parchuri <aparchur@google.com>
Commit-Queue: Avinash Parchuri <aparchur@google.com>
2021-10-08 18:36:50 +00:00
Chris Dalton
8fa6dbffff Move approx_acos and strided loads from GrVx to SkVx
Change-Id: Icf2d589b7a748f98cfa1be77217f5a21aed0a1b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457187
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-10-08 17:33:06 +00:00
Chris Dalton
89ba8e360e Delete grvx::fast_madd
The benefits of this method (if any) are not measurable on any
microbenchmarks that use it profusely. I have also seen it slow down
performance by not allowing the compiler as much freedom in optimizing.

Change-Id: I23500323a08ffdccedc494f30876146574eb31b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457186
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-10-08 17:09:22 +00:00
Jorge Betancourt
7357ae2af5 add CCToner support to skottie
Change-Id: Ib5f0d7241f0aa039e325c977aaca30f19682196f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456637
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2021-10-08 17:03:50 +00:00
Kevin Lubick
68365c7579 [demos] Add WebGPU demo using origin trial
Before we get too excited, this does not use CanvasKit.

What this does add is an origin-trial token so we can
more easily demo our progress on *.skia.org and test
locally using localhost:8123 (which is the default
if you run make local in //demos.skia.org)

To view this locally, I started chrome (stable 94) with
--enable-features=Vulkan --enable-unsafe-webgpu

Enabling the Vulkan was the advice of
https://web.dev/gpu/#browser-support
The second flag make sure the whole stack also uses Vulkan.

Change-Id: Ia1838352a46387b0b79e353601a32c859f6911c1
Bug: skia:12512
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457316
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-10-08 16:35:34 +00:00
Florin Malita
7fcda8e23e [skottie] Initial text path support
Current limitations:

  -- single-line only (no paragraph box support)
  -- "Force Alignment" not supported
  -- tracking animators not supported

Change-Id: I4072f1d8280032787c6db7e8b47d6f55be43bddb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456237
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-10-08 15:09:35 +00:00
Florin Malita
7e5772f448 [skottie] Fix Fractal Noise transform order
Update the shader transform order to match AE.

Change-Id: Iff9256923bef153342fcabe5f5a1091d4b2e3895
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457120
Auto-Submit: Florin Malita <fmalita@chromium.org>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-10-08 13:59:01 +00:00
John Stiles
2f7c3f51e4 Add release note for SkRuntimeEffect change in Milestone 96.
Change-Id: I3a159fb4f96a4f8071efb8e88bbe097e0fedd88f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457296
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-10-08 13:55:15 +00:00
Heather Miller
f2093bf1b0 Update Skia milestone to 97
Change-Id: I1567094335d2a24060fbb221f64a11d6e7419caf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457280
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2021-10-08 12:57:49 +00:00
skia-autoroll
3156f4408b Roll ANGLE from 161668b6656d to 57dd7095ffd4 (27 revisions)
161668b665..57dd7095ff

2021-10-08 cnorthrop@google.com Capture/Replay: Suppress flaky ES3 test
2021-10-08 ynovikov@chromium.org Revert "Translator: Remove the SH_VALIDATE flag"
2021-10-08 kpiddington@apple.com WebGL Aquarium doesn't render with ANGLE Metal
2021-10-07 cnorthrop@google.com Translator: Remove the SH_VALIDATE flag
2021-10-07 cnorthrop@google.com Tests: Add Pokemon UNITE trace
2021-10-07 kpiddington@apple.com PrimitiveRestart tests fail due to incorrect draw commands.
2021-10-07 cclao@google.com Vulkan: Add tests that triggers acquireAndUpdate
2021-10-07 cclao@google.com Vulkan: Skip releaseImage call when image is invalid
2021-10-07 cnorthrop@google.com Capture/Replay: Store enums to JSON as hex
2021-10-07 cnorthrop@google.com Tests: Add BADLAND trace
2021-10-07 jmadill@chromium.org Remove old AMD/Windows/GLES expectation.
2021-10-07 jmadill@chromium.org Add test that covers HLSL compiler bug.
2021-10-07 jonahr@google.com Enable direct-to-metal backend by default
2021-10-07 cclao@google.com Vulkan: Consolidate calls to respecifyImageStorageAndLevels
2021-10-07 cclao@google.com Vulkan: Remove unused imageBaseLevel from TextureVk::setImageHelper
2021-10-07 cnorthrop@google.com Capture/Replay: Suppress failing ES2 and ES3 tests
2021-10-07 timvp@google.com Vulkan: Submit commands when Sync objects are initialized
2021-10-07 syoussefi@chromium.org Fix GPU-time-tracking in WebGL perf tests
2021-10-07 lfy@google.com Rename FullScreenQuad.vert to FullScreenTri.vert
2021-10-07 lfy@google.com Add advice to download commit-msg hook
2021-10-07 jmadill@chromium.org Remove Skip for unsupported AMD config.
2021-10-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 60326f21d82c to d78bd80b30f6 (7 revisions)
2021-10-07 timvp@google.com Cleanup Android/Vulkan deqp_egl_test_expectations.txt
2021-10-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 8c181d7d1165 to 03fa329741b1 (1 revision)
2021-10-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 34d255f7dd4d to 85479eaa91b7 (1955 revisions)
2021-10-07 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 34d255f7dd4d to 8db0ca66018a (1757 revisions)
2021-10-07 angle-autoroll@skia-public.iam.gserviceaccount.com Fix and disable MSVC warnings

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 michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/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: michaelludwig@google.com
Test: Test: MultithreadingTest.CreateFenceThreadAClientWaitSyncThreadBDelayedFlush
Test: Test: angle_perftests --gtest_filter="*badland*"
Test: Test: angle_perftests --gtest_filter="*pokemon_unite*"
Change-Id: I656c45af036092e0791654fe72e570f8555b7cb8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457173
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-08 05:29:26 +00:00
skia-autoroll
7a606b1856 Roll SwiftShader from 03fa329741b1 to a1594b97ef0c (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/03fa329741b1..a1594b97ef0c

2021-10-07 sugoi@google.com Move ExternalMemoryHost to its own file
2021-10-07 capn@google.com Refactor DeviceMemory buffer allocation/freeing
2021-10-07 capn@google.com Rename allocation functions

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: michaelludwig@google.com
Change-Id: Ieda11c67e28d1a1ac276d7b851a3d9110e5560d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457171
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-08 05:15:56 +00:00
skia-autoroll
90dac804f3 Roll Chromium from eb5bc573ffd5 to 64ed0bfb2eb7 (528 revisions)
eb5bc573ff..64ed0bfb2e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-skia-autoroll
Please CC michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: michaelludwig@google.com
Change-Id: Ie708da5adf867501eb0fe8eec1a353b29af0a4ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457172
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-08 05:08:25 +00:00
skia-autoroll
ae39340d24 Roll Dawn from 43d584940829 to a1e0aff8b8e2 (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/43d584940829..a1e0aff8b8e2

2021-10-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from d4b8f887a5c8 to ce90ac52f479 (1 revision)
2021-10-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 7ff308fd1800 to d4b8f887a5c8 (1 revision)
2021-10-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 08146e2300ae to 7ff308fd1800 (2 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 08146e2300ae to ce90ac52f479

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC bclayton@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I911da533e5daebddf3ffc2c3dac0039bebc79795
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457174
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-08 05:06:54 +00:00
Chris Dalton
01b02956c7 Add convenient "xyzw" accessors and swizzles to skvx
Change-Id: Ic300285d10679a4e34190ab7b6b08bd1f6d80330
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/454309
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-10-08 00:33:24 +00:00
Chris Dalton
1ab7ff6abf [graphite] Clean up bitwise operators for enum masks
* Rename TFlagsMask<> to Mask<>
* Make Mask<> implicitly convertible to bool
* Rename SKGPU_MAKE_BITFIELD_CLASS_OPS to SKGPU_MAKE_MASK_OPS
* Remove the macro for non-class enums

Change-Id: I86059335d731f34c9c9c20a4cd6d5491543aa3b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456816
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-10-08 00:32:54 +00:00
John Stiles
59b5f5258b Use uniform arrays for dual-interval colorizer.
Saves a few LOC and seems like a nice cleanup.

Change-Id: Id2bb2196b3d1451a1259758d8e0052741ec60f52
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/457118
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-10-07 20:41:43 +00:00
John Stiles
637275224b Use uniform arrays when setting up binary-search colorizer.
Previously, we used special cases with `When` and unused scratch
variables to simulate passing in a variable-length array of uniforms.
Now we can use uniform arrays directly.

Change-Id: Iadbcdeb260d1245105eb785bc901b95a6edfeeca
Bug: skia:8401
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456928
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-07 16:28:22 +00:00
Ethan Nicholas
c845272b4e Broke DSLWriter into two separate classes
As DSLWriter evolved, it ended up performing two unrelated duties:

1. Holding per-thread state which is referenced throughout SkSL
   (including non-DSL code)
2. DSL-specific utility functions

There's no reason for those to be contained in the same class, and
there's also no reason the per-thread state should be held in a
DSL-specific class. This breaks out an SkSL::ThreadContext class to hold
the state info, leaving the DSL utility functions behind in DSLWriter
(which should perhaps be renamed, but that's a job for a future CL).

Change-Id: Iccd45314bd9b37d4a1d3e27920e32a50c0b07d7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456736
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-10-07 15:28:58 +00:00
Herb Derby
97bf72869a Reland "change matrix_2x3 to row-major"
This is a reland of e023608611

I have expanded the scope of this CL because having multiple
versions of the same code was confusing me.

All updatable functionality has been moved to SkTransformShader.
I made SkUpdatableShader implement the SkStageUpdater allowing
SkTransformer to act as both types of updater.

Original change's description:
> change matrix_2x3 to row-major
>
> Change-Id: Id25b3875f54f359bac90b6d3a7695287fc108b64
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456467
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I3326d8ea2c6fa9dabca8021a746600b4649933e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456638
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-10-07 15:28:11 +00:00
Greg Daniel
e47c5d16aa [graphite] Add TextureProxy support.
With this change it should now be safe to start using Proxys and Textures
everywhere. There is no caching the Proxys/Textures will live as long as
someone holds a ref.

Bug: skia:12466
Change-Id: I3c657b65b44b9dca0a77a255d6a4fc89e3862124
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456916
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-10-07 14:56:25 +00:00
Michael Ludwig
8724136129 Revert "Allow tracking of Precompositions onEnter/onExit"
This reverts commit 510e0c57da.

Reason for revert: probably blocking g3 roll

Original change's description:
> Allow tracking of Precompositions onEnter/onExit
>
> Change-Id: I065288b212d8ffc4d0ca127940e524799f59aff7
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/454976
> Reviewed-by: Avinash Parchuri <aparchur@google.com>
> Reviewed-by: Florin Malita <fmalita@google.com>
> Commit-Queue: Avinash Parchuri <aparchur@google.com>

Change-Id: I2e5b12bd45d48fc98ee799a733740e4cd8ae3dcb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456921
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-10-07 13:54:07 +00:00
John Stiles
042a197ce2 Migrate compiler elimination passes to Transform.
Change-Id: Ibb8695917d0a8ff43467542ee7a7b36f573513f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456798
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-07 13:50:07 +00:00
Michael Ludwig
2aff315093 [graphite] Add Shape variant over path, rect, rrect, convex poly
This is basically GrShape except that I removed some of the API that
GrStyledShape used. I also changed the set of types that Shape can
represent to be better match what I imagine our final set will be in
graphite: {empty,point,line,rect,rrect,path,arc}
       -> {empty,rect,rrect,path,convex-polygon}

The convex polygon is used to store points and lines as well. I also
imagine that it will subsume the need for migrating GrQuad over.

I'm doing this on its own in preparation for moving the ClipStack over
and consolidating the draw handling in Device/DrawList, all of which
get a lot easier if there is a single type that stores the geometry.

For the first milestone, actual rendering will still likely use
Shape::asPath() for the path renderer, but it's not a lot of extra work
to preserve the logical type at the high level, so may as well do that.

There are a few functions internal to Shape that still need to be
implemented (converting a path to a list of vertices, and doing point
containment), but those can come in a later CL.

Bug: skia:12466
Change-Id: I1040c54e3b8004f3bc1767d72ded60b572b39596
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456257
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-10-07 13:48:25 +00:00
John Stiles
bcaacecd9b Make Program owned-elements public.
Change-Id: I7680376d0f0a7bbaa7cb845e2223b9ce4d29c96f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456797
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-10-07 13:44:34 +00:00
John Stiles
2dfbf99edf Migrate IsConstantExpression out of SkSLAnalysis.
Change-Id: I08717dd9e9ad20a18a623e06f0c66a0f697effa4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/456796
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-10-07 13:40:00 +00:00