Commit Graph

56933 Commits

Author SHA1 Message Date
Ethan Nicholas
f8f1fa013f Stop DSLParser from continuing after an invalid token
This matches the behavior of SkSLParser

Change-Id: Ib9af7173dda8866faf8633b8c88a8716b4e6b8d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443239
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 16:47:31 +00:00
Ethan Nicholas
27633232f4 Fixed DSL handling of struct field modifiers
This fixes an issue where the field modifiers were incorrectly applied
and adds proper error detection to the modifiers.

Change-Id: I8cd88d3a459df81250c267e6007bca9663b7eda4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443237
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-08-31 16:35:00 +00:00
Ethan Nicholas
e110f6edaf Improve DSLParser error recovery with interface blocks
We get better error reports by simply continuing in these cases.

Change-Id: I9e5fd4fe3afca601bb20a23376b6b098e909106f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443238
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 16:34:12 +00:00
Ethan Nicholas
c89ebe3cec Fix EmptyStruct test in DSLParser
This fixes a spurious complaint about a missing semicolon.

Change-Id: I6e310e098ffb9e90c973af1e47bc3572781af296
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443216
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 16:23:17 +00:00
Ethan Nicholas
772061e836 Added DSL error for opaque types in structs
Change-Id: I3fc35b2d5c5c0d1b533c165496d604fb7ac6e119
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443178
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 16:09:48 +00:00
Ethan Nicholas
79c8899eba Fix error with allocating arrays from DSLParser
This was previously resulting in the error "array size must
appear after variable name". We're presumably also going to need
another fix elsewhere to add this error back in when it applies,
but that's going to be a separate CL.

Change-Id: I18164b4ebb82a22944637c3380d8a9d4fc86d0c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443177
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 16:01:54 +00:00
Ethan Nicholas
df803aaf5d Added positions to DSLParser layout processing
This allows for correct line number information in errors relating
to layouts.

Change-Id: I8df02f434d3565cb466074742780424b67ce4a8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443240
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 15:46:29 +00:00
Ethan Nicholas
36e4df71b5 Fixed a function name in MismatchedNumbers.sksl
DSLParser caught a duplicate function name in here that SkSLParser
wasn't reporting.

Change-Id: I428c7ec64d1b625d9d12c6b7acdb23b52a0d7b89
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443241
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-08-31 15:31:58 +00:00
Kevin Lubick
29104528cc [infra] Port serve.py from Python2 to 3
These scripts are useful when testing WebAssembly locally
because the mimetype impacts how the binaries are loaded.

The porting was achieved by doing the following:
python -m lib2to3 -w -n serve.py


Change-Id: I09673fa881339a9b157c5fc993e190766efcd85e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443884
Reviewed-by: Erik Rose <erikrose@google.com>
2021-08-31 15:28:19 +00:00
John Stiles
9c975c52d6 Store loop-unroll information inside ForStatement.
This will be useful when trying to determine the flattened size of a
program, and it is expensive to compute on demand.

Change-Id: I232d9189511502d4783e5542a9bfe0dff8ea8c4a
Bug: skia:12396
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443883
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-08-31 15:28:15 +00:00
Michael Ludwig
aa008bc157 Avoid integer overflow in area calculation for SkRect::Subtract
Width*height could actually overflow on relatively reasonably sized
integer rects, so this restructures the computation to use relative
area (compared to A) instead of total area. The relations are the same
but it avoids the multiply.

Bug: chromium:1244411
Change-Id: I5bfcfba80835da07b9929f532fc3b40b330a1199
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443876
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-08-31 14:53:48 +00:00
Ethan Nicholas
ace470be9a Make IRGenerator::call propagate poison
This fixes redundant "not a function" errors when we have already
produced an error resolving the target of a call.

Change-Id: I94876ec09feac399108033d1b850e78c7750dd1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443411
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-08-31 14:37:10 +00:00
Kevin Lubick
17c7c2f4b1 [fuzz] Update docs with better OSS-Fuzz link
Change-Id: I1be6bb537139c50342602aacd978585151a4a480
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443916
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-08-31 14:04:02 +00:00
John Stiles
fd3a6d9235 Always use python3 to run fetch-sk.
fetch-sk is no longer Python 2 compatible, and not all machines default
to Python3 (the Mac terminal still defaults to 2.7).

Change-Id: I6244ee591bbe787ef2dba46da2b20446265e42b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443406
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
2021-08-31 13:16:22 +00:00
Ethan Nicholas
6f20b8d5f7 Added line numbers to DSLParser errors
Change-Id: I895c3d94c9a49cc0350b287d3aa722050b91295e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443036
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-31 12:45:45 +00:00
skia-autoroll
262713dc65 Roll ANGLE from 3a9df22fcc51 to 27517801121e (1 revision)
3a9df22fcc..2751780112

