Once constants are de-duplicated, they must be fully immutable.
Bug: tint:1935
Change-Id: Iba1f85079f2ada1f44ba44d1da9b8a65d1abf2ad
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134361
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Constructs deduplicated constants, similarly to type::Manager
The constant::Manager owns the type::Manager so they can be
std::move()'d together without having to risk having the
constant::Manager hold a stale pointer to a moved type::Manager.
Not currently used. That comes next.
Also un-inline type::Manager scalar helpers. Reduces transitive
includes.
Bug: tint:1935
Change-Id: I28fc74a712f19a171850df5e84433e2d60cba256
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134360
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
This CL moves the `Function` node to be a `Value` instead of a `Block`.
Bug: tint:1718
Change-Id: I7e67f87fc0a442e0b390fc59f761287382a4b682
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134301
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
This CL switches the disassembler back to being recursive and fixes up
the indenting of blocks to better highlight if branches and switch
cases.
Bug: tint:1718
Change-Id: I14e8d7c68a083bf3afd9ff7241d49b2aa76be4ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134300
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Change-Id: I049bc6499f22ddb359b9d4701eaa5df31f5a652a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134340
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
This CL updates a bunch of uses of FlowNode to use Block instead. The
InboundBranches are moved from FlowNode to Block.
Bug: tint:1718
Change-Id: Ic1c07dae103e25364a3a6b3333cfcb57d10b30c2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134260
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
This CL moves the FunctionTerminator and RootTerminator nodes to be
blocks instead of FlowNodes.
Bug: tint:1718
Change-Id: Iee7830bccd99e4587b95b22b53268d1d2921e82f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134222
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This CL removes the Jump instruction. This didn't add much value over
the branch instruction and was confusing as to which to use when.
Bug: tint:1718
Change-Id: I69253aa7baf39b00f698e4e8f9608465f6019dcd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134221
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
The transform was only being run if there was at least one override
without an initializer. We actually need to run the transform if there
are any overrides at all, even if they all have initializers.
Bug: chromium:1447418
Change-Id: Ia300ea4326b675c1fd84dd7709112fb69128963d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134203
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Change the instruction->id map to a generic non-constant value->id map
so that it can be used for other types of values.
Bug: tint:1906
Change-Id: I79a0a7f671214167fa17ca903f9e94a54507d17c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134201
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Creating scalar types is extremely common when using builders.
Bug: tint:1718
Change-Id: I2c2f0f521af1384bd8dee344ddfa525583535911
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132284
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This CL adds some helpers to make composites easier to use in tests.
Bug: tint:1718
Change-Id: I16a0e94978c43efa619b31b6815089c8fff6983f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133920
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Add a builder helper function to create a `Function` with a
`string_view` name instead of requiring the creation of a symbol.
Bug: tint:1718
Change-Id: I5d85736b49719246cb31825c3f4ad7a25131cb77
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133900
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
The ir::Value objects each have a list of instructions in which their
used. These lists allow us to determine all the places the value is
used. Currently this is unable to track the usage of a value in an
`if` or `switch` condition. It is also unable to track the usage of a
value as a branch argument.
In order to facilitate this tracking, the flow graph has been resolved.
Branches are moved to branch instructions (and jump instructions). A
jump is walk continue branch. A branch is a walk terminating branch. The
`if`, `switch` and `loop` flow nodes are moved to instructions as well.
Bug: tint:1718
Change-Id: I8e4cc4688bb1bdd5c7eecc72d366e6531ec685b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133840
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
On D3D12, there is a limit of the number of texels in a buffer which is 1<<27. See D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP and the spec. This patch limits it according to the spec in case of D3D12 in MaxLimitTests.cpp. This fixes MaxLimitTests failure on Arm device.
Bug: dawn:884
Change-Id: Ia14ebca92855ec7b7e8d81b7bd547108948da567
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133961
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Min Lee <lemi@microsoft.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
When an initializer is present, use type inference instead of
explicitly typing `var` and `let` declarations. This reduces the size
of the generated WGSL and improves readability.
Change-Id: I241ee2108279b550735945940f2b62bbbd493708
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132142
Commit-Queue: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: David Neto <dneto@google.com>
This is a small refactor in preparation for exposing GetCurrentTexture
on the SwapChain.
Bug: dawn:1551
Change-Id: I7cc8ec4a9042f48c4af7b2cc2126b1d9248a2003
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133462
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
See https://github.com/webgpu-native/webgpu-headers/issues/179
Also changes WGPU_NULLABLE instead of /* nullable */ and make a couple
formatting fixes.
Bug: None
Change-Id: Ieb4315cddd3c806144892221fba11888171f072f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133102
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This is an internal usage only used for barriers management in some
backends, and doesn't need to be exposed publicly.
Fixed: dawn:1535
Change-Id: I0474977227230acbf7dd3cfa91bf589ffd9464fd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133460
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This binds UAV slots all together at the same time.
Bug: dawn:1816
Bug: dawn:1705
Change-Id: Iea7af9cf00caf126a3964cc43bbf2162b35f80e0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/132600
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Because of the CastableBase, the copy and move constructors and
assignment operators can't be used. They don't need to be explicitly
deleted.
Bug: tint:1718
Change-Id: Iafa000a00f779e1cac0aca8125330906ebd63446
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133660
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
This reverts commit a03e55d577.
Reason for revert: experiment finished
Original change's description:
> 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>
Change-Id: I7b83b73a50bda2a4596601e319a534bcc140d342
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134040
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>