Expressions which would optimize to a non-finite value are now left
as-is.
Integer math still has problems with overflow, but that can be addressed
separately.
Change-Id: I363a2c42684989062f606186f48246b7ac5b585c
Bug: skia:12050
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412956
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The primary color is always named sk_FragColor; both sides of the
ternary would return the same string.
Change-Id: I18b19a12e7568cdf7c5cbf5d8c488bbdff5b7a4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412936
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Debugger had been including some egl code, which started throwing
an error about eglGetProcAddress not being linked in.
Change-Id: I2e930dc5064b6fc238d3399fe8aba5fe105a3097
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412986
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Other devs should run `npm ci` to install these locally.
Change-Id: I4581e8afe2401b10edae86b8bfd6fe398546cd0f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412836
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
This cuts down on some flakiness I saw locally.
Change-Id: I8659b2cabacb99f3839a4b44daec852061184d55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412663
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
91e693afce..163f6ac055
2021-05-26 jmadill@chromium.org Gold Tests: Add batching.
2021-05-26 kbr@chromium.org Revert "GL: Skip redundant flushes."
2021-05-26 jmadill@chromium.org infra: Shard restricted_trace_gold_tests.
2021-05-26 jonahr@google.com Add nullptr check for pfnGetPhysicalDeviceProperties
2021-05-26 geofflang@google.com GL: Implement multisampled_render_to_texture
2021-05-26 geofflang@chromium.org Make ANGLE's program hash key deterministic.
2021-05-26 jmadill@chromium.org infra: Remove Pixel 2 (android_vk) tests from CQ.
2021-05-26 jplate@google.com CL: program object creation for front end and pass-through
2021-05-26 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from cca33b4d0510 to 89ab6280369d (2 revisions)
2021-05-26 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 594a967a8bf8 to b6af002ef64a (448 revisions)
2021-05-25 cclao@google.com Vulkan: Move framebuffer dirty bits handling after texture
2021-05-25 cclao@google.com Vulkan: Convert web_gl.fuzz545ImmutableTexRenderFeedback to gl_test
2021-05-25 jplate@google.com CL: sampler object creation for front end and pass-through
2021-05-25 syoussefi@chromium.org Add test for Vulkan crash with texture MAX_LEVEL change
2021-05-25 b.schade@samsung.com Vulkan: Clean up GS deqp expectations
2021-05-25 jplate@google.com CL: image object creation for front end and pass-through
2021-05-25 timvp@google.com Reduce ANGLE APK size
2021-05-25 timvp@google.com Add LOCAL_LICENSE_KINDS to generate_android_bp.py
2021-05-25 geofflang@google.com GL: Skip redundant flushes.
2021-05-25 jplate@google.com CL: buffer object creation for front end and pass-through
2021-05-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1e60587ea42c to cca33b4d0510 (6 revisions)
2021-05-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 8023f14612cf to 594a967a8bf8 (310 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 jlavrova@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: jlavrova@google.com
Test: Test: KHR-GLES32.core.geometry_shader.layered_rendering.layered_rendering
Test: Test: manual verification
Change-Id: Iae69952f80116e8cac85f1f82325bc4046f1ee1f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412752
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Change-Id: Ic6a3ce722c607d4d3c47d37e5749a01ae5fb193f
Bug: skia:12050
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412668
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>
https: //chromium.googlesource.com/external/github.com/libexpat/libexpat.git/+log/e976867fb57a0cd87e3b..a28238bdeebc087
Change-Id: I973d2e342046079e7219110f103021fd06142c2c
Due to "Resolve macro HAVE_EXPAT_CONFIG_H" 8d1bd6ff2c09 it is now
required to provide an expat_config.h. A minimal and maximally portable
one is added.
Change-Id: I973d2e342046079e7219110f103021fd06142c2c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412776
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
The C stdlib versions always assume double types. The C++ std:: versions
are type-correct.
Change-Id: I5619339dbd2454c12ac2f35b8b2ee360b2e1a708
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412666
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
$genType refract($genType I, $genType N, float eta);
$genHType refract($genHType I, $genHType N, half eta);
The half form of refract was originally taking a `float eta` in our
headers, which seems wrong (and causes the DSL to break unless you add
casts). I've corrected the headers to use `half eta`.
Change-Id: I74b9ac330e0f7e99622d19cf7365aaa4cc910e57
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412664
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Change-Id: I1630cf6ecab6a1a18a7318c247f8263d87e2cda9
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412662
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
$genType reflect($genType I, $genType N);
$genHType reflect($genHType I, $genHType N);
Change-Id: I59889ad767829bf7e33838737d7b7f6d1cbc3ece
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412777
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>
This reverts commit 789ec0533e.
Reason for revert: Not ready for this yet
Original change's description:
> Temporarily disable reordering on bots again
>
> To be landed after CL 412636. This should give us a clearer picture of
> the perf impact of reordering, now that the fence issue is mitigated.
>
> Will flip it back after perf runs.
>
> Bug: skia:10877
> Change-Id: I255c68f148f7aaebacb2469a56b7eade6d41696c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412638
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Auto-Submit: Adlai Holler <adlai@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=robertphillips@google.com,adlai@google.com
Change-Id: Idef91adade6f2814e472c70f71bd8d1b51aa4fa8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10877
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412665
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
To be landed after CL 412636. This should give us a clearer picture of
the perf impact of reordering, now that the fence issue is mitigated.
Will flip it back after perf runs.
Bug: skia:10877
Change-Id: I255c68f148f7aaebacb2469a56b7eade6d41696c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412638
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This was made obsolete when a shared intrinsic enum was added to the IR.
Change-Id: I95ff46ea721b01edfc15a203adae559ff8d9277e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412639
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This implementation leans heavily into DSL. I also reworked the
`normalize` intrinsic to use more DSL to shrink the implementation.
$genType faceforward($genType N, $genType I, $genType Nref);
$genHType faceforward($genHType N, $genHType I, $genHType Nref);
Change-Id: I73ab11d3fe449d2f2c0ae0d745fc39824fc64771
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412637
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>
This one is structured a bit differently; it gets to length() value,
then divides the input by its length using a bit of DSL. Since all the
inputs are constant, the constant-folder will do the right thing.
$genType normalize($genType x);
$genHType normalize($genHType x);
Change-Id: I51e5c65fa9e33738cbe253fcc97ee2160c48cfdd
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412340
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Every stroke shader just has conic branches now. The conic/cubic math
is mostly unified anyway, so a couple small branches shouldn't affect
perf.
Bug: skia:10419
Change-Id: I7690e54e61413902dd9836da532faf6383fb73b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412456
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Every shader always has a matrix now. The 4 FMAs (literally) that this
saved by specializing the shader weren't worth it.
Bug: skia:10419
Change-Id: I506dbd6d723f6dd022345956fdb5b60b0dd94932
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412416
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Not a big deal, but reduces redundant LOC in here a bit.
Change-Id: If917c09b0ea5dee17978e12795fd3e3d8974d37d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412378
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
float length($genType x);
half length($genHType x);
Change-Id: I65b64fdba5f7bd53afba1d6f930217e3f1bd6f6e
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412377
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Enable hardware tessellation as much as possible with --alwaysHwTess.
Use --maxTessellationSegments 16 to verify the chopping logic.
Bug: skia:10419
Change-Id: I1a37a6a8700ad16197251a753d40b0d3aaeecb8e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412296
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Test is failing on Adreno 6xx + Vulkan.
Change-Id: I8e5e97c82622c77385baef2c71d9381203221139
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412238
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>
Change-Id: Ia5d849a2ab3fc233c4feacb5198a0684978ca3a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/410794
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Now that hardware tessellators chop, support raw triangles, and can
handle any path, we don't need complicated logic anymore to determine
when we can't use them. This CL simplifies the criteria for selecting
a tessellation algorithm and adds a fAlwaysPreferHardwareTessellation
context option to override it.
Bug: skia:10419
Change-Id: I8492e8f285ff27eb9d0dd6b1e9817dbeeb386c63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/411496
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
If every use of the coords passed to main was for a call to sample that
was converted to pass-through sampling... We don't actually reference
the sample coords, so we can un-set the flag. This prevents the FP from
requesting an extra set of (unused) coords, which saves a varying
between the vertex and fragment shaders.
Bug: skia:11869
Change-Id: I4e15876031717b8bcf642e742bad8ae26d6bd020
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/411871
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Change-Id: Icb400a8826a42cabe8e12ef6648435ab63e15d88
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/411899
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
As explained in the bug and comment - if the only reference to sample
coords is from a sample call that gets converted to pass-through, we
don't *actually* need the coords. We don't realize that with today's
analysis, so we end up generating a set of coords for the FP, which is
wasteful (adds an extra varying).
Bug: skia:11869
Change-Id: Iff818bb2c3deb96162a8cf107ccf4ecb35344bb1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/411244
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Change-Id: Ib678324849a15204c910df3361d7fd061cae1bb8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/411900
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Previously, `evaluate_intrinsic_1_of_type` and related functions were
all templated on the lambda expression of each evaluation function, so
every intrinsic generated a copy of each function. In most cases this
could be replaced by a std::function which takes and returns a float,
bool or SKSL_INT. (This level of flexibility was only truly necessary
for `evaluate_intrinsic_numeric1`.)
Change-Id: I2a4bd5984d74bb97bffd31018c9cf3dba17e8450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412056
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>