Commit Graph

9349 Commits

Author SHA1 Message Date
dan sinclair 93cf346d67 [clang-tidy] Add ability to checkout clang-tidy.
This CL adds the DEPS entry to checkout `clang-tidy` if requested
in the `.gclient` config file. A doc is added which gives some
guidance on how to run `clang-tidy`.

Change-Id: I92eeaff33137158ffd17315649fb333c366fc91d
Bug: dawn:1414
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89801
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-05-16 12:58:24 +00:00
Ben Clayton 9ff8abf347 tint: Fix clang chromium-style warnings treated as errors
When importing Dawn into Tint:

error: [chromium-style] auto variable type must not deduce to a raw pointer type.
Change-Id: I6ff4451a5519c38b18eb8d96f6bc82b8090077f8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90500
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-05-16 12:04:01 +00:00
Ben Clayton e6b6777c8e tint: Fix MSL generation of '&' and '|' with booleans
The bitwise-and and bitwise-or binary operators on booleans result in an integer.
Explicitly cast this back to a boolean.

Fixed: tint:1540
Fixed: tint:1541
Change-Id: I395176f291e6080c88b8cff18e14ed6cd1234074
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90501
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2022-05-16 12:02:52 +00:00
James Price 35f0fcaac0 tint/uniformity: Use non-recursive graph traversal
Fixes a stack overflow when traversing particularly deep graphs.

This changes the iteration order which changes some of the diagnostic
notes, but the diagnostics are still correct and deterministic so it
does not matter.

Fixed: chromium:47418
Change-Id: I2def633b6d96d1525027f7929b0fa0a6fba0efeb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90140
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-16 11:53:25 +00:00
James Price a89ff5981b tint: Show where control flow became non-uniform
Add additional nodes to capture places where control flow is changed
(if, switch, for, short-circuiting op, function call), and use these
to show the actual point at which control flow became non-uniform as a
result of a non-uniform value.

Do this recursively, to capture cases where control flow becomes
non-uniform after a function call statement.

Bug: tint:880
Change-Id: Ied92d690f98a5c11a1892eef500a50d0f123943d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89862
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-16 11:53:25 +00:00
Ben Clayton 5a69597698 tint: Add type constructors and converters support to intrinsic-gen
These are currently not used, but the first step towards moving type
constructors and converters over to using the intrinisc table.

This will simplify maintenance of type functions, and will greatly
simplify the [AbstractInt -> i32|u32] [AbstractFloat -> f32|f16] logic.

Bug: tint:1504
Change-Id: I15526670a6ff801e66551ab5adc37b1570ac49de
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90242
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-16 09:48:41 +00:00
Corentin Wallez 2b3dcf45b7 Fix some of the linking warnings in CMake builds
Bug: None
Change-Id: I6e627f362b4fd6ee21822587da87fbf36f599432
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90246
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-16 09:16:41 +00:00
Corentin Wallez 15b720be2d dawn.node: Support GPUAdapter.name
Bug: dawn:1133
Change-Id: I52291cf3c24f836844c841ce49f7c1f6c75e20b1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90244
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-16 09:15:21 +00:00
Corentin Wallez f9f1c4b526 CMake: tweak third-party imports.
- Match indentation in the whole third_party/CMakeLists.txt file
 - Import glslang after SPIRV-Tools to avoid a warning that HLSL code
   might be invalid.
 - Disable installs for glslang.
 - Fix casing of one "using Foo"

Change-Id: Ia7b32501cb84e0fe2df9cde0762cee774ef65581
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90245
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-16 09:11:21 +00:00
Ben Clayton 58c9dad06b Roll third_party/webgpu-cts/ 11f61c5f9..bf5409992 (8 commits)
Update expectations and ts_sources

