Commit Graph

55472 Commits

Author SHA1 Message Date
John Stiles
35981296a8 Prevent overflow of integral types during constant-folding.
Expressions which would overflow/wrap the result type are now left
as-is.

Change-Id: I6a942f337e6e5761823f5c9dcd214fa58227a626
Bug: skia:10932, skia:12050
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413138
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-05-27 20:12:57 +00:00
Brian Osman
ce9d8e143d Remove all traces of OpenCL
Change-Id: I4e00edd2d1572c3e2c1fcb56824239c166253cbc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412958
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-05-27 19:17:17 +00:00
Chris Dalton
b0355a7643 Fix trickycubicstrokes and widebuttcaps bg colors on GpuTess
Setting the max tessellation segments to 5 for GpuTess caused some of
these backgrounds to incorrectly show up as red.

Change-Id: Ie6b7b44e5500e1dd23df2e7f6b3783bcabcc614d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412556
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-05-27 18:42:27 +00:00
Ravi Mistry
ace17c2f46 Add LICENSE file to third_party/expat/include/expat_config/
Bug: skia:12052
Change-Id: Idd74b7bfec1e5259e426187bcb191e1696320247
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413116
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-05-27 18:15:18 +00:00
Julia Lavrova
658d96662b Fixing the worst case when text cannot be resolved at all
(hanging on Mac)
Bug: skia:11996

Change-Id: I4dcd8175d0d4440a7c7ef73be26508018ad86c46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412661
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-05-27 17:43:57 +00:00
John Stiles
7377afb851 Add a bit-width field to SkSL types.
Knowing the bit-width of a type is the first step towards knowing
whether a value can fit into a type.

In practice this data didn't take any extra space, as I was able to
replace the existing `fHighPrecision` field. The `highPrecision()` call
still exists, and just checks for bit widths of at least 32. All the
same, I spent a bit of time reorganizing and minimizing the Type fields
to save a bit of space. Values like `fRows` and `fPriority` which will
always be small now use int8_t, and the bools are packed into a byte.

Change-Id: Id13b577abd453299fc9998ee92a7271629274351
Bug: skia:10932, skia:12050
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413078
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-27 17:33:37 +00:00
Chris Dalton
6edc8d9617 Remove 'hasUserStencilSettings' from GrClip::apply
This doesn't seem necessary. Its only purpose was to disable analytic
clips when there were user stencil settings, which seems like a
de-optimization. The ops that use stencil all seem to properly handle
clip processors in their color pass, so it should be fine to remove
this.

Bug: skia:12047
Change-Id: Ide0ae1004548d62b2feb73c6950bcbcaf6716cfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413099
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-05-27 17:14:37 +00:00
Brian Osman
55cbc75930 Add comments to clarify use of fInputColorIsOpaque
Bug: skia:7722
Change-Id: I9e2a70ac67947900897f6bb9237d6c3af1d03b7c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413136
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-05-27 17:09:17 +00:00
Chris Dalton
13adb4a398 Speed up the fixed count parametric/radial sort
The fixed count stroke shader was executing a sort loop long enough to
handle 1024 parametric segments, when in reality it will never see
more than 48. This CL cuts the per-vertex sorting work nearly in half
by reducing the number of iterations from 10 to 6. (The indirect
tessellator continues to use 10 iterations.)

Bug: skia:10496
Change-Id: Idc21d6015d449f63915780972a8d487c9c6de6fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412496
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-05-27 16:59:17 +00:00
Ben Wagner
f893d47a21 Add copyright header to expat_config.h
This minimal config was created by hand attmpting to set things the same
way they had been before expat_config.h was required.

Bug: skia:12052
Change-Id: I29f90851312a1a6f8866f8ea30e21c246b340276
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413077
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-05-27 15:40:10 +00:00
Kevin Lubick
e6484b5b2a [canvaskit] Rollback gm tests compile version
Ran into an llvm bug
`fatal error: error in backend: missing indirect function table symbol`
https://bugs.llvm.org/show_bug.cgi?id=50408

Change-Id: I0e36f9c802669b75633fa7d4d75292c0baaf0d81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/413036
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-05-27 15:37:03 +00:00
Eric Boren
64c848b384 [infra] Delete bin/try* and tools/chrome_release_branch*
These have been replaced by `sk try` and `sk release-branch`,
respectively.

Change-Id: Idc297dd7c84a87a09f69f310de495f91fcce36b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/409898
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
2021-05-27 14:27:20 +00:00
John Stiles
b01c18625e Implement compile-time optimization for inverse().
$squareMat inverse($squareMat m);
$squareHMat inverse($squareHMat m);