2021-08-31 cnorthrop@google.com Capture/Replay: Set texture buffer offset alignment

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 fmalita@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: fmalita@google.com
Test: Test: Fortnite MEC
Change-Id: I3c321ee52054a770dd7ac6a786adda8f8779d431
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443765
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-31 06:20:16 +00:00
skia-autoroll
667d05021b Roll Dawn from ea487972d16e to c7226a76245d (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/ea487972d16e..c7226a76245d

2021-08-31 lokokung@google.com Adds ETC2/EAC texture compression formats and Vulkan support for them
2021-08-30 cwallez@chromium.org vulkan: Free "in flight" fences/commands in ShutdownImpl
2021-08-30 cwallez@chromium.org client: call pending GetCompilationInfo on Disconnect

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 sarahmashay@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: sarahmashay@google.com
Change-Id: I1f929d215e22b12cc28d3faecda6f9036b15d481
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443762
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-31 05:22:17 +00:00
skia-autoroll
78a00998f8 Roll SwiftShader from 6aad52e1aef6 to 8ed4e39caa5b (9 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/6aad52e1aef6..8ed4e39caa5b

2021-08-30 srisser@google.com Turn BC6 constructors into constexpr
2021-08-26 capn@google.com Implement VK_EXT_load_store_op_none
2021-08-26 capn@google.com Refactor determining the aspects to clear
2021-08-26 capn@google.com Refactor command execution
2021-08-25 capn@google.com Update Vulkan headers to version 1.2.189
2021-08-25 capn@google.com Eliminate custom Vulkan constants
2021-08-25 srisser@google.com Don't use global variables for CPUID
2021-08-25 srisser@google.com Remove global constructor from BC6
2021-08-23 capn@google.com Fix Subzero Optimizer run time variability

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 fmalita@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: fmalita@google.com
Change-Id: I36907737395e5c559bd836e4e889527ef98d7fb4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443761
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-31 05:14:17 +00:00
skia-autoroll
f182b8d050 Roll ANGLE from bc89eda7bb6e to 3a9df22fcc51 (9 revisions)
bc89eda7bb..3a9df22fcc

2021-08-30 cnorthrop@google.com Tests: Add World of Kings trace
2021-08-30 ianelliott@google.com Split OWNERS by domain
2021-08-30 cnorthrop@google.com Vulkan: Fix VVL error regarding geometryStreams
2021-08-30 cclao@google.com Vulkan: Use angle::Format for ImageViewHelper class
2021-08-30 geofflang@google.com Roll third_party/vulkan_memory_allocator
2021-08-30 cclao@google.com Vulkan: Add ImageHelper::getIntendedFormatID()
2021-08-30 gert.wollny@collabora.com Capture/Replay: Show some expectation when skipped tests are run
2021-08-30 jmadill@chromium.org InitializeVariables: Init shader IO block outputs.
2021-08-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3e5496ec4fdf to 4c030a49cdb9 (6 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 fmalita@google.com,robertphillips@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: fmalita@google.com,robertphillips@google.com
Test: Test: World of Kings MEC
Test: Test: angle_perftests --gtest_filter="*world_of_kings*"
Change-Id: Ia81e351f2918f0eaa91dd0c46a9906c2a499a483
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443713
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-31 02:17:15 +00:00
Mike Reed
2303f7c4a9 Redraw duing mouse drag
Change-Id: I3d72395ad6e8212859a8a3839211f73d27524f22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443413
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2021-08-31 00:34:58 +00:00
Robert Phillips
9a0302cd9d Revert "Simplify SkRasterClip now that it's only intersect/diff"
This reverts commit 75bab9249d.

Reason for revert: Experiment to see if blocking Chrome roll

Original change's description:
> Simplify SkRasterClip now that it's only intersect/diff
>
> Bug: skia:10205
> Change-Id: Id29a63783bd38e5977e94bf8e8d7fbb4fe16cb51
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442279
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

TBR=reed@google.com,michaelludwig@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: I1ceeccf880a139dc9236b7df17e3599f8cae611f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10205
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443414
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-31 00:11:53 +00:00
Robert Phillips
cadd5dbded Move three Op-derived classes to the skgpu::v1 namespace
GrRegionOp
GrShadowRRectOp
GrStrokeRectOp

Bug: skia:11837
Change-Id: I0b573031acb13138e1549712c555337247e0a08e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442836
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-30 21:16:11 +00:00
Ethan Nicholas
5d97a96aa0 DSLParser now tracks parse errors separately from semantic errors
With SkSLParser, all errors were fatal. But with DSLParser, semantic
errors can occur in the middle of parsing, and we need to be able to
distinguish the two so we know whether or not to stop parsing.

Change-Id: I125901d8ee9ac28480ff7f1ddb825b1e14468a6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443409
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-08-30 20:48:21 +00:00
Jim Van Verth
2055cb2790 Metal: fix RenderCommandEncoder compatibility check.
The original compatibility check is based on the Metal Best Practices
Guide from Apple. However, that assumes that you will be merging two
potential encoders. In our case we have an existing encoder and want to
know if we can use it for the next renderpass, which involves some
additional checks comparing store actions.y

Bug: skia:12086
Change-Id: If0f1259a02b50ff98469f10a0d1513b4977f4426
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443405
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-08-30 20:44:49 +00:00
John Stiles
f89a8122a4 Fix flaws in minus-prefix optimization.
We had a logic bug when attempting to optimize the following code:
    const vecN x = vecN(a, b, c);
    -x;

The goal was to replace `-x` with `vecN(-a, -b, -c)` but we accidentally
tried to cast the `x` VariableReference to a Constructor. We
unfortunately didn't cover this in any of our test cases, but the fuzzer
managed to synthesize it by mixing and matching elements from its new
corpus.

This affected several different constructor types: splat, diagonal-
matrix, compound and array.

Change-Id: I10dd2460ab26ba3e820b0cff5db091368fb7e648
Bug: oss-fuzz:37764, oss-fuzz:37861
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443407
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>
2021-08-30 20:40:17 +00:00
Michael Ludwig
75bab9249d Simplify SkRasterClip now that it's only intersect/diff
Bug: skia:10205
Change-Id: Id29a63783bd38e5977e94bf8e8d7fbb4fe16cb51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442279
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-08-30 20:39:43 +00:00
Kevin Lubick
e5d07787f0 [infra] Add wildcard OWNERS
This is a requirement to enforce code review.

Bug: skia:12124
Change-Id: Ia35c5fec148329625daaffecec60116c291633ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443636
Reviewed-by: Ravi Mistry <rmistry@google.com>
2021-08-30 19:19:34 +00:00
Julia Lavrova
5dbdb1e75d Line metrics: return all indices in UTF16
Bug: skia:12383
Change-Id: Ibf5521caa8858a7f18fd2717f5f55ff52ffeef54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443403
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-08-30 18:51:58 +00:00
Julia Lavrova
078a8ddc77 Yet another bug in line metrics
Bug: skia:12382
Change-Id: I18039db0a4e89a25c31d27ea7f60ae7bde50730f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443401
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-08-30 18:21:27 +00:00
Kevin Lubick
d5e9523176 Roll SwiftShader from 9eb5acaba94c to 6aad52e1aef6 (5 revisions)
Bug: skia:12385
Change-Id: Ib53ad5115e085ca03e22a2fc91e9235717e9e113
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443436
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-08-30 17:03:52 +00:00
Greg Daniel
16749b4461 Disable TSAN bot from running vkdmsaa.
There looks to be a leak in the Nvidia driver for the P400 bots on linux.
This leak eventually causes the TSAN bot to go OOM and crash. It is not
clear yet if the leak is triggerred by using dmsaa or dmsaa just adds
enough new work to push us over memory limits. For now we just disable
the TSAN bot from using dmsaa as we investigate.

Bug: skia:11809
Change-Id: I1e5b5cbae98fdcd7a37d54c4e18814cda7e5dd93
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443516
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-08-30 16:00:12 +00:00
John Stiles
a85560a9a3 Work around divide-by-zero UBSAN errors in intrinsic optimization.
If the SkSL program contains intrinsics that would divide by zero when
being optimized, the fuzzer would report this as undefined behavior.
Skia insists on IEEE semantics so this isn't a concern for us. We now
use `sk_ieee_double_divide` to work around these fuzzer issues.

Also note that the optimizer will discard results that are not finite,
so these infinite/NaN values are ephemeral anyway--they won't be used
in the final output. The intrinsic in the code will be left
as-is/unoptimized.

Change-Id: I747a434898a15b34716d95f6ca3d29fe4452005d
Bug: oss-fuzz:37850, oss-fuzz:37822, oss-fuzz:37761
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443399
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-08-30 15:28:40 +00:00
Robert Phillips
31f763190f Move GrAtlasTextOp to skgpu::v1 namespace
Bug: skia:11837
Change-Id: I3dde13940e57763d5a8224cb1a4b555e904351d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442716
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-30 14:56:55 +00:00
skia-autoroll
90a697494c Roll SK Tool from 6cc8590fd276 to e7e1e30274a5
https://skia.googlesource.com/buildbot.git/+log/6cc8590fd276..e7e1e30274a5

2021-08-30 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 lovisolo@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: lovisolo@google.com
Change-Id: I4753c58e0642252b16f324b2214f6710535fa98f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443373
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-30 14:20:46 +00:00
Robert Phillips
2145390fbe Move GrTextureOp to skgpu::v1 namespace
Bug: skia:11837
Change-Id: Ie99b1c512885404351d6917bbea751d99a2ca23e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442797
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-08-30 14:14:14 +00:00
skia-autoroll
91b781e7f6 Roll ANGLE from cf24931abf27 to bc89eda7bb6e (19 revisions)
cf24931abf..bc89eda7bb

2021-08-29 gert.wollny@collabora.com Capture/Replay: honor base level when serializing textures
2021-08-27 timvp@google.com Capture/Replay: Multi-Context Support
2021-08-27 gman@chromium.org Include globals when defering global initializers
2021-08-27 lexa.knyazev@gmail.com Cleanup ValidateES2TexImageParametersBase; update tests
2021-08-27 kbr@chromium.org Deduplicate autoroller docs.
2021-08-27 jmadill@chromium.org Capture/Replay: Allow serializing cube map array data.
2021-08-27 jmadill@chromium.org Capture/Replay: Serialize buffer texture buffer IDs.
2021-08-27 syoussefi@chromium.org Vulkan: SPIR-V Gen: Fix gl_PerVertex without clip/cull support
2021-08-27 lexa.knyazev@gmail.com Cleanup ValidateES2CopyTexImageParameters; add test
2021-08-27 jmadill@chromium.org infra: Disable perf tests on Win/Intel.
2021-08-27 jmadill@chromium.org Capture/Replay: Skip one additional ES3 test.
2021-08-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 518056981519 to a6ca3d4c0ccd (2 revisions)
2021-08-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5e51e6f8ccd4 to 3e5496ec4fdf (6 revisions)
2021-08-27 lubosz.sarnecki@collabora.com SRGBFramebufferTest: Add test that used to fail on Vulkan.
2021-08-27 lubosz.sarnecki@collabora.com Reland "VulkanExternalHelper: Use VK_KHR_image_format_list extension."
2021-08-27 gert.wollny@collabora.com Capture/Replay: Handle glCopyTexture3DANGLE
2021-08-27 gert.wollny@collabora.com Capture/Replay: Add specific bug IDs for crashing tests
2021-08-27 syoussefi@chromium.org Translator: Facilitate integration in FireFox; Part 2
2021-08-27 cnorthrop@google.com FrameCapture: Support glProgramBinary

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 fmalita@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: fmalita@google.com
Test: Test: Fortnite MEC
Change-Id: Ia8dd17cf751434262845dc5b4773bec884bbe12b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443341
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-30 05:22:13 +00:00
skia-autoroll
09e533b744 Roll Dawn from 086c44ee737d to ea487972d16e (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/086c44ee737d..ea487972d16e

2021-08-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from a96dce9c893e to 293d313bbca2 (7 revisions)
2021-08-27 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 87cce20f679d to a96dce9c893e (1 revision)
2021-08-27 cwallez@chromium.org Remove stray reference to GetDefaultQueue
2021-08-27 hao.x.li@intel.com Check Query API feature support by GPU counter on Metal

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 87cce20f679d to 293d313bbca2

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 rharrison@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: rharrison@google.com
Change-Id: I570aaa8201a857c529627db41f005f8b2342044c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443340
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-08-30 04:45:12 +00:00
Ethan Nicholas
5c4463ee0e Fixed DSLParser code rot
Where DSLParser is #ifdef'ed out, it had experienced some code rot and
was no longer building. This fixes it to be able to successfully build
when SKSL_DSL_PARSER is set to 1.

Change-Id: I5846b05ba3342b5b1502663577663e332c55529b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442976
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-08-30 00:30:27 +00:00
Greg Daniel
f8a96584b6 Disable vulkan dmsaa on early adrenos.
We already disabled normal discardable msaa on old adrenos for driver
bugs so we need to do it for dmsaa as well.

Bug: skia:11809
Change-Id: I5d37286d004c278f019d102c1d28424785ee523d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/443179
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-08-29 21:06:14 +00:00
Greg Daniel
3be00e96e5 Enable support for vulkan dmsaa in caps.
Bug: skia:11809
Change-Id: Idef350926e3a8245ab626afeb0c69c7c748d55f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442280
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-08-29 18:56:14 +00:00
Ethan Nicholas
494eb3e877 Refactored IRGenerator::convertInterfaceBlock
Previously the magic surrounding sk_RTAdjust was inaccessible to the
DSL, meaning that the DSLParser would not work properly when the
sk_RTAdjust field was present in an interface block. This refactoring
means all interface blocks are processed via the same path.

Change-Id: I99a2fe6875dfcbccc53f7a44f0fb1912cb2722ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442456
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-28 00:11:14 +00:00
Brian Osman
b42c3834af Remove support for unsized arrays
These only existed for geometry shader interface blocks.

Change-Id: Ie82252715fe5e6babb85e3b437c6edd811fab955
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442695
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-27 22:14:16 +00:00
John Stiles
7bd3f1cc78 Fix fuzzer-discovered assertion with global variables.
Our analysis pass for checking if an expression is a constant-expression
would assert if the expression contained a TypeReference or a
FunctionReference. This could happen if you passed in an expression that
had not yet been type-coerced. This check seemed overly strict, so the
assertion has been removed (although such an expression will be reported
as 'not a constant expression').

This bit us in global-variable declaration, where we checked if a
global variable's initial-value expression was constant before coercing
it to the variable's type. This has also been reordered so the type-
coercion happens first. (Either order is now valid, but the type-
coercion related errors tend to be more detailed.)

Change-Id: I5104cf817767d65fd84421243d9530734ba624a9
Bug: oss-fuzz:37710
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442693
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-27 21:38:19 +00:00
Ethan Nicholas
c7774a779f Switched SymbolTable.fErrorReporter over to .fContext
Holding on to the ErrorReporter directly could leave it talking to the
wrong reporter if the context was updated.

Change-Id: I60a343f0c5d296c4e847bb8cf97ecce3136579f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442796
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-27 20:30:15 +00:00
John Stiles
8ff0394331 Treat uninvoked external-function-references as errors.
Finding a dangling ExternalFunctionReference in the IR should be handled
the same as a FunctionReference; both are equally indicative of a
problem in the user's code.

Change-Id: I5aa9204e692678d7b54d78fc7253d49940dd130a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442694
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>
2021-08-27 20:09:49 +00:00
Brian Osman
99ddd2a98d Remove (unused) geometry shader support
Bug: skia:8451 skia:10827
Change-Id: I5b38a1d72cd4558f8e2a92aaf9b12f05efce0923
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442683
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-08-27 19:41:10 +00:00
John Stiles
8d13084535 Migrate function-body finalization out of IRGenerator.
This is a first step towards replacing `finalizeFunction` with a
`FunctionDefinition::Convert` method living outside of the IRGenerator.

Previously this code would assert that we had no early returns from a
vertex-program main() method; this has been turned into an error.
(The original assertion was also tied to fRTFlip, because the *problem*
with early-returns in main is tied to the lack of RTFlip fixups, but
we fundamentally don't allow early returns, so it makes more sense to
just universally disallow it.)

Change-Id: Iba0742f7ef3cbc83995ea130fec1eb1ef2556c44
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442691
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-08-27 18:51:52 +00:00
Michael Ludwig
c26cf6c2f5 Guard against width/height overflow in SkIRect::subtract
SkRectPriv::Subtract had assumed that Sk[I]Rect::Intersects returns
false if either argument is empty. However, when an SkIRect with
overflowing dimensions is intersected with a non-overflowing SkIRect,
then the intersection can be valid and the remainder of the impl's
expectations are violated because dimensions are "negative".

Since these overflowing rects are considered empty anyways, this just
explicitly checks for that.

Bug: chromium:1243206
Change-Id: I8b69731e8d8ae467cf98c906da3aaa657dfe7994
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442277
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-08-27 17:48:16 +00:00
John Stiles
842ee5bd8d Fix assertion when calling a built-in function at global scope.
The fuzzer invented a much more elaborate example, but I was able to
winnow it down to a simple otherwise-normal test case. This also fixes
a latent DSL bug; DSL functions were not updating the list of referenced
intrinsics, so the compiler might emit finished programs that called
built-in functions that didn't exist in the code.

Change-Id: I095bb566b9db9f87cbe9460732c300b7973eb112
Bug: oss-fuzz:37659
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442325
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-08-27 17:05:21 +00:00
Eric Boren
c82eab82f1 [commandbuffer] Update infra dep to fix CommandBuffer
Removes --alsologtostderr flag, which was removed along with glog.

Change-Id: I8d2b5ac267feb0f8f88e19d346c7292fc825b1fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442316
Reviewed-by: Erik Rose <erikrose@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-08-27 16:44:47 +00:00