11f61c5f91..bf54099927
 - bf5409 Remove dupes in anyOf to clean up error messages (#1401)
 - f124d7 Fix WGSL deprecation warnings in operation/rendering/draw.spec.ts (#1400)
 - 2f5bb7 wgsl: Add stub tests for textureNumSamples (#1406)
 - 8dae94 wgsl: Stub tests for textureNumLevels builtin. (#1405)
 - ba9abf wgsl: Stub tests for textureNumLayers builtin (#1404)
 - 591a45 wgsl: Stub tests for textureLoad builtin. (#1403)
 - b32ac3 Replace flushSubnormalNumber with isSubnormalNumber (#1399)
 - 5a1def Fix unary tests with subnormal inputs (#1397)

Created with './tools/run cts roll'

Change-Id: I0b8bdf31a333d90e2ca8a71294fabe85a092d02b
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90260
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2022-05-16 09:01:01 +00:00
Dawn Autoroller e831fb6104 Roll ANGLE from 4e5da2d28fb6 to 48b1f07b0fcb (1 revision)
4e5da2d28f..48b1f07b0f

2022-05-16 syoussefi@chromium.org Vulkan: Dynamic state for front face

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I25946d5bda4ab68749a552b46163567e6e1e6e25
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90480
Kokoro: Kokoro <noreply+kokoro@google.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-16 03:41:21 +00:00
Jiawei Shao 1c75921db9 tint: fix translation of DP4a on HLSL
This patch adds a workaround on a DXC error in the translation of DP4a
functions that the third parameter "acc" of both dot4add_i8packed() and
dot4add_u8packed() can only be a variable, or a compile error will be
generated.

Bug: tint:1497
Test: tint_unittests
Change-Id: I263d27fb18bd354e0c9110f60cbc98860cf7afe5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90027
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-15 13:53:21 +00:00
Dawn Autoroller 5a951cd6c7 Roll ANGLE from 62fe36d3bb49 to 4e5da2d28fb6 (1 revision)
62fe36d3bb..4e5da2d28f

2022-05-15 syoussefi@chromium.org Vulkan: Dynamic state for cull mode

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I2ff83ccc3120a9dfaf445400bbfc64ea66a9e3c2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90440
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-15 02:28:00 +00:00
dawn-autoroll 99fe0bce8a Roll vulkan-deps from 520daea585de to 131de3fd9ec7 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/520daea585de..131de3fd9ec7

Changed dependencies:
* vulkan-validation-layers: 567a5be748..d113db7134

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-dawn-autoroll
Please CC kainino@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 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

Bug: None
Tbr: kainino@google.com
Change-Id: I70af6f0d689a43890602dc69c9fed90415cf09c0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90420
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-14 22:12:00 +00:00
Dawn Autoroller 97541bfa0b Roll ANGLE from 4a7dd9429799 to 62fe36d3bb49 (6 revisions)
4a7dd94297..62fe36d3bb

2022-05-14 syoussefi@chromium.org Vulkan: Emulate YUV built-ins
2022-05-14 syoussefi@chromium.org Vulkan: Don't invalidate pipeline on dynamic state change
2022-05-14 penghuang@chromium.org Do not do cleanup for Vulkan device lost
2022-05-13 yuxinhu@google.com Code Cleanup
2022-05-13 romanl@google.com Re-skip flaky test un-skipped by crrev.com/c/3641181
2022-05-13 romanl@google.com Skip flaky test on Mac NVIDIA.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: If79561ad55b33add4a358fa0316d698e496c5cd5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90400
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-14 12:49:20 +00:00
dawn-autoroll e330a65d54 Roll vulkan-deps from 8ce943bbf705 to 520daea585de (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/8ce943bbf705..520daea585de

Changed dependencies:
* vulkan-validation-layers: 7e3512984e..567a5be748

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-dawn-autoroll
Please CC kainino@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 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

Bug: None
Tbr: kainino@google.com
Change-Id: Idd402c234a438f251a2ab727eac14bbabe6840b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90380
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-14 08:51:20 +00:00
Dawn Autoroller 12e858c35f Roll SwiftShader from f1c2c0b07281 to 4011ab35f3d8 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/f1c2c0b07281..4011ab35f3d8

2022-05-13 capn@google.com Eliminate PointerType::getContainedType() calls

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: Ieb40347604058e591a50307e02bc75a5c23e2609
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90301
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-14 00:29:07 +00:00
Dawn Autoroller 2e1deef997 Roll ANGLE from 7dc316c8f5f3 to 4a7dd9429799 (7 revisions)
7dc316c8f5..4a7dd94297

2022-05-13 gman@chromium.org Metal: Fix dangling pointer warning in IntermRebuild.cpp
2022-05-13 min.zhang@arm.com Vulkan: Add case: TextureSampleByDrawDispatchDraw
2022-05-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b768d03422ea to c6a60f3cc711 (1 revision)
2022-05-13 romanl@google.com Revert "Vulkan: Flush texture updates more often"
2022-05-13 jmadill@chromium.org Vulkan: Add generic descriptors for DS cache.
2022-05-13 jmadill@chromium.org Vulkan: Add shared descriptor set caches.
2022-05-13 lubosz.sarnecki@collabora.com TracePerfTest: Add ability to screenshot after reset.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I24f0e789552f8b51f2b0a98c0cceb05b3122cf73
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90340
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-13 23:56:08 +00:00
Ben Clayton d8e77e2e73 tint: Prevent integer overflow in IntrinsicTable
If the WGSL provided over 255 arguments, then we'd overflow the uint8_t,
and a bad candidate could be matched.

We have validation in place to ensure that user functions are not
declared with more than 255 parameters, but no validation for number of
arguments provided.

Fixed: chromium:1323605
Change-Id: I048709e8b02bdd95d5082128a1186080c79b2fc7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90249
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2022-05-13 23:17:28 +00:00
Shrek Shao 8faaad9b5e Validate if device is alive in EncodeFunction of EncodingContext::TryEncode
GetOrCreateAttachmentState access mCaches in Device even if device is
already destroyed. Gate the function by checking if encoder is
destroyed.

Bug: chromium:1323310
Change-Id: I8151c5ec696e4da28b8296d9142f3120379782ef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89860
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2022-05-13 21:05:57 +00:00
Antonio Maiorano 83fc247d4b tint: correctly define user-defined literals
Remove the space between operator"" and the name of the function, as per
the C++ spec. cppreference says as much, but its example code inserts a
space, confusingly.

Fixed: tint:1535
Change-Id: I46ac8fab74290db1a3c0085b56bc66a4c1d318f4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90280
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2022-05-13 20:14:57 +00:00
dawn-autoroll cc1b05c407 Roll vulkan-deps from b768d03422ea to 8ce943bbf705 (20 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/b768d03422ea..8ce943bbf705

Changed dependencies:
* glslang: 14f6e27304..2f5bc0b741
* spirv-cross: 940efca099..d0c8dc3045
* spirv-tools: f74b85853c..98340ec500
* vulkan-loader: 08cad0c015..5aa2ee48c9
* vulkan-tools: a9d2badae2..c5d859fbe3
* vulkan-validation-layers: 817dd5363e..7e3512984e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-dawn-autoroll
Please CC kainino@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 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

Bug: None
Tbr: kainino@google.com
Change-Id: I21abd21a7cd1628e920f0a2d67679eeb121fc990
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90300
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-13 19:31:17 +00:00
James Price c368339da1 Remove WGSL source from validation messages
The shader source can be very large and this is causing excessively
large error messages that get truncated in some applications that use
Dawn native. We don't need to see the whole shader in the error
message.

Change-Id: I15ad7fa7814d19875a7c28b39e5fa9a24f265b98
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90161
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-13 19:04:24 +00:00
James Price 49385c99cc Show diagnostic notes in WGSL compilation messages
These notes often contain additional useful information that is not
currently being surfaced to the developer console.

Change-Id: I342bfc3147593755d6addf5466f27b083f954826
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90160
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-13 19:04:24 +00:00
Corentin Wallez a064872983 Metal: use physical size to compute parameters for clearing with a copy
Bug: None
Change-Id: I720cd7c0b2fe808d54def5b65882f1bd5742a23a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90200
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-05-13 18:53:27 +00:00
Ben Clayton 59e23943f3 tint: Minor IntrinsicTable cleanup
Fix the namespace - this should have been tint::resolver.
Use a single u32 bitset for overload flags instead of multiple fields.

Bug: tint:1504
Change-Id: I633b21ce14e20fc9aeeed5221886c1d22e327bdc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90241
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2022-05-13 16:14:17 +00:00
Corentin Wallez 500f4eedd3 Prune CTS expectations for passing tests.
Change-Id: I0cb412648437df6c3e1ed9561fa1f28706b629ae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90201
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2022-05-13 14:41:57 +00:00
Ben Clayton 77473b4699 tint: Split tables for unary and binary operators
Do the partitioning of unary and binary operators in the intrinsic table
generators, instead of searching all operators at runtime.

Will allow code to be simplified.

Bug: tint:1504
Change-Id: I67246b954e530e0542b1b67c99fb34a756cf532a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90240
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2022-05-13 14:35:37 +00:00
Zhaoming Jiang 62bfd318ae tint: Implement `f16` keyword in Tint frontend
This patch:
1. Add the `f16` WGSL extension.
2. Add `f16` as keyword, and remove it from reserved word list.
3. Add ast::f16 and sem::f16, and implement validation that using `f16`
   type must be with `f16` extension enabled.
4. Add `Number<NumberKindF16>` for f16 literal and constant, and add
   `ast::FloatLiteralExpression::Suffix::kH`.
5. Add placeholder in all writer which report error when try to emit f16
   type.

Bugs: tint:1473, tint:1502
Change-Id: Ifb363beeb2699ed7cac57e07227d1b2cfa8050b4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89922
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2022-05-13 12:01:11 +00:00
Dawn Autoroller e221ddd30e Roll ANGLE from 8bb7c35c2159 to 7dc316c8f5f3 (1 revision)
8bb7c35c21..7dc316c8f5

2022-05-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 65b23f3c9e05 to 3aa3e39b0aca (497 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-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I0e3bfd6037849b21c14e7592dce2deec05c234c7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90180
Kokoro: Kokoro <noreply+kokoro@google.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-13 10:12:48 +00:00
Zhaoming Jiang c4b380b8af tint: Generalize sem::Vector to allow 16bits subtype
This patch make `sem::Vector::Size()` and `Align()` more general to
prepare for subtypes of 16bits, e.g. f16. Previously these methods
assert that the subtypes are of 4bytes.

Change-Id: Ic939f177e87faabdf17d1d404cee82a91072a179
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90163
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2022-05-13 08:56:56 +00:00
Zhaoming Jiang ed6ff9c948 tint: Rename kNotAnExtenxion to kNoExtension
This patch rename `ast::Enable::ExtensionKind::kNotAnExtenxion`
to `ast::Enable::ExtensionKind::kNoExtension`.

Change-Id: I28087d548cc8edf249545d51414a1becfa5a3b65
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90162
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2022-05-13 08:54:47 +00:00
Jiawei Shao ab9757036b tint: Implement DP4a on HLSL writer
Bug: tint:1497
Test: tint_unittests
Change-Id: I29cc3e56949071230cdbd5afdc59eef076777149
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89706
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-13 00:09:56 +00:00
Dawn Autoroller 189325ab1f Roll ANGLE from 1d8227dab6f1 to 8bb7c35c2159 (12 revisions)
1d8227dab6..8bb7c35c21

2022-05-12 abdolrashidi@google.com Vulkan: Flush texture updates more often
2022-05-12 jmadill@chromium.org Update docs for SwANGLE triage process.
2022-05-12 lubosz.sarnecki@collabora.com Tests: Add Black Desert Mobile trace.
2022-05-12 jmadill@chromium.org Add extension for read-only DS feedback loops.
2022-05-12 cnorthrop@google.com Tests: Skip pubg_mobile_skydive on Nvidia
2022-05-12 jmadill@chromium.org Remove angle_util from restricted traces.
2022-05-12 jmadill@chromium.org Test Runner: Accept Chromium bot mode flag.
2022-05-12 syoussefi@chromium.org Vulkan: Tag dynamic dirty bits with DYNAMIC
2022-05-12 syoussefi@chromium.org Vulkan: Dynamic state for stencil reference
2022-05-12 min.zhang@arm.com Vulkan: Optimize the vkImage layout when used as GL_image
2022-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from e0a1188d7652 to f1c2c0b07281 (2 revisions)
2022-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 693c7419bd5c to 65b23f3c9e05 (580 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-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I06ac20c04a454a7c61ae28750c30e7106928635b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90100
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-12 20:32:06 +00:00
Corentin Wallez c9ebe9104d Allow writeMask==0 && format==undefined when the shader outputs the target
The WebGPU spec says that a validation error is produced if there is a
color target in the pipeline descriptor that has writeMask!=0 while
there are no shader outputs for this target. In Dawn format==undefined
is used as a tag that the color target is not present, so writeMask is
allowed to be 0 if format==undefined. (the validation in the case where
format!=undefined was already present).

Fixed: dawn:1376
Change-Id: I7737b6557223e0fc31740fd4ec2cbfaa54b77a71
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90040
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
2022-05-12 18:09:46 +00:00
Ben Clayton e2d7f86872 Roll third_party/webgpu-cts/ 0a1288f5e..11f61c5f9 (10 commits)
Update expectations and ts_sources

0a1288f5e8..11f61c5f91
 - 11f61c [dawn-node]: Move TSC config to file. (#1382)
 - 6822b9 wgsl: Cleanup duplicate description text (#1396)
 - aafa50 Add comprehensive memory model tests (#1330)
 - d7d754 Reland "Simplify device selection" with fix (#1386)
 - 999e39 Output whether value is subnormal in Scalar.toString() (#1388)
 - 490d2a wgsl: Stub textureSampleBias tests (#1392)
 - 41afbc wgsl: Use `kValue.`... instead of converting bit-fields to `Scalar`s (#1394)
 - 93aea0 wgsl: update textureGather tests (#1389)
 - d26a4c wgsl: Extend `anyOf` to accept `Comparator`s (#1393)
 - 09bcde Fix atan2 test failures when Y is subnormal (#1387)

Created with './tools/run cts roll'

Change-Id: I407a3d90b855721dbeb157c78682d3de5c6d4e05
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89980
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2022-05-12 16:18:36 +00:00
Corentin Wallez 914a2dfc91 dawn.node: Add support for GPUTextureDescriptor.viewFormats
Bug: dawn:1276
Change-Id: Ie0dc9dbb930f894545eaa55c9c176f3e1d6c961e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89664
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-12 15:13:26 +00:00
Austin Eng 1a4cb65561 Remove final qualifiers from WireClient/Server HandleCommands
It's useful to override them in Chrome so that HandleCommands
can be wrapped with some logic.

Bug: chromium:1315260
Change-Id: I856c360575bf6696cd51c13d8ce326afa2f2e08b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89704
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-05-12 13:17:47 +00:00
James Price 53547db1d4 tint: Add missing source information for | and ||
Add tests for the source information for all binary expressions.

Change-Id: I163cddf60eab4b7af8a1bafb899a1d5bfff6fe0c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89802
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2022-05-12 11:43:37 +00:00
James Price 816148fe32 tint: Add implicit CF_return->{last cf} edge
If the function has no return statements, we need to do this to
capture the potential non-uniformity coming from nested function
calls.

This also removes the need to add explicit edges for discard
statements, so remove them.

Bug: tint:880
Change-Id: I88b1132faf35a6d36460ef353912f77a15f8abaa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89861
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-12 11:43:37 +00:00
Antonio Maiorano bf1fe84d35 Create tracking bug for certain CTS failures
Bug: tint:1546

Change-Id: I2052c489eeddcf6362f95ac9d12ae0a37e957507
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89824
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2022-05-12 11:29:07 +00:00
Ben Clayton cd55f15c98 tint/resolver: Fix chromium-style warning treated as error
[chromium-style] auto variable type must not deduce to a raw pointer type

Fixes Dawn -> Tint roll

Change-Id: I1e249dd9891d2f93d631032c1721e8980d8cb343
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90000
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-12 11:22:17 +00:00
Ben Clayton 08f94e9004 tools/CTS: merge [Slow] + [Pass] -> [Slow]
Instead of Failure.

If we have duplicate results (same query, same tags), but with different results, then we have to merge them. Previously we'd merge Pass and Slow as Failure, which was just odd. Fix this so the combined result is Slow.

Bug: dawn:1342
Change-Id: If9b035bb3c1e59b7a93a5c8b194f854405e656d6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89960
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
2022-05-12 10:08:46 +00:00
Dawn Autoroller bfdec4405b Roll SwiftShader from b7126bab3a19 to f1c2c0b07281 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b7126bab3a19..f1c2c0b07281

2022-05-12 capn@google.com Revert rcpss/rsqrtss instrumentation to default propagation

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I05088860dbcaad872763c2fc5313ce2440f54016
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89940
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-12 08:37:26 +00:00
Dawn Autoroller 2255462d48 Roll ANGLE from dd9b4afe5645 to 1d8227dab6f1 (10 revisions)
dd9b4afe56..1d8227dab6

2022-05-12 syoussefi@chromium.org Vulkan: Dynamic state for stencil write mask
2022-05-12 syoussefi@chromium.org Vulkan: Dynamic state for stencil compare mask
2022-05-11 senorblanco@chromium.org Cleanup from glBlitFramebuffer() 3D texture fix.
2022-05-11 syoussefi@chromium.org Vulkan: Dynamic state for blend color
2022-05-11 syoussefi@chromium.org Vulkan: Dynamic state for depth bias
2022-05-11 senorblanco@chromium.org Use GLTexture in TextureTest for RAII goodness.
2022-05-11 syoussefi@chromium.org Vulkan: Dynamic state for line width
2022-05-11 senorblanco@chromium.org D3D11: clean up ES31 test expectations.
2022-05-11 jmadill@chromium.org Add a draw call perf test for changing a single uniform.
2022-05-11 syoussefi@chromium.org Vulkan: Fix VulkanPipelineCachePerfTest

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC kainino@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 Dawn: https://bugs.chromium.org/p/dawn/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

Bug: None
Tbr: kainino@google.com
Change-Id: I38d82f332bc8079a36c8c3cc3f0252dcc63413f6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89900
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-12 07:02:05 +00:00
Austin Eng 6400e3bfc0 Add a way to query if a device exists on the wire server
Chromium tracks the devices which live on the wire so it can
automatically call tick on devices that have pending work. This used
to be done by querying an (id, generation) pair and checking if it
resolves to a non-null device.

This CL adds a new way to query directly using the device, since a
refactor in Chrome will change creation such that the id and generation
is not known when a new device is requested.

Also fixes a bug for device callbacks where the required callback
userdata wasn't fully populated for devices created with
requestAdapter. Update a test to check for this as well.

Bug: chromium:1315260
Change-Id: I7468edc3e77bade191e1e9f3eaadebbf4441d88a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89520
Reviewed-by: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-05-12 00:09:26 +00:00
James Price 7dd0ab791a tint: Show the source of non-uniformity
Show the original source of non-uniformity when producing errors from
the uniformity analysis.

Bug: tint:880
Change-Id: Id386ae8fa5ff1b1443d54c0b5ef12ab76b3b3f13
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89723
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2022-05-11 22:05:15 +00:00
James Price 9c03abfb55 tint: Show the reason for a uniformity requirement
When producing an error from the uniformity analysis, add notes to
show the underlying reason for the uniformity requirement.

For function calls that are required-to-be-uniform, show the innermost
builtin call that has the requirement.

For function parameters that are required-to-be-uniform, recurse into
that function to show where its requirement comes from.

Add some new tests to specifically test the error messages.

Bug: tint:880
Change-Id: Ib166fdeceaffb156a3afc50ebc5a4ad0860dc002
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89722
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-11 22:05:15 +00:00
James Price 874b61f1ba tint/uniformity: Retain control flow graphs
Move the control flow graphs to `FunctionInfo` so that they are not
destroyed when we finish processing the function.

This will make it easier to produce more detailed diagnostics for
uniformity issues, which will be coming in subsequent CLs.

There is no functional change in this CL.

Bug: tint:880
Change-Id: I1322fb54b16bd1c660799a62435fbdcd7fb39cb2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89822
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-11 22:05:15 +00:00
James Price be656f7984 tint: Implement uniformity analaysis
This implements the uniformity analysis as currently described in the
WGSL specification. Uniformity issues are presented as warnings, and
will be switched to errors in a future release.

A follow-up patch will improve the error messages, which currently
just show the point at which a uniformity was detected.

In a future release, once we have obtained initial feedback from
users, uniformity issues will become errors.

Bug: tint:880
Change-Id: I7d0b3080932c786c5d50b55720fec6d19f00d356
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/88368
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-05-11 22:05:15 +00:00