Commit Graph

12346 Commits

Author SHA1 Message Date
Ben Clayton 1a8d0785f2 [tools] Add 'add-gerrit-hashtags' tool
Parses the CL descriptions and adds missing hashtags to Gerrit changes.

Also add  ./tools/push-to-gerrit which runs this after pushing the local branch's changes to 'main'.

Use this for the VSCode 'push' task.

Change-Id: I4c3f5982f6fdc7c1c6ebe770fc7811b1b38795d1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133061
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-05-16 14:36:37 +00:00
dawn-autoroll ee8cdb5a36 Roll vulkan-deps from f3e8446466d8 to 1c207a160274 (3 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/f3e8446466d8..1c207a160274

Changed dependencies:
* glslang: d9c3c7538b..1e4955adbc
* vulkan-headers: bae9700cd9..9e61870ecb
* vulkan-validation-layers: ce2c6eff34..3b751c4e96

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 bajones@google.com,webgpu-developers@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: bajones@google.com
Change-Id: Iee4dfac9aa4fdd930456e02814958e0af40496e7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132842
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-16 14:11:10 +00:00
Ben Clayton 34c794e2e9 [tint][ir] Shuffle and refactor from_program.cc
Change-Id: Ibbeceb2410e7b3598fd9a92f3871603ee26b69b2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132961
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-16 12:31:46 +00:00
Ben Clayton 8d98977a30 [tint][ir] Make the ir::BuilderImpl PIMPL
Black-box the BuilderImpl by putting the BuilderImpl into the
from_program.cc file.

Why:

* It means there's only a single definition of all the methods that need
  to be maintained, instead of pointlessly splitting code between two
  files (.cc / .h).
* It removes all the implementation details from the header.
* It removes a whole bunch of transitive includes, slowing compiles.
* It prevents the temptation for future #includes to
  private-implementation details.
* It reduces the amount of symbols declared outside of anonymous
  namespaces, reducing symbol polution and the amount of work on the
  linker.

Bug: tint:1718
Change-Id: I82838089f784ab003dae4ef06545bba1ca2401cc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132321
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-05-16 12:30:06 +00:00
Ben Clayton c9dd75a0e9 clang-format
Change-Id: Ibb0a7f4612ee5bf12f6c23a2529711808453685c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132880
Kokoro: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2023-05-16 11:14:12 +00:00
Loko Kung 14ed533565 Updates DawnInstanceDescriptor to pass in the Platform.
Notes:
- Separates ChainedStruct to be reusable without cpp header. (Also
  updates native structs to directly use it.)
- Manually implements the descriptor in DawnNative.
- Reworks ChainUtils with mapping from struct to STypes.
- Updates the tests to use either SetPlatformForTesting which is still
  required because DawnTest uses a "global" instance for all tests and
  some tests require setting (and cleaning up) a test specific platform.

Bug: dawn:1374
Change-Id: I078c78f22c5137030cf3cf0e8358fe4373ee9c6c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132268
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
2023-05-16 04:50:32 +00:00
Brendon Tiszka f9f9f829e3 Add Dawn Wire Server LPM Fuzzer [5/N]
Add custom C++ serializer for methods that need to be handwritten

Bug: chromium:1374747
Change-Id: I438db05b6fd6d1a1542d847c4b40f22b9143b0d5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/114721
Commit-Queue: Brendon Tiszka <tiszka@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-16 03:45:03 +00:00
Peng Huang 64df2e6235 d3d11: fix and enable ExternalTextureTests
Bug: dawn:1705
Change-Id: I29fbb5bebbc217a4f95a51e24ec295d6e3cd6e8e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132740
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-16 02:43:53 +00:00
jchen10 c29e10c442 d3d11: enable GpuMemorySynchronizationTests
RTV and UAV in d3d11 pixel shaders share the same resource slots. To
avoid any potential conflicts, this assigns UAV slots reversely.

Bug: dawn:1807
Bug: dawn:1705

Change-Id: Ie0ca20aa0e532736c0534c6810b8a807dde6f972
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132274
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-16 01:30:02 +00:00
Dawn Autoroller 339c00f507 Roll ANGLE from 57e4bb883c21 to 6f959e07eaef (2 revisions)
57e4bb883c..6f959e07ea

2023-05-15 abdolrashidi@google.com Vulkan: Add non-device memory option for VMA image
2023-05-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 0d737f701865 to 3a356ab97987 (1 revision)

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 angle-team+autoroll@google.com,bajones@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: bajones@google.com
Change-Id: I02d1b2898bd752c58ba2c9a274f918502535f3c0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133020
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-15 23:58:38 +00:00
dan sinclair c9923d2ee3 [ir] Set default flow node values.
For the `if`, `switch` and `function` flow nodes this Cl makes a few
required fields part of the constructor. This cuts down boilerplate when
creating new nodes.

Bug: tint:1718
Change-Id: I739bcefc2ed36b0203b57974b50bb2b79f6e1684
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132980
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-15 23:44:04 +00:00
dan sinclair 809187c579 [ir] Move ir::Builder to hold module reference
This CL moves the module from being owned by the builder, to be passed
into the builder and stored as a reference. This allows the transforms
to create builders based on the same module as needed.

Bug: tint:1718
Change-Id: I4863f368582242626c2a2c6996fd62f053314bb1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132862
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2023-05-15 23:42:33 +00:00
Brendon Tiszka 27521c6b91 Add Dawn Wire Server LPM Fuzzer [4/N]
Implements C++ serializer implementation that translates protobuf
objects into Dawn serial data.

1) A generator that builds a fuzzing harness that converts LPM structured data
into serialized bytes, that are then sent to Dawn Wire Server.
2) Object store for dawn objects that are allocated and
freed.

