It looks like there are gold issues with hw tessellation on android.
TBR=bsalomon@google.com
Change-Id: I625d244f9d90f7ee6589aa610f7d45117cbaeed9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400528
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This prevents some ambiguous-expression errors (since we were passing a
`double` typed value into places that only took an `int` or `float`).
(The ambiguous-expression errors were later fixed in
http://review.skia.org/400619, but it's still the right thing to do for
DSL C++ to emit floats.)
Change-Id: I052c9919a9f00cb427dd152722d2f7c370f3f3b4
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400616
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This was almost right, but was missing the trailing () to make a
function call.
Change-Id: I1215a97bb0ac39aceca8ff6bea70af8ff572ef84
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400541
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
This is an initial attempt. We use a few coverage ops that haven't
been updated to handle MSAA yet, and other times we trigger MSAA when
we shouldn't, but it sets the basic functionality in place.
Bug: skia:11396
Change-Id: I8acfe4283bccf5543d4b774692e39427142b3228
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395996
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
The current way that we handle merging-with-color-clear ops
tasks has a bug. For the time being, just leave them in and
accept the wasted work. A real fix is on the way.
Bug: skia:11903
Change-Id: I0e2b60a3f9a10be1010b41f905a879b65e9172a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400620
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
This reverts commit 29c06bc82a.
Reason for revert: Convexicator::BySign did not handle count <= 3, which
it previously never encountered because a path with leading moveTos
would actually turn into a sequence of moveTo+close by the forceClose
SkPath::Iter so it'd never actually skip anything.
I updated the code so that BySign checks for count <= 3 after we've
skipped leading moveTos. This means computeConvexity's logic can get
a little simpler, just checking isFinite(), calling into BySign, and
then going into the second pass. Previously, it skipped the first pass
if pointCount <= 3 (using the pointCount before leading moveTos were
skipped).
Lastly, I removed SkPathPriv::IsConvex. It was the other user of
BySign but it was only used in PathTest. I figured it's best to have
a single source of convexity definition rather than having two code
paths that both need to implement the same two-pass behavior.
Original change's description:
> Revert "Stop using copying SkPath::Iter for convexity and contains checks"
>
> This reverts commit 3752760157.
>
> Reason for revert: asan failures
>
> Original change's description:
> > Stop using copying SkPath::Iter for convexity and contains checks
> >
> > This also ensures that consecutive moveTos at the start and end of the
> > path do not affect convexity, and updates AutoBoundsUpdate respects
> > that as well.
> >
> > Bug: 1187385
> > Change-Id: I9d9d7ab7f268003ff12e46873d7b98d993db47fe
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396056
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Mike Reed <reed@google.com>
>
> TBR=csmartdalton@google.com,reed@google.com,michaelludwig@google.com
>
> Change-Id: I46aaca9c709be7124fc3933f5d02f20f5d2b42ea
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 1187385
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399376
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
# Not skipping CQ checks because this is a reland.
Bug: 1187385
Change-Id: I21159915839911225440c2f65da9bbbd22b77ab3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399377
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Now each attachment tracks the input descriptor needed for iteself.
There are actaully two input descriptors, one for blending and one for
msaa loading. Annoyingly the only difference between the two is the
layout of the attachment, but there isn't much we can do there.
Bug: skia:11809
Change-Id: Iacd1148d3fe0a95a95afeb5aebb2af9a674e643e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399776
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
As we move toward dmsaa, we need stencil attachments on the single and
multisample attachments both. This is only a temporary solution until
the new surface world is finished.
Bug: skia:11396
Change-Id: I48928343e1fc9fd2e00362a534be9eb3ade92656
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399838
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Previously, if a DSL-based FP attempted to sample from another DSL-based
FP, all VarDeclarations for both FPs would be erased as soon as the
inner FP called EndFragmentProcessor. We now use the DSL stack to save
and restore the VarDeclarations array when FPs are nested.
Change-Id: I7481d89ac62ca6cdc6fc828ffdc61d6a36affbdc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400539
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This flag was always set to true for every type.
Change-Id: Icbbe9a3c49adf0c49e6d912f978560b178eb633c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400176
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
This is only used for offline compilation (in skslc), and is not on a
critical path. An easy-to-understand, reasonably efficient algorithm is
preferable to a slightly more efficient, harder-to-understand algorithm.
Change-Id: If46403a43d5198f02eeaee45ef5d304b66f3de72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400099
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
DMSAA is still very experimental. It doesn't draw everything entirely
correctly yet and uses more memory than it should. We should only be
enabling it right now with an explicit opt-in.
Bug: skia:11396
Change-Id: Ib552bfa551ac419d50ea1fdad3043cf20328f247
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400456
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
They're only used for the legacy implementation of sk_float_rsqrt,
which is going away.
SkFloatingPoint.h is part of ca 10,000 translation units when building
Chrome, and include graph analysis shows that including xmmintrin.h
adds a total of 3.5 GB to the build.
Avoiding these includes shaves ca 7 CPU-minutes off a local Chrome
build.
Bug: skia:11861 chromium:242216
Change-Id: Ib0fd53c4fb3ae254814fb6ae5afbb298efb0eb83
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400437
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Our only Debian9 builder left after this is for flutter.
Bug: skia:11876
Change-Id: I34cef8f31dac83347f2af1955dfde5346decc7a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399472
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
The Adreno driver seems to have a bug involving switch statements that
use fallthrough and/or have early returns.
Change-Id: I4a0e36dda5d30621e4c7119cdf9de0f478bc9d8d
Bug: skia:11891
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400396
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
This is a no-op for the current/raster backend, but will be implemented
for GPU.
Change-Id: Id2ff4fe3b254b0d1730c2cb931737c372edbcf7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400096
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
- opaque Shader class to act as a Java SkShader wrapper
- shader slot on Paint
- RuntimeShaderBuilder utility to enable the same use pattern as native
Skia:
RuntimeShaderBuilder builder(sksl_string);
builder.setUniform("foo", 1);
builder.setUniform("bar", 2);
paint.setShader(builder.makeShader());
or, more fluent:
paint.setShader(
RuntimeShaderBuilder(sksl_string)
.setUniform("foo", 1)
.setUniform("bar", 2)
.makeShader());
Change-Id: I7cd241a2f64bc54dcae2175ed35040edf6506ed3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399736
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Bug: skia:11897
Change-Id: Ia937bfc5f86daea9d39b2d6f398dc093ba3146f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400098
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Bug: skia:11876
Change-Id: Ic95dc6d9bc04117c4fc7f88d6eb6acceb5bbe58d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399501
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
e0e5eb8480..1800d1d92b
2021-04-22 cnorthrop@google.com Tests: Add Ludo King trace
2021-04-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e5bb9b56c292 to 706897cbbf31 (11 revisions)
2021-04-22 geofflang@chromium.org D3D11: Disable CompositorNativeWindow11 in Chromium builds.
2021-04-22 jplate@google.com Updated OpenCL headers
2021-04-22 jplate@google.com Generate empty CL object classes
2021-04-22 lexa.knyazev@gmail.com Align BPTC format names in angle::FormatID
2021-04-22 geofflang@google.com Reland "Add a Vulkan feature to compress float32 vertex formats."
2021-04-22 jmadill@chromium.org Update standalone Android docs.
2021-04-22 jmadill@chromium.org Update Android-releated tools DEPS.
2021-04-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 2e3165386670 to 953728c7e200 (354 revisions)
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 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: jvanverth@google.com
Test: Test: angle_perftests --gtest_filter="*ludo_king*"
Change-Id: I04372f1f7fcf0ff1ebb654f90e728709a95867ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400155
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bug: skia:11861
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I9d9e7a9ee81bef54cea3c5be3952f577ddad35a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399798
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
DSL requires all of its variables to exist at the topmost scope, since
its inner "scopes" are not actual C++ scopes, but Block() statements.
This means that code like this:
if (something) {
int var;
} else {
int var;
}
Must declare both `var` objects at the top level. We now detect variable
names that overlap, and prepend a number to disambiguate them. In this
case, the second `var` here would be renamed to `_0_var`. Since this
scheme follows the mangler's naming pattern, these names coexist nicely
with the inliner (avoiding double-mangling in the final output).
Change-Id: I22fa9b856ea9cdc3f7eae96c9d91ad9dcc16b186
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399417
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
The instructions used to implement it don't deliever
the same results across processors, even on the same
architecture.
Minor diffs on lighting image filter GMs;
this will likely require staged rollout.
Bug: skia:11861
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I4c0b0eab221a051f863f4949051f50652466651e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396723
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
If there is no SkTextBlob associated with the glyphRunList,
then there is no possibility for reuse. Don't create a
GrTextBlob, and don't consult the cache. Just build the
GrAtlasTextOp directly.
Change-Id: I2dbdb2a01ef62c1bdaa1010796b4d58a9b455640
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399896
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This CL also removes some vestiges of the kSampler type, which hasn't
been used in .fp files for a long time.
Change-Id: Iaca1d0c6e77ad2df2b6c5dacd1c68079d6dd5cf2
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398738
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
These new tests rely on compiled shaders that live in the
`tests/sksl/dslfp/` directory; this CL updates the Bazel and
emscripten build scripts to include these shaders.
Change-Id: Ib670682af8bf451a4473504dd4cc76a0e9222129
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400097
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
This new tessellator renders strokes as fixed-count triangle strip
instances. Any extra triangles not needed by the instance are emitted
as degenerate triangles. Since it draws in order, this tessellator
allows us to batch dynamic colors even when hw tessellation is not
supported.
Bug: skia:10419
Change-Id: If03a8b76319471ae4d4580dda019b69204d9197b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398416
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Mixed samples is no longer relevant for Ganesh. DMSAA and the new
Ganesh architecture both rely on full MSAA, and any platform where
mixed samples is supported will ultimately not use the old
architecture.
Change-Id: I5acc745010e090ef26310d92ec6240be2cd494cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399837
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is a reland of c412688798
This CL lands the code changes but not the dm test, which is causing
link errors. Tests will be relanded as a separate CL, at
http://review.skia.org/400097
Original change's description:
> Reland "Implement statements and expressions in DSL C++ code generator."
>
> This is a reland of 16cbfb41df
>
> Tests now rely on `shaderDerivativeSupport` and `integerSupport` as
> proxies to indicate ES3 support. The SwitchStatement test has been
> adjusted to hopefully confuse fewer compilers.
>
> Original change's description:
> > Implement statements and expressions in DSL C++ code generator.
> >
> > This CL removes the bulk of the existing C++ code generator, especially
> > all the complex format-string assembly code. It has been replaced with
> > actual DSL code generation. Simple IR can now be successfully translated
> > to a working DSL fragment processor.
> >
> > This CL also adds a simple test harness which is patterned after the
> > existing SkSLTest; it renders a pixel, reads it back, and fails the test
> > if the result isn't solid green (RGBA=0101).
> >
> > This CL doesn't implement every feature. Some obvious gaps include:
> > - Sampling from children
> > - Uniforms/inputs of any kind
> > - Function calls of any kind
> >
> > Change-Id: Ib80c23fe1ba4453f7c3cb43b65f93c5ea0deb709
> > Bug: skia:11854
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396757
> > Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: John Stiles <johnstiles@google.com>
>
> Bug: skia:11854, skia:11891
> Change-Id: I91363e31f34611d15ae350b52d6fc459feeace9c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399076
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:11854
Bug: skia:11891
Change-Id: Ib1f08256c84d1da2130e0b61356f72435dc0a5a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399740
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Bug: skia:11844
Change-Id: I7a02a4848ed81f16b05df0729070660faf8fce86
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399744
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
These are leftovers. Should be a noop.
Change-Id: I9897841e63b417a63d6f2d681a8ac4ae50ebb485
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399797
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
We exclude the NUC5PPYH just to get desktop coverage,
and we exclude the Pixel4, 4XL, 5 because of an apparent driver
bug I'm in the progress of tracking down.
Bug: skia:10877
Change-Id: Ic925cc7434c5228bcc2ee07ae752f89229db55c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399742
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
The existing code incorrectly uses the recordTimeAllocator.
Add a SubRunAllocator to the GrArenas, and use GrArenas to
store direct glyph drawing information.
Change-Id: I38ba25658364a48af5c775315331795d3d22121f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397476
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Mixed samples is no longer relevant for Ganesh. DMSAA and the new
Ganesh architecture both rely on full MSAA, and any platform where
mixed samples is supported will ultimately not use the old
architecture.
This CL is step one of two in dropping support for mixed samples. Once
the gold expectations are updated, we will come back through and
delete the code.
Change-Id: Ib8d21dc285555f8bbfb45c3f1fb509af215f5bad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399496
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This is a reland of 11524527bc
Original change's description:
> Use SkImage_Base::asFragmentProcessor in SkGpuDevice.
>
> A step towards getting rid of GrTextureProducer family of classes.
>
> Bug: skia:11877
> Change-Id: I42e0f24441d7b64fd0e6b27671100750b80d15f4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398876
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
Bug: skia:11877
Change-Id: Ic551b085c85f989fafb524751bdf27f15b6585c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399743
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>