Change-Id: I1a2b067dd276bb999107712c38d0124811b95e39
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412937
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-05-27 13:57:00 +00:00
John Stiles
afaddc959c Prevent overflow to infinity in constant-folding.
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>
2021-05-27 13:23:40 +00:00
John Stiles
0bdf8a3435 Simplify GrGLSLFragmentShaderBuilder::getPrimaryColorOutputName.
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>
2021-05-27 13:20:40 +00:00
Kevin Lubick
2e24270ece [debugger] Fix build after update to emsdk 2.0.20
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>
2021-05-27 13:08:55 +00:00
Kevin Lubick
123e55968d [canvaskit] Build with emsdk 2.0.20
Change-Id: I4c3bdc8dd0d0dc8b12b2d430d5ea9a20d170b82b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412876
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-05-27 12:36:41 +00:00
Kevin Lubick
61b0a88357 [canvaskit] Update testing dependencies
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>
2021-05-27 12:31:20 +00:00
Kevin Lubick
dc5530e5b3 [canvaskit] Retry loading assets for tests
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>
2021-05-27 12:31:06 +00:00
Kevin Lubick
95d599c0a0 [canvaskit] Introduce self-documenting pointer types
Change-Id: I72dfe6098dae699d85cf87b6432e27cf845c832d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412659
Reviewed-by: Mike Reed <reed@google.com>
2021-05-27 12:30:54 +00:00
skia-autoroll
e9f1989c38 Roll Dawn from 44fc6e3ab55d to 5d39860fef79 (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/44fc6e3ab55d..5d39860fef79

2021-05-27 jiawei.shao@intel.com Implement AsyncWaitableEvent with std::condition_variable
2021-05-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 61fbf13d2571 to 7a47fa849580 (2 revisions)
2021-05-26 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 81cbe07c12db to 61fbf13d2571 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 81cbe07c12db to 7a47fa849580

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 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-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I1b66c7ad784d56acfdc5192e0cdcb54165c7c6e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412729
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-27 05:27:49 +00:00
skia-autoroll
a69b3db7e1 Roll ANGLE from 91e693afce9b to 163f6ac055f4 (22 revisions)
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>
2021-05-27 05:21:29 +00:00
skia-autoroll
db4b0fb940 Roll SwiftShader from b46b97c10c10 to 5d449d4fcb77 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b46b97c10c10..5d449d4fcb77

2021-05-26 chonggu@google.com Update references for ANGLE submodule

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 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:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: jlavrova@google.com
Change-Id: I134243cc75fe312c2e6045adcf2364c97099bdbe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412751
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-27 05:07:00 +00:00
John Stiles
b35fbdbb06 Add test demonstrating overflow error in SkSL.
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>
2021-05-26 21:52:31 +00:00
Ben Wagner
f81ac4270c Roll libexpat to 2-4-1
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>
2021-05-26 21:18:49 +00:00
Jorge Betancourt
614e398ed3 expose Matrix transpositions and setUniform to RuntimeEffectBuilder
Change-Id: I78b57c3ad5e735335d1e2cc34e6c51a2ced6fc03
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412796
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-05-26 20:31:39 +00:00
John Stiles
b20521277d Use std:: versions of math functions.
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>
2021-05-26 20:20:29 +00:00
John Stiles
f47cfa8be5 Implement compile-time optimization for refract().
$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>
2021-05-26 19:55:39 +00:00
John Stiles
c3ff098020 Implement compile-time optimization for pow().
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>
2021-05-26 19:54:09 +00:00
John Stiles
4ceccaf053 Implement compile-time optimization for reflect().
$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>
2021-05-26 19:49:29 +00:00
Adlai Holler
59adca5082 Revert "Temporarily disable reordering on bots again"
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>
2021-05-26 18:46:40 +00:00
Adlai Holler
789ec0533e 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>
2021-05-26 18:40:39 +00:00
Brian Salomon
aaccd85ac0 Revert "When faking GLsync with EGL insert eglSwapBuffers"
This reverts commit 3af709f71a.

Reason for revert: going to try double buffering sksurfaces instead

Original change's description:
> When faking GLsync with EGL insert eglSwapBuffers
>
> Change-Id: I5db86b4b0d695e74c14d48c9c29464dade2af442
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412636
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Adlai Holler <adlai@google.com>
> Auto-Submit: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Adlai Holler <adlai@google.com>

TBR=bsalomon@google.com,adlai@google.com

Change-Id: I908313e46385bb933d4ec46ffcdae1e628690821
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412660
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-26 17:47:59 +00:00
Brian Osman
c5b1d50ea3 Remove unused intrinsic enum from VM generator
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>
2021-05-26 16:39:58 +00:00
John Stiles
7cfa1ce9db Implement compile-time optimization for faceforward().
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>
2021-05-26 16:28:48 +00:00
Brian Salomon
3af709f71a When faking GLsync with EGL insert eglSwapBuffers
Change-Id: I5db86b4b0d695e74c14d48c9c29464dade2af442
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412636
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
2021-05-26 15:46:48 +00:00
John Stiles
3ef2c61c50 Implement compile-time optimization for normalize().
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>
2021-05-26 15:06:08 +00:00
John Stiles
419d2ced2d Implement compile-time optimization for dot().
float dot($genType x, $genType y);
half dot($genHType x, $genHType y);

Change-Id: Ia8b893eaddd8b4325c34143c80fb0ae05b111666
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412339
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-05-26 15:05:08 +00:00
Chris Dalton
ca911aee63 Remove non-conic stroke shader specializations
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>
2021-05-26 15:00:18 +00:00
Chris Dalton
64d06ba897 Delete identity matrix shaders from tessellation
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>
2021-05-26 14:58:58 +00:00
John Stiles
e1c2beb3be Implement compile-time optimization for distance().
float distance($genType p0, $genType p1);
half distance($genHType p0, $genHType p1);

Change-Id: I492a90c0fe5c950c878752d45c3b2dc6f2cd866e
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412379
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-05-26 14:11:58 +00:00
John Stiles
f9c2323f37 Turn evaluate_intrinsic_(float1|bool1) into a template.
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>
2021-05-26 14:07:49 +00:00
Kevin Lubick
0fb5e6290f [infra] Use different dimensions for different XCode versions
This depends on https://chrome-internal-review.googlesource.com/c/infradata/config/+/3860969

Bug: skia:11129
Change-Id: I5bffae04581cb28eb67f278b005d480335c198f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412297
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-05-26 13:28:28 +00:00
skia-autoroll
1a7fb9b396 Roll Dawn from e1598e4891ec to 44fc6e3ab55d (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/e1598e4891ec..44fc6e3ab55d

2021-05-26 jiawei.shao@intel.com Remove DAWN_SKIP_TEST_IF -- Part II
2021-05-25 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 4fe6cb98e219 to 81cbe07c12db (1 revision)
2021-05-25 jrprice@google.com Remove use of deprecated `const` in WGSL
2021-05-25 jiajia.qin@intel.com Remove the suppression on use_tint_generator

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 4fe6cb98e219 to 81cbe07c12db

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 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-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I2cda0bf44f23809b006596fd05d83c3d8882c595
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412403
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-26 05:01:49 +00:00
John Stiles
9b2baac1d6 Implement compile-time optimization for length().
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>
2021-05-26 00:58:53 +00:00
John Stiles
e5240a2498 Implement compile-time optimization for mod().
$genType mod($genType x, float y);
$genType mod($genType x, $genType y);
$genHType mod($genHType x, half y);
$genHType mod($genHType x, $genHType y);

Change-Id: I406eafbe824d7aa55012196521e6f10cac50ed19
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412376
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-05-25 22:07:53 +00:00
Chris Dalton
ad5b44720f Improve hw tessellation coverage on "GpuTess" dm bots
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>
2021-05-25 21:13:06 +00:00
John Stiles
4987c4af49 Implement compile-time optimization for smoothstep().
$genType smoothstep($genType edge0, $genType edge1, $genType x);
$genType smoothstep(float edge0, float edge1, $genType x);
$genHType smoothstep($genHType edge0, $genHType edge1, $genHType x);
$genHType smoothstep(half edge0, half edge1, $genHType x);

Change-Id: Idf6a39fab8d5b81d4a3233444a8b381460cbde71
Bug: skia:12034
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412356
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-05-25 20:32:46 +00:00
John Stiles
27724cd169 Disable SkSL test for clamp().
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>
2021-05-25 19:10:49 +00:00
skia-autoroll
fb98441e87 Roll SK Tool from e0bb16c650f5 to ecd65ead0e34
https://skia.googlesource.com/buildbot.git/+log/e0bb16c650f5..ecd65ead0e34

2021-05-25 rmistry@google.com Use main branch in go/gitiles
2021-05-25 rmistry@google.com [CT] Update master branch references to main

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 kjlubick@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

Tbr: kjlubick@google.com
Change-Id: I170344e6b60b61a0f1441d0b2d0f3058e0042270
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/412199
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-25 19:05:46 +00:00