Bug: chromium:1374747
Change-Id: I09c1be6cdc2eccf4a91de808f19494d97d01b3d6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/114720
Commit-Queue: Brendon Tiszka <tiszka@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-15 22:22:07 +00:00
Austin Eng 8e42cfa7ea Expand intentional Metal counter sets leak to Intel Gen11
Bug: chromium:1443658
Change-Id: I9a0fe75cacf31b5b22cd89468af2c854079a19a6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132900
Kokoro: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-05-15 21:28:34 +00:00
Ben Clayton 36aa48ce36 [tint][ir] Clean up tests
Remove the direct use of BuilderImpl from TestHelperBase to cut down the amount
of internal state management required by the tests, and removing confusing
conflation between the BuilderImpl and Builder.

This change removes the following methods from TestHelperBase:
* CreateBuilder()
* InjectFlowBlock()
* CreateEmptyBuilder()
* FlowNodeForAstNode()

Tests now just use FromProgram() function for testing AST -> IR.

The downside to the black-box testing is that the per-method granularity of the
unit testing increases to whole FromProgram() granularity. However, my personal
opinion is that this is more than offset by the lack of state leakage from the
implementation to the tests.

Bug tint:1718

Change-Id: Iba2560e0fbcbd3dfb936694e50997d716f09fbd8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132960
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-15 20:26:43 +00:00
Dawn Autoroller 0aa34f27b2 Roll SwiftShader from a62e8dbc3467 to 28718d8b4108 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/a62e8dbc3467..28718d8b4108

2023-05-15 bclayton@google.com Update SPIR-V Tools to 51892874b
2023-05-15 bclayton@google.com Update SPIR-V Headers to 268a06176

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 bajones@google.com,webgpu-developers@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: bajones@google.com
Change-Id: Id58fdcb8339f42267bf57c398b2e370b52737111
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132929
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-15 19:11:52 +00:00
James Price 8370ddddc5 [ir][spirv-writer] Emit vector types
Bug: tint:1906
Change-Id: I1caedc1e9fea90c7cd3ffe03eb89002beb5a9fef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132741
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-05-15 17:49:40 +00:00
Peng Huang 90b9ac2b7b Animometer: update FPS calculation
Change-Id: Idd173038505ce0af388a1fad2add673a40e6b0bf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132760
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2023-05-15 17:01:49 +00:00
dawn-autoroll 074ddbc10f Roll vulkan-deps from 3a356ab97987 to f3e8446466d8 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/3a356ab97987..f3e8446466d8

Changed dependencies:
* spirv-tools: 51892874ba..17a26b45ff

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 rharrison@google.com,webgpu-developers@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: rharrison@google.com
Change-Id: Ifc6466210dd9e35ea7614e03005d3ddecf2b913e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132840
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-15 15:18:24 +00:00
Albin Bernhardsson 04cef273d6 Fix broken links in docs
Change-Id: I795fd03a34f8faeaf0bf6ac7207267cebca8a5b8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132622
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Albin Bernhardsson <albin.bernhardsson@arm.com>
2023-05-15 14:51:24 +00:00
Corentin Wallez 978bc129a0 CMake: Build GLFW with X11/Wayland support to match Dawn
Otherwise on Wayland-only systems, the GLFW CMake files might still be
looking for X11 when DAWN_USE_X11 is off.

Fixed: dawn:1806
Change-Id: I893f5412efeb3cfa48738b224b455b5fc189809d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132221
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-15 13:01:16 +00:00
Ben Clayton 0699b4f21d [tools] Add 'time-cmd'
A command that can time how long a command takes to execute for each file in a filepath glob.

Useful for finding the top-N shaders that take the longest to compile in a large corpus directory.

Change-Id: I416f300f7344480a939b9304bd3b49c378af9fef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132641
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2023-05-15 12:49:23 +00:00
Dawn Autoroller ac4b5f2bd2 Roll ANGLE from 560ba1c63ae6 to 57e4bb883c21 (1 revision)
560ba1c63a..57e4bb883c

2023-05-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 93d466c4f825 to 79f85a216141 (797 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 angle-team+autoroll@google.com,rharrison@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: rharrison@google.com
Change-Id: I052f99fcaa96f9174790a83be20ee0048682171b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132800
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>
2023-05-15 10:33:10 +00:00
Ben Clayton 89a3dac882 [tools] Extract unicode progress bar to library
Change-Id: Ia0710777e7a133b3e335de917364858dd887618d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132640
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-14 01:41:43 +00:00
Ben Clayton 1a8bc1df7f [tint] Add support for benchmarking .spv files
Change-Id: Id687d5208e9f39ae7b40db4d90c194283ebac91b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132642
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-14 01:36:30 +00:00
Dawn Autoroller 516a4fd13a Roll ANGLE from b526112dafd7 to 560ba1c63ae6 (4 revisions)
b526112daf..560ba1c63a

2023-05-13 abdolrashidi@google.com Revert "Suppress VUID-vkCmdDrawIndexed-None-0784x"
2023-05-13 abdolrashidi@google.com Revert "Suppress more of VUID-vkCmdDraw-None-0784x"
2023-05-12 natsu@google.com Tests: Update AHB test to skip if format/usage combo not supported
2023-05-12 cnorthrop@google.com Vulkan: Add additional nullptr check in ShouldReportDebugMessage

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 angle-team+autoroll@google.com,rharrison@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: rharrison@google.com
Change-Id: I4b278a9b56b8efd0deb7a2944ba8766ccf301aa2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132722
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-13 12:02:33 +00:00
Dawn Autoroller 20ca8a5788 Roll ANGLE from 25def1a0da1c to b526112dafd7 (3 revisions)
25def1a0da..b526112daf

2023-05-12 romanl@google.com Tests: include system EGL configs for ES3.1 and ES3.2 tests
2023-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8ea63733746a to 0d737f701865 (5 revisions)
2023-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 44507c8368c2 to 93d466c4f825 (518 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 angle-team+autoroll@google.com,rharrison@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: rharrison@google.com
Change-Id: Id428c550b7a745b1cb7370a46607fbba314ee66c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132721
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-12 22:38:50 +00:00
Albin Bernhardsson e5d1a8494d Implement depth-clip-control without VK_EXT_depth_clip_enable
In Vulkan, unclippedDepth is currently implemented as depthClamp=true,
depthClipEnable=false. However, depthClamp=true will implicitly
disable depth clipping if no
VkPipelineRasterizationDepthClipStateCreateInfoEXT is specified. This
allows us to support depth-clip-control on devices without
VK_EXT_depth_clip_enable.

Change-Id: I27c81da34dc3c72e31118cd858f92d9fdfae83e9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132620
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-12 20:46:38 +00:00
Elie Michel 9ae8ed2f62 Add fetch_dawn_dependencies
This adds a DAWN_FETCH_DEPENDENCIES CMake option (default: OFF) that if
turned ON fetches dependencies using a basic Python script that reads
DEPS files instead of requiring the installation of depot_tools by all
projects that depend on Dawn.

The script is not equivalent to gclient as it is not aware of advanced
configuration options (it always gets the list of dependencies that is
hardcoded at the beginning) but at least for a regular use of Dawn as a
dependency that provides a WebGPU backend (the intended use of this
DAWN_FETCH_DEPENDENCIES option) it is enough.

This is an attempt at merging upstream [this
repository](https://github.com/eliemichel/WebGPU-distribution/tree/dawn)
that I currently recommend in [Learn WebGPU for native
C++](https://eliemichel.github.io/LearnWebGPU/getting-started/hello-webgpu.html)
as a shallow intermediary to avoid requiring depot_tools (and turn some
options on/off).

By default, the script performs shallow clones, getting only the very
commit that is needed. This is a great improvement over naive clone:

                | Regular | Shallow |
----------------|---------|---------|
Downloaded size |  194 MB |  15 MB  |
Stored size     |  294 MB | 103 MB  |

Change-Id: Iaedb4af78036a1696b68787c36f1d3d70e18ba2c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/131750
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-12 20:19:41 +00:00
Austin Eng 2d6690ed9c Roll third_party/webgpu-cts/ 499ce7de2..4fd26fe4a (7 commits)
Regenerated:
 - expectations.txt
 - ts_sources.txt
 - test_list.txt
 - cache_list.txt
 - resource_files.txt
 - webtest .html files


499ce7de28..4fd26fe4ab
 - 4fd26f expression.ts: rate-limit the maximum number of batches in flight (#2609)
 - 40cf08 Refactor texture format info table (part 1) (#2598)
 - 300235 Split up the non-matrix f32 arithmetic tests (#2605)
 - e8dbfc Refactor FP fundamental error intervals unittests with trait (#2602)
 - d06baf Rewrite bitcast comparators to be serializable (#2603)
 - e73da2 Make need for serialization of Comparators more obvious (#2601)
 - 5c2aef Refactor FPInterval and utilities unittests with traits (#2600)

Created with './tools/run cts roll'

Change-Id: If0139694dce16e2fd42e7a95b822449a567d3b26
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132541
Auto-Submit: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
2023-05-12 19:14:35 +00:00
dawn-autoroll 7109f3ba79 Roll vulkan-deps from 729c65ec74f6 to 3a356ab97987 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/729c65ec74f6..3a356ab97987

Changed dependencies:
* spirv-cross: 54b48a2f3a..7cb2f62e3b
* vulkan-validation-layers: ddf9014d5e..ce2c6eff34

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 rharrison@google.com,webgpu-developers@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: rharrison@google.com
Change-Id: I093dd2019a7c365ecb251e6f0a0969a4150b40dc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132660
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-12 18:16:46 +00:00
Brian Sheedy 2ad7cd5236 Add platforms to milestones.json
Adds platform information to milestones.json so that individual
platforms can be enabled/disabled on milestones.

Bug: chromium:1432491
Change-Id: I1269e93a72c476a17a371a87bf8008be217b85df
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132520
Commit-Queue: Brian Sheedy <bsheedy@google.com>
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Kokoro: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-12 17:03:13 +00:00
Ben Clayton b0726080f4 [tint] static_assert that C in Castable<C[, B]> is correct
Fix a bug this caught.

Fixed: tint:1939
Change-Id: I61ea4eb66fe1f91b3bc17ba5d65aee7324aa555c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132621
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-12 12:00:06 +00:00
Dawn Autoroller 6ac063d568 Roll ANGLE from b1395bcbac18 to 25def1a0da1c (2 revisions)
b1395bcbac..25def1a0da

2023-05-11 romanl@google.com Android test runner expects 'gtest' and marks test list
2023-05-11 romanl@google.com Add a script to bundle trace(s) for sharing with partners.

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 angle-team+autoroll@google.com,rharrison@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: rharrison@google.com
Change-Id: Ide1a8b1b1d7528e3f147589aae6a10531741e725
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132542
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>
2023-05-12 09:16:50 +00:00
Austin Eng 6d50a49da6 Suppress another TextureViewRenderingTest on Intel d3d11
failing with DXGI_ERROR_DEVICE_HUNG

Bug: dawn:1812
Change-Id: Ib76d91784e9ec1102427c7b4468e9d4a214f99ec
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132560
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
2023-05-12 06:35:50 +00:00
dawn-autoroll e7adafa85c Roll vulkan-deps from 8ea63733746a to 729c65ec74f6 (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/8ea63733746a..729c65ec74f6

Changed dependencies:
* vulkan-validation-layers: c504ef71a4..ddf9014d5e

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 rharrison@google.com,webgpu-developers@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: rharrison@google.com
Change-Id: I0c73c65bf9d21788bb35cf1619ab2be68aab8691
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132580
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>
2023-05-12 04:53:38 +00:00
James Price 2b7406ad55 [tint] Remove ast:: prefixes from AST transforms
Now that AST transforms live in the AST namespace, these prefixes are
no longer necessary.

Change-Id: I658746ac04220075653ec57d6dc998947232d8bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132425
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-12 01:43:50 +00:00
Austin Eng 4ae03fa8d0 Remove some KEEP tags
The comments/bugs say the tests were consistently failing. Thus,
they shouldn't be marked KEEP so that the roller removes expectations
once they start passing. At least one of these blocks of tests is
already passing on top-of-tree; the expectations will be updated in
the next roll.

Change-Id: I7aa485c676b7f01e729dbe8ffd66af38d4f80d09
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132444
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Auto-Submit: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
2023-05-11 23:34:52 +00:00
Brandon Jones d5611aa7c2 Validate compute pass timestamp queries are unique
This validation existed for render passes but not for compute passes,
and it's not clear why.

Bug: dawn:1809
Change-Id: I8babb6ddf455a915f5a0c85ad1a7d741fdb467a8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132481
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-11 22:36:36 +00:00
Austin Eng a03e55d577 Add dawn-try-mac-intel-exp to CTS rolls
We don't have CTS results for the associated CI bot.

Change-Id: I3cfc62bd299e2c7bdb30fd0389f20159ab2f154e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132482
Kokoro: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-11 21:51:46 +00:00
James Price b4acbb8bb0 [tint] Introduce an ast::transform namespace
All AST transforms live inside this namespace. There will be a
corresponding ir::transform namespace for IR transforms.

Change-Id: I543972451c08e7df5632b835257999a8af3701d1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132424
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-11 21:27:16 +00:00
Dawn Autoroller 7351fb31c8 Roll ANGLE from 8b9440b630cb to b1395bcbac18 (4 revisions)
8b9440b630..b1395bcbac

2023-05-11 geofflang@chromium.org GL: Disable EXT_clip_control on Mali-G72 and G76.
2023-05-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 917d7c4c0a58 to 8ea63733746a (8 revisions)
2023-05-11 bsheedy@chromium.org Dedup Gold properties code
2023-05-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 1e9340f9e024 to 44507c8368c2 (677 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 angle-team+autoroll@google.com,rharrison@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: rharrison@google.com
Change-Id: I94b8235b49d67e8aa9c9b76fead6a5328a33fb3b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132243
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>
2023-05-11 19:45:51 +00:00
Yunchao He 9924426c94 Unset vertex buffer: validations and unittests
If vertex buffer is null, SetVertexBuffer() actually unset that
buffer slot. This is a new feature in WebGPU. This change adds
validations and unittest in order to support this feature.

Bug: dawn:1675
Change-Id: Ia3e5d4196423590ff5b60ea78cc1e8cdd9c67d15
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/124842
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2023-05-11 19:26:30 +00:00
Peng Huang eb53af192f d3d11: suppress two TextureViewRenderingTest with Intel D3D11
Bug: dawn:1812
Change-Id: I22d28af0e299e8368f485bbd6117bb0a6778ef35
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132500
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-11 18:19:34 +00:00
Brian Sheedy 760036cf4a Add Dawn DEPS branched trybots
Sets the Chromium Dawn DEPS builders to be available as
branched trybots.

Bug: chromium:1432491
Change-Id: I319e76c3c0fc7d2bc168c0fdd6c07eebd8165046
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132272
Commit-Queue: Brian Sheedy <bsheedy@google.com>
Kokoro: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@google.com>
2023-05-11 17:57:49 +00:00
Austin Eng 096ce5936a Move Adapter toggles from PhysicalDevice to Adapter
Bug: dawn:1774
Change-Id: I25a4040af929b5dc49ad481f85a067e427b97424
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132267
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-05-11 17:10:28 +00:00
dawn-autoroll 4d6f048af0 Roll vulkan-deps from c84ccdc63da1 to 8ea63733746a (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/c84ccdc63da1..8ea63733746a

Changed dependencies:
* vulkan-validation-layers: c9a72e278f..c504ef71a4

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 rharrison@google.com,webgpu-developers@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: rharrison@google.com
Change-Id: Ib379c3ce07cc4c4a90dde7388c02f4e0b76f45b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132480
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-11 15:26:07 +00:00
Peng Huang 61446e63b6 d3d11: enable TextureViewTest
Bug: dawn:1705
Bug: dawn:1810
Change-Id: I0a975e074c69d866f1b0b8454a364d05ba1989bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132443
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-11 13:16:29 +00:00
Peng Huang c06625efc7 d3d11: enable VertexStateTests
Bug: dawn:1705
Change-Id: I289c2eb1c61b8f0119e136c7538be947ce461fd5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132442
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2023-05-11 13:15:42 +00:00
James Price 7d2e204911 [tint] Move AST transforms to a subdirectory
This prepares for the addition of IR transforms. Subsequent patches
will introduce an ast::transform namespace and refactor the Transform
class into a common base class for the two types of transform.

Bug: tint:1718
Change-Id: I0088d8356341e861df68df1f4f755ee82757dd2d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132423
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-11 13:10:59 +00:00