Commit Graph

8094 Commits

Author SHA1 Message Date
dan sinclair 52fa68b1a7 Convert MSL generator over to utils::StringStream.
This CL converts the MSL generator to use utils::StringStream
internally.

Bug: tint:1686
Change-Id: I4225ebb87fd5281a3527bf2a9067651b60b114a8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121920
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-28 14:54:51 +00:00
dan sinclair 2b9d5b338a Convert HLSL generator over to utils::StringStream.
This CL converts the HLSL generator to use utils::StringStream instead
of std::stringstream.

Bug: tint:1686
Change-Id: I69d4deec9b65bbcba6afe319cc1266879cd7c373
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121900
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-28 14:49:25 +00:00
dan sinclair dba03d30fb Convert GLSL Generator over to utils::StringStream.
This CL switches the GLSL Generator to use utils::StringStream. The line
writer is converted internally as well, although it converts to
`std::ostream` for now. This caused a couple of the MSL, HLSL and GLSL
tests to generate slightly fewer decimal points in a couple tests.

Bug: tint:1686
Change-Id: I9ec8c1a5ef49679fc1c9a9aece86ab3390e103fc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121880
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-28 14:41:45 +00:00
dan sinclair a4637ad8a3 Convert IR over to `utils::StringStream`.
This Cl updates the IR to use the `utils::StringStream` instead of
`std::stringstream`.

Bug: tint:1686
Change-Id: Iee9063db554bc75e7a730a8629d7f3403ff1a190
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121860
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-28 13:09:06 +00:00
dan sinclair 7ca41fffb7 Add a utils/string_stream class.
This CL adds `utils::StringStream`. This is a wrapper over
std::stringstream which forces the locale to always be `classic`. The
logic to format floats and doubles as expected is moved from
`float_to_string` and handled in the StreamStream. This will make all of
our float emission the same.

Bug: tint:1686
Change-Id: If51868f577580d3ea6ab94d3910393e239fd55e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121800
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-28 13:05:21 +00:00
Loko Kung 53893a3d77 Adds error promoting to device loss when disallowed error occurs in a scope.
- Defaults consume error calls to only allow validation and device loss
  errors.
- Allows OOM errors on Buffers, QuerySets, and Textures only.
- Adds initial suite of unit tests (and any necessary updates to mock
  framework).

Bug: dawn:1336
Change-Id: I82112ea6c147e894280e605bf8ae0ce00488c9f3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119800
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-28 04:34:32 +00:00
James Price 7680bc0a89 dawn/test: Test padding byte preservation
The Dawn E2E tests for memory layout now check that padding bytes are
preserved, instead of skipping them.

Bug: tint:1571
Change-Id: I02edbe140e7025937a3188106da5e43ff03ad078
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121602
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-27 22:31:35 +00:00
Stephen White 25e1f12228 OpenGL: add support for GL_ANGLE_base_vertex_base_instance.
Change-Id: Ib327cb2e66bd5f02cce9c5321207483e16b40a40
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121500
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2023-02-27 21:43:57 +00:00
James Price ae3e9adc1b dawn/node: Fix array buffer view conversion
A Napi::TypedArray may have a non-zero offset on its underlying
ArrayBuffer backing buffer. Also use the length of the typed array,
not the backing buffer.

Change-Id: Icaa310ef8f87393b4d7582ba0a0afb2b87318664
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121820
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-02-27 21:21:02 +00:00
Austin Eng 148e7fab1c Raise maxStorageTexturesPerShaderStage to 8
The higher tier for this limit is available on all D3D12, all Metal,
and most Vulkan devices.

Bug: dawn:685
Change-Id: Ic2a39ad7908ea178e7aac48b7bb54b262d7039cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121543
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-02-27 20:22:51 +00:00
James Price 4d3af66bbd tint/msl: Preserve trailing vec3 padding
In order to preserve padding properly for MSL, we need to use its
packed_vec type for all vec3 types in storage buffers, not just struct
members. This commit includes a complete rewrite of the PackedVec3
transform to achieve this. The key details are:

* An internal `__packed_vec3<>` type was added, which corresponds to a
  `type::Vector` with an additional flag to indicate that it will be
  emitted as packed vector.

* The `PackedVec3` transform replaces all vec3 types used in
  host-shareable address spaces with the internal `__packed_vec3`
  type. This includes vec3 types that appear as the store type of a
  pointer.

* When used as an array element, these `__packed_vec3` types are
  wrapped in a struct that contains a single `__packed_vec3`
  member. This allows us to add an `@align()` attribute that ensures
  that `array<vec3<T>>` still has the correct array element stride.

* When the `vec3<T>` appears as a struct member in the input program,
  we apply the `@align()` to that member to ensure that we do not
  change its offset.

* Matrix types with three rows that are used in memory are replaced
  with an array of columns, where each column uses a `__packed_vec3`
  inside an aligned wrapper structure as above.

* Accesses to host-shareable memory that involve any of these types
  invoke a "pack" or "unpack" helper function to convert them to the
  equivalent type that uses `__packed_vec3` or a regular `vec3` as
  required.

* The `chromium_internal_relaxed_uniform_layout` extension is used to
  avoid issues where modifying a type in the uniform address space
  triggers stricter layout validation rules.

Bug: tint:1571
Fixed: tint:1837
Change-Id: Idaf2da2f5bcb2be00c85ec657edfb614186476bb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121200
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-27 20:21:03 +00:00
Stephen White 55183e6c3a OpenGL: only load extension procs if extension supported.
Only load extension entry points if the extension is supported.

From the eglGetProcAddress manpage:

"A non-NULL return value does not guarantee that an extension function
is actually supported at runtime. The client must also make a
corresponding query, such as glGetString(GL_EXTENSIONS) for OpenGL and
OpenGL ES extensions [...] to determine if a function is supported by
EGL or a specific client API context."

This required moving extension initialization from OpenGLFunctions
into OpenGLFunctionsBase.

Change-Id: Ib4e8360ba455818701990b4476689b651d097ca8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121760
Commit-Queue: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-27 19:31:08 +00:00
Antonio Maiorano 43ffb09247 tint: validate max number of case selectors in a switch statement
Bug: tint:1209
Change-Id: Id91901125e7caf9b8b0e297305c26587edaa44d9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121741
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-27 19:04:23 +00:00
Antonio Maiorano 1bb5be9789 tint: improve error message about function paramter limit
Bug: tint:1209
Change-Id: I0d3b188069e91488a482f529c962bfa054ad6d36
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121740
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-27 19:04:23 +00:00
Antonio Maiorano 6b304e9ffd tint: validate max nesting depth of composite types
Also increased stack size for windows + debug GN builds of
tint_unittests to 4 MB, which matches what we do in the CMake build.
Required, otherwise some of my new tests stack overflow.

Bug: tint:1209
Change-Id: I3b98000a989aa8b42b20cc4e2219c91887e52451
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121360
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-27 19:04:23 +00:00
James Price 0b3400c56e tint: Add chromium_internal_relaxed_uniform_layout
This will be used by the PackedVec3 transform to avoid triggering
stricter layout validation rules for the uniform address space when
mutating types.

Bug: tint:1571
Change-Id: Ib15737fbe3cab4a8fbe453bcaf96ef2acc595921
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121601
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-27 18:39:20 +00:00
James Price 806135658d tint: Pass constant::Values to ArrayOrStructCtor
This will allow the WGSL interpreter to use it (as the interpreter
does not have semantic nodes for its runtime results).

Change-Id: Icf81852d099b34cbb48c098bc116b4f08a3a7c61
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121545
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: James Price <jrprice@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2023-02-27 17:13:32 +00:00
David Neto c5ec169b89 classify template args: add cases used to debug Treesitter scanner
Change-Id: Ie27b217d68a2bae7d86b99d4268be11a7f47279f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121540
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-27 16:26:31 +00:00
James Price 6176c85be8 tint: Preserve padding in matrices with three rows
The PreservePadding transform now decomposes writes to matrices with
three rows into separate column vector writes, to avoid modifying
padding between columns.

Bug: tint:1571
Change-Id: If575f79bb87f52810783fd3338e2f3ce3228ab2e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121600
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-02-27 16:06:54 +00:00
James Price fe19fee3ea tint/const-eval: Fix runtime semantics for (x % 0)
The result of integer mod is defined to be zero when the RHS is zero
and for (MOST_NEGATIVE / -1). Floating point is expected to be
implementation defined, so also return zero in this case.

Change-Id: Ic25250d637ccb93ba62a5fc0bcebe670d5cd4e3b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121544
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
2023-02-27 16:02:02 +00:00
Takahiro 35df626efa Refcount check in Buffer map async in Wire
If buffer is released and the external refcount reaches 0 while
buffer map state is pending map in Wire, the map async callback
is fired with destroyed-before-callback status from the buffer
destructor.

It is possible to call another MapAsync in the callback. At that
time the pointer is still valid because the internal refcount is
not 0 yet.

The behavior of MapAsync should be undefined if external refcount
is 0. This commit adds an assert to check whether external
refcount is 0 in Buffer::MapAsync() in Wire. Ending up with
assertion error may be reasonable.

This commit also adds protected GetRefcount() method to
ObjectBase to allow derived classes to check the refcount.

bug: dawn:1624
Change-Id: I95411a7be2093ba7bb2bb45b466f17f1ebac0ca9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119961
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2023-02-27 15:14:13 +00:00
Corentin Wallez f615770780 Dawn: Improve a couple error messages.
Bug: dawn:563
Change-Id: I49ad645d1b8a02efe029c391c3c70894de42cf9d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121542
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2023-02-27 15:10:21 +00:00
Zhaoming Jiang 04529be9b7 Dawn/Tint: Polyfill reflect vec2<f32> for D3D12 FXC on Intel
This CL add a toggle-controlled Tint polyfill for reflect on vec2<f32>,
and enable this toggle by default on D3D12 Intel device when using FXC.
This CL works around issue tint:1798.

Bug: tint:1798
Change-Id: If2f4de836eaf5e7374bc2c1ae3fbe06b91a5bbd5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121160
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2023-02-27 02:59:50 +00:00
Austin Eng 2ea4aac080 Support higher limits for maxDynamicUniform/StorageBuffers
The higher tier currently supports all D3D12 devices, all Metal,
and most Vulkan devices.

Bug: dawn:685
Change-Id: I5bcb778b92a073c9c1af943acee193073c0741ff
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121101
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-25 02:10:21 +00:00
Antonio Maiorano 8ef7311413 tint: validate max number of members in a struct
Bug: tint:1209
Change-Id: I248c1864d3b38d41eda56bc41d7f19fb5fdd1955
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121220
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2023-02-24 21:37:44 +00:00
Ben Clayton 8cd5c611fc tint/reader/wgsl: Remove element_count_expression()
It wasn't actually called, as array is parsed like any other templated type.

Fixed: tint:1850
Change-Id: I2f1c8b8990cf7f3a5f8b09316e4dc539dbe6535a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121520
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-02-24 21:02:40 +00:00
Antonio Maiorano dec0c62997 tint: optimize SymbolTable::New
Avoid linearly searching for prefix_i. This becomes very slow when
adding the same prefix many times. Instead, cache each prefix and the
last index that was assigned, and start searching from there.

Note that this locally speeds up MaxLimitTests.MaxBufferBindingSize on
GL backends from about 10 minutes to a few seconds. This test creates a
very large struct, and Tint's GLES backend runs the PadStructs
transform, which produces a struct with 16384 members. Creating these
members triggers the behaviour described above when creating names for
each member.

Also replaced std::unordered_maps with utils::Hashmap.

Change-Id: I86678a049ac229ce617d500971e9c077ff5c10a1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121440
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-24 20:59:08 +00:00
James Price 66d487395d tint: Use PI/2 as the input value for sin tests
This makes the output value consistent between different platforms.

Change-Id: I4f94da4deac6998c4b809b03ed3b8f58d32bb1b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121501
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-24 18:57:39 +00:00
Ben Clayton 1a1b5278d5 tint/transform: Inline HLSL uniform / storage buffers
Change the DecomposeMemoryAccess to behave more like the DirectVariableAccess transform, in that it'll inline the access of buffer variable into the load / store helper functions, instead of passing the array down.

This avoids large array copies observed with FXC, which can have *severe* performance costs.

Fixed: tint:1819
Change-Id: I52eb3f908813f72ab9da446743e24a2637158309
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121460
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-02-24 17:16:55 +00:00
Ben Clayton 7052cb57ff Revert "Add test setting the locale."
This reverts commit 9cdc3343ff.

Reason for revert: For some reason, Windows kokoro bots are now taking objection to this test.

Original change's description:
> Add test setting the locale.
>
> This CL adds a test which sets the locale to one which uses `1,00`
> instead of `1.00`. This ensures the float emission will get the right
> format.
>
> Bug: tint:1686
> Change-Id: Ib87235c7beac351b7dcbf37534df07135da377e5
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120881
> Reviewed-by: Ben Clayton <bclayton@google.com>
> Kokoro: Kokoro <noreply+kokoro@google.com>
> Commit-Queue: Dan Sinclair <dsinclair@chromium.org>

TBR=dsinclair@chromium.org,bclayton@google.com,noreply+kokoro@google.com,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I2ace266871958a2d467855d55079aae467195ce0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: tint:1686
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121462
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-24 17:03:59 +00:00
Austin Eng 9ec746e3b9 Disable async pipeline compilation on Mac AMD with backend validation
Instead, compile pipelines synchronously.

When backend validation is on with Mac AMD, the driver crashes during
pipeline compilation. This seems to only occur when partition alloc
is enabled.

Bug: dawn:1200
Change-Id: I520087eeae9c356990962d0c4a96eba017735af1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121400
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-24 16:26:00 +00:00
Yan,Shaobo e958db0490 Add ExternalTexture::Refresh() and ExternalTexture::Expire()
ExternalTexture has active, expired and destroyed states.

Only active state external texture is valid to submit.

Expired state external texture can be refresh to active but
destroyed external texture cannot be refresh.

Bug: chromium:1412338
Change-Id: Ic7f12d274d27b644f19ec3ef8b46c110610afa2b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120982
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
2023-02-24 02:09:38 +00:00
Jiawei Shao dd0332ec91 D3D12: Add workaround for DstAlpha blend factor issue on Intel GPUs
On Intel Gen9 and Gen9.5 GPUs there is a D3D12 driver bug about
using DstAlpha as the source blend factors in both color and alpha
blending.

Although we cannot add workaround for all such cases, we have
confirmed that when the blend operation is 'add', and the
destination blend factors are ‘zero', we can workaround this driver
bug by replacing 'add' to 'minus'. We cannot add workaround when
destination blend factor is another value.

This patch adds such workaround on the affected platforms.

Bug: dawn:1579
Test: dawn_end2end_tests
Change-Id: If7c82b9d559b876e42fb36e2f539f9ff2f71ea91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120981
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-24 01:34:56 +00:00
Li Hao fa5cda877f Add workaround to blit depth to depth in D3D12 T2T
Workaround for T2T depth copy failed with non-zero array layers for
d32s8 format on Intel D3D driver 31.0.101.4091.

Bug: dawn:1083

Change-Id: I9368f81ded765c5af4f132eb7f1032e695e16875
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121161
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-24 01:17:58 +00:00
dan sinclair 65a45fdf41 Handle errors in SPIRV-Reader tests.
This CL updates some EXPECT to ASSERT in the spirv-reader tests to
work around segvs when tests fail.

Bug: tint:1686
Change-Id: Icfd5a83cc71709fd351c3d5a39a9a0173056a0f8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121340
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-23 21:51:15 +00:00
Ben Clayton 107aa81c89 tint: Improve error for assignment to immutable variable
Fixed: tint:1835
Change-Id: I48d1380fd6d9d5fdaae4a210e3c8695e26894905
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121320
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-23 20:50:36 +00:00
dan sinclair 9cdc3343ff Add test setting the locale.
This CL adds a test which sets the locale to one which uses `1,00`
instead of `1.00`. This ensures the float emission will get the right
format.

Bug: tint:1686
Change-Id: Ib87235c7beac351b7dcbf37534df07135da377e5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120881
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-23 19:49:07 +00:00
dan sinclair 077d97a387 Add `SuggestAlternatives` to attributes.
This CL adds an `attribute` enum into intrinsics.def and updates the
WGSL parser to use the enum parser and SuggestAlternatives.

Bug: tint:1831
Change-Id: I33b3e6bbf092282d9b1f86a1080e69940f55ff68
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121280
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-23 19:08:57 +00:00
Antonio Maiorano 9386f73446 tint: Fix compilation error with latest MSVC 17.5.0
Not sure if MSVC is wrong here, but it now fails to compile this file
because it looks for `builtin::AddressSpace::kPrivate` within the inner
`builtin` namespace, rather than in `tint::builtin`.

Change-Id: I10f9e1bd58e6ba548d40823f03802320865f069d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121221
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2023-02-23 18:35:49 +00:00
dan sinclair 869bcabf88 Make attribute grammar generic.
This Cl updates the parser to use a generic attribute grammar.

Bug: tint:1845
Change-Id: Icd600a2d87f03972f60d89b27fe0eef7be7667d5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121100
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-23 18:34:08 +00:00
jchen10 39b7330b5b Fix UV coord for TextureLoad
UV plane's coord should be half of that of Y plane for NV12.

Bug: chromium:1415832
Change-Id: Icee851e61eca1f7da291285100f8edcce482b511
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119860
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-23 13:03:52 +00:00
Antonio Maiorano 9776edf161 tint: Improve error message for array element stride in uniform storage
Bug: tint:1806
Change-Id: I673c41ce64c1cd2eb75ac93bf1ff9c51dab1c1d0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121042
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: dan sinclair <dsinclair@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: James Price <jrprice@google.com>
2023-02-22 23:53:07 +00:00
shrekshao 182a7e89a6 Validate writable storage buffer bindings don't alias
Validate as the bind group lazy aspect at each dispatch/draw
call.

Use nested loops to iterate through each bind group and binding
to find if any aliasing exists, which has time complexity of
O(N^2) and can be further optimized to use O(NlogN) algorithm.

Bug: dawn:1642
Change-Id: I8c43128cdeea75352c194752fb22258b6a73430e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118440
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-22 23:20:50 +00:00
dan sinclair 187e0d5fe7 Add `requires` directive
This Cl adds the requires directive into Tint. Using the directive is
currently always an error as there is no valid value which can be used.

Bug: tint:1843
Change-Id: Idf77ba4e95ff0c1e177d02d1ba9598edc89a9812
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120740
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-22 20:57:28 +00:00
Loko Kung f35f1ff98c Refactors native mock classes to be more like the Null device.
- Plumbs all descriptors through so that the objects act much more like
  a real implementation.
- Lots of changes to DestroyObjectTests.cpp to update usages and test
  through the APIs when applicable.
- Put in defaults for the mock device and make it as easy to use as
  possible.

Change-Id: I85b243a18ec1872aff0172549aec0f599967ea0e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119821
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
2023-02-22 20:38:37 +00:00
Ben Clayton 54a104e28f tint: Update constructor / conversion terminology
Rename:
* "type initializer" -> "value constructor"
* "type conversion" -> "value conversion"

Fixed: tint:1848
Change-Id: I3e86a4e944971cea970f0d137641517c36cb807d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121060
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-22 20:04:40 +00:00
Corentin Wallez b4d2bbb24f Make Texture/QuerySet destroy always valid.
This follows the recent semantic from the WebGPU spec and fixes a couple
failing CTS tests.

Bug: None
Change-Id: I9197ea3fda6c15bd9302f8d60e70ee00f1d37708
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120980
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-22 18:12:57 +00:00
Austin Eng f16b9bbd6e Guard D3D12_FEATURE_D3D12_OPTIONS13 behind SDK version check
Bug: dawn:1216
Change-Id: I29054d51a5c4a24ce85619a22062973572eb1c61
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120983
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-22 17:27:04 +00:00
Ben Clayton afc53fa942 tint/resolver: Bring back enum suggestions
The dependency graph no longer errors if a symbol cannot be resolved, instead the ResolvedIdentifier now has an unresolved variant.
This is required as the second resolve phase only has the full context of the identifier usage, to provide the hints.

Also: Split Slice out of the utils/vector.h, so it can be used as a lightweight view over static data.

Fixed: tint:1842
Change-Id: I31fa7697790be24c35b7e4fab5ca903c8a7afbba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121020
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-02-22 17:15:53 +00:00
Ben Clayton b549b3051e tint: Validate @must_use on functions and builtins
Fixed: tint:1844
Change-Id: I812dd338925c1dccaa3029a46e10a0ea34a8ed54
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120960
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2023-02-22 16:18:22 +00:00
Ben Clayton d84903201d tools: Add @must_use support to intrinsics.def
Emits the new OverloadFlag::kMustUse flag on the annotated overloads.
Nothing consumes this, yet.

Bug: tint:1844
Change-Id: I4eb0943a23eaf5de98cd63444a686cffe62fb36e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120920
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-02-22 13:52:21 +00:00
dan sinclair ce10962d82 Add parsing and emission of the `must_use` attribute.
This CL adds parsing of the `@must_use` attribute into the WGSL parser. The WGSL
generator is also updated to emit the attribute.

Bug: tint:1844
Change-Id: If8821c9ac534b866cbe042128a00a582a245c3de
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120821
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-02-22 13:36:01 +00:00
Ben Clayton 5662f79b24 tint/ast: Remove unnecessary ast:: prefixes
These uses are already in the ast namespace, so do not need the extra qualification.

Change-Id: I5e66048c9485c55b72e61ffa5b85b17ba1c780d0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120761
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2023-02-22 00:08:55 +00:00
Austin Eng 4a88a3287e D3D12: derive T2T workaround from TextureCopyBetweenDimensionsSupported
Query D3D12_FEATURE_DATA_D3D12_OPTIONS13 to determine whether the device
supports copies between textures of different dimensions. If it does
not, or if D3D12_FEATURE_D3D12_OPTIONS13 is not supported, force enable
toggle
D3D12UseTempBufferInTextureToTextureCopyBetweenDifferentDimensions.

Fixed: dawn:1216
Change-Id: I976e7fad291126f8dcee31ce6b681314d38e69e7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120882
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Austin Eng <enga@chromium.org>
2023-02-21 23:14:46 +00:00
Shrek Shao 053fca884a Run SubstituteOverride transform before Robustness
Fixed: dawn:1673
Change-Id: I57f3daf16c417713a850894d1c6fcbc31ef03da1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120822
Commit-Queue: Shrek Shao <shrekshao@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-02-21 23:12:33 +00:00
James Price 239b4298b3 tint/HoistToDeclBefore: Use explicit types
Hoisting a constant array with an abstract type may change its
materialized type when using type inference, so use explicit typing
instead.

Fixed: tint:1847
Change-Id: I890826945bac7a2b7d8a0b84967f9d3c9ba439b7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120901
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-02-21 23:10:17 +00:00
Ben Clayton 60d3738102 tint: Fix ICE in ast::TemplatedIdentifier ctor
Invalid programs could attempt to construct an ast::TemplatedIdentifier with no template arguments.
In this situation an ast::Identifier should be constructed instead.

Bug: chromium:1417465
Change-Id: Id1516cd83679947b5346c69ce5453d72f4f93b49
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120841
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-21 22:01:48 +00:00
dan sinclair 2f689a7efe Remove deprecated inspector fields.
This CL removes two deprecated fields from the inspector. The deprecated
alias to sem::SamplerTexturePair remains as it will require creating a
structure on the inspector side to replicate.

Change-Id: I6001fbd475260079dd49d50f8e8619241bb0b468
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120880
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-21 21:54:48 +00:00
Ben Clayton fdef033210 tint/resolver: Fix ICE in ResolvedIdentifier::String()
That resolve to parameters.

Bug: chromium:1417513
Change-Id: Id7722524acbd9a9a26543cb73f48c8823dd51356
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120840
Kokoro: Ben Clayton <bclayton@chromium.org>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2023-02-21 21:07:35 +00:00
Ben Clayton f0b4dbb82d tint: Resolve @interpolate() args as expressions
This CL makes the builtin argument resolve as a shadowable enumerator
expression.

Bug: tint:1841
Bug: tint:1845
Change-Id: I5000ea91771fabb460c80c164bc7708fbbb0288c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120722
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-21 21:05:28 +00:00
Ben Clayton 650426b187 Run ./tools/format
Change-Id: Icf1925cd3c862c4e29ba41f7d8470991ba4017f3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120721
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-21 21:05:28 +00:00
dan sinclair a79c6603b2 Add `@must_use` AST node.
This CL adds the `@must_use` ast node and hooks it into the
program_builder.

Bug: tint:1844
Change-Id: I2ffe99bbf29ec287446788253aa8cf63cc4da50b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120820
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-21 18:49:40 +00:00
dan sinclair b92ff39724 Remove `static_assert` deprecation.
The `static_assert` builtin has been replaced with `const_assert`. This
CL removes the deprecation.

Bug: tint:1807
Change-Id: Ibcdc75e167bf6c1a6f74c295d9dcac7fff884d3a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120580
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-21 18:44:16 +00:00
Ben Clayton 4d3ff9711e tint: Resolve @builtin() args as expressions
This CL makes the builtin argument resolve as a shadowable enumerator
expression.

Bug: tint:1841
Bug: tint:1845
Change-Id: I2aaa2c63025752f25c113cf2fb38f4d91c2c16c2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120680
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2023-02-21 17:33:54 +00:00
dan sinclair 21571709a2 Remove the `type` keyword.
`type` has been deprecated in favour of `alias`. This CL removes the
deprecation warning and moves `type` to a reserved word.

Bug: tint:1812
Change-Id: I05246b9887a0890ae8343a0a132bd6f93353d5ae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120540
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-21 16:55:07 +00:00
Ben Clayton 2d6f90771b tint/reader/spirv: Remove stdout spam
Change-Id: I8e38535d32f3e82800740894d5d47256fa926b23
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120720
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-21 01:59:33 +00:00
dan sinclair 993a658af2 Move InterpolationSampling and InterpolationType to builtin.
This CL moves the ast::InterpolateSampling and ast::InterpolationType to
builtin::

Change-Id: Iad9365ff629cbb7b3b03de6a4cd9355a21ce287e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120442
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-20 08:37:45 +00:00
Jiawei Shao e4f947637a D3D12: Replace dst-alpha with one for formats without alpha
This patch replaces D3D12_BLEND_DEST_ALPHA with D3D12_BLEND_ONE
when the color target formats have no alpha-channel.

Using D3D12_BLEND_ONE is an optimization over
D3D12_BLEND_DEST_ALPHA as it means the GPU hardware doesn't
need to get destination pixel at all. As D3D SPED requires the
default value for missing components in an element format is
"0" for any component except A, which gets "1", using
D3D12_BLEND_DEST_ALPHA takes same effect with
D3D12_BLEND_ONE when the color target formats have no alpha
channel.

In addition, replacing D3D12_BLEND_DEST_ALPHA with
D3D12_BLEND_ONE also serves as a workaround against an Intel
driver issue about alpha blending.

Bug: dawn:1579
Change-Id: If79e4c8007b68dd35e142ba9cf8a4921e611890a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120120
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-02-20 03:10:32 +00:00
dan sinclair b5af23d588 Move diagnostic severity and rule to builtin.
This CL moves DiagnosticSeverity and DiagnosticRule into the builtin::
hierarchy.

Change-Id: I3884046f042d130fa44556f63163f0040381e69c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120440
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-19 17:34:44 +00:00
dan sinclair ef30aa400c Move type/builtin to builtin.
This CL moves type::Builtin to builtin::Builtin.

Change-Id: I8b058dfcac38f782e07393b69e38534175f67524
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120403
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-19 04:28:04 +00:00
dan sinclair ba082fdb48 Move TexelFormat to builtin
This CL moves ast::TexelFormat to builtin::TexelFormat.

Change-Id: Ifb39cc58babdd7e7aa89c19af5336a9498b082ae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120402
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-19 04:14:19 +00:00
dan sinclair 2a65163c6d Move type::AddressSpace to builtin/
This CL moves the AddressSpace enum from type:: to builtin::

Change-Id: Ie8d533be4dd42b34eef164b64e2c9e0843de5c3d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120401
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-19 04:03:55 +00:00
dan sinclair b6cc4cbf89 Move type/access to builtin.
This CL moves the type::Access builtin to the builtin:: tree.

Change-Id: I3276d364f7b597671612a23c8823f0afd1914d81
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120363
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-19 04:01:29 +00:00
Ben Clayton 79781f26d1 tint: Unkeyword 'var' template args
Change the address space and access mode in ast::Var from enums
to Expressions. Have the resolver resolve these, like we do for
other template arguments.

As the AST nodes now have identifier expressions, the tint-internal
'in' and 'out' address spaces have been prefixed with underscores to
prevent input code from using this.

Change-Id: Ie8abf371ee6a7031613709b83b575d2723418fcf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120405
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-18 17:13:18 +00:00
Ben Clayton 1b90f93742 tint: Remove type::AddressSpace::kNone
Just use kUndefined.

Change-Id: I26eada75a31b26f83e132a9a15c8ff64f7821676
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120404
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-02-18 12:37:34 +00:00
Ben Clayton 643f2aad43 tint/reader/wgsl: Remove type keywords
Fixes: tint:1810
Change-Id: Iff296a3923947801b9559fd0f5354b72f4b171d2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120081
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-18 08:36:01 +00:00
David Neto a1bda83c42 spirv-reader: don't hoist opaque objects
Fixed: tint:1839
Change-Id: I9738c390ab78e8dceb25572ea7cac6bdc0661304
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120460
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-18 07:05:58 +00:00
Corentin Wallez 839324a331 Make "rg11b10ufloat-renderable" also allow resolving.
Fixed: dawn:1663
Change-Id: I9b856b8a1d280b0de1cc41fc512aaa1235d6d992
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120441
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2023-02-18 05:17:59 +00:00
Austin Eng a0e96b5831 Rolling 8 dependencies
Roll build/ 8cbb95464..1103ef535 (35 commits)

8cbb95464b..1103ef535c

$ git log 8cbb95464..1103ef535 --date=short --no-merges --format='%ad %ae %s'
2023-02-17 brucedawson New toolchain for Windows 11 10.0.22621.755 SDK
2023-02-16 danakj Use the latest Rust roll in 2e5c4436101c72e571732e77604be0bc8f38ee4c
2023-02-16 rohpavone [fuchsia] Show update_images.py errors
2023-02-16 rohpavone [fuchsia] Download images to tempfiles and then extract.
2023-02-16 wnwen Android: Fix build_utils.MergeZips for duplicates
2023-02-15 bpastene Manually roll chromite to pick up Tast data dependency changes
2023-02-15 agrieve Android: Add flag to ignore violations in private_code_test
2023-02-15 vollick [ios] ensure that we filter out duplicate files due to glob expansion
2023-02-14 svenzheng Enable field trial config for lacros tests
2023-02-14 hypan Fix file closing issue in AVD.
2023-02-14 hans Roll clang+rust llvmorg-16-init-17653-g39da55e8-3 : llvmorg-17-init-2082-g6d4a674a-1 / [skipping Rust]
2023-02-14 vollick [ios] Only add tracked files to filelists and add automation
2023-02-14 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230213.3.1 to 11.20230214.1.1
2023-02-14 vollick Initialize MockInputApi's verbosity
2023-02-13 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230213.2.1 to 11.20230213.3.1
2023-02-13 waffles Updater: add symlinks to GoogleSoftwareUpdate.bundle.
2023-02-13 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230213.1.1 to 11.20230213.2.1
2023-02-13 dinfuehr sanitizers: Add TSAN suppression for V8 global safepoints
2023-02-13 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230212.3.1 to 11.20230213.1.1
2023-02-12 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230212.2.1 to 11.20230212.3.1
2023-02-12 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230212.1.1 to 11.20230212.2.1
2023-02-12 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230211.3.1 to 11.20230212.1.1
2023-02-12 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230211.2.1 to 11.20230211.3.1
2023-02-11 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230211.0.1 to 11.20230211.2.1
2023-02-11 uioptt24 Remove `import pipes` to suppress warnings
2023-02-11 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230210.2.1 to 11.20230211.0.1
2023-02-10 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230210.1.1 to 11.20230210.2.1
2023-02-10 agrieve Android: Build androidx.core.os.BuildCompat from source
2023-02-10 aohui.wan Fix "gn gen" failure from unused "_module_target_name"
2023-02-10 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230210.0.1 to 11.20230210.1.1
2023-02-10 agrieve Add test preventing internal code in libmonochrome.so
2023-02-10 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230209.3.1 to 11.20230210.0.1
2023-02-10 chromium-internal-autoroll Roll Fuchsia Internal Images from 11.20230209.2.1 to 11.20230209.3.1
2023-02-09 wnwen Reland "Android: Update play core library"
2023-02-09 mheikal Add global flag to disable unused resource stripping

Roll buildtools/ 70e9f44cb..2ff42d200 (7 commits)

70e9f44cbc..2ff42d2008

$ git log 70e9f44cb..2ff42d200 --date=short --no-merges --format='%ad %ae %s'
2023-02-16 chromium-autoroll Roll libc++ from 3e929b8e5992 to 6f4617b9efc3 (2 revisions)
2023-02-15 chromium-autoroll Roll libc++ from 7492f13b0b54 to 3e929b8e5992 (10 revisions)
2023-02-14 chromium-autoroll Roll libc++ from 276c835f3710 to 7492f13b0b54 (4 revisions)
2023-02-13 chromium-autoroll Roll libc++ from fb27d308b0e0 to 276c835f3710 (20 revisions)
2023-02-11 chromium-autoroll Roll libc++ from 7f648d9b44c2 to fb27d308b0e0 (4 revisions)
2023-02-10 chromium-autoroll Roll libc++ from 035440c70772 to 7f648d9b44c2 (1 revision)
2023-02-10 uioptt24 update python shebang in ash/ , base/ , buildtools/

Roll buildtools/third_party/libc++/trunk/ 035440c70..c1341b9a1 (49 commits)

035440c707..c1341b9a1a

$ git log 035440c70..c1341b9a1 --date=short --no-merges --format='%ad %ae %s'
2023-01-21 koraq [lib++][format] Uses the new exception test macros.
2023-02-11 koraq [libc++] Fixes a flaky test.
2023-02-15 koraq [libc++][CI] Switches to clang-format-16.
2023-02-15 koraq [libc++] Improve the format ignorelist generation.
2023-02-02 nikolasklauser [libc++][NFC] Rename _LIBCPP_NO_EXCEPTIONS to _LIBCPP_HAS_NO_EXCEPTIONS
2023-01-21 koraq [libc++][test] Adds more generic test macros.
2023-01-14 nikolasklauser [libc++] Granularize <atomic>
2023-01-08 nikolasklauser [libc++] Granularize <bit> includes
2023-02-15 ldionne.2 [libc++] Add regression test for std::hash implementation in ABI v1
2023-02-13 joeloser [libc++] LWG 3857: allow `string_view` conversion when only traits vary
2023-02-07 koraq [libc++][CI] Starts using Clang 17.
2023-02-14 nikolasklauser [libc++][NFC] Replace _LIBCPP_STD_VER > x with _LIBCPP_STD_VER >= x
2023-02-15 fsb4000 [libc++] `<algorithm>`: `ranges::minmax` should dereference iterators only once
2023-02-14 ldionne.2 [runtimes] Rename newconfig.py to config.py -- it's not new anymore
2023-01-24 hui.xie0621 [libc++][NFC] update Range Status for the completion of C++20 ranges
2023-02-14 koraq [libc++][doc] Sets the proper plenary date.
2023-02-02 koraq [libc++][format] Fixes test failures.
2022-03-20 koraq [libc++][chrono] Add hh_mm_ss formatter.
2023-02-12 koraq [libc++][doc] Adds Issaquah papers and issues.
2023-02-09 arthur.j.odwyer [libc++] Counter<T>'s assignment operator shouldn't ++gConstructed
2023-01-20 nikolasklauser [libc++] Enforce formatting for already formatted and new files and ignore the formatting of tests
2023-02-13 avogelsgesang [libc++][NFC] Remove duplicated line from `Cxx20Issues.csv`
2023-02-13 koraq [libc++][doc] Updates format status page.
2023-02-03 ldionne.2 [libc++] Reorganize exception_guard
2023-02-13 hans Revert "[libc++] Remove _LIBCPP_CONSTEVAL"
2023-02-10 ldionne.2 [libc++] Fix bug in allocate_shared_for_overwrite
2023-02-07 ldionne.2 [libc++] Implement P2136R3 std::invoke_r
2022-12-26 nikolasklauser [libc++] Granularize <type_traits> includes in <algorithm>
2022-08-04 avogelsgesang [libc++][spaceship] Implement `lexicographical_compare_three_way`
2023-02-12 avogelsgesang [libc++][NFC] Fix formatting in ranges status page
2023-02-11 hui.xie0621 [libcxx][ranges] mark new join view tests unsupported without experimental flag
2023-02-05 hui.xie0621 [libc++] fix `shared_ptr`'s incorrect constraints
2023-02-10 nikolasklauser [libc++] Enable radability-identifier-naming for local variables and fix any problems
2023-02-11 ldionne.2 [libc++][NFC] Reorganize the std::pair constructor tests to be more consistently named
2023-02-11 ldionne.2 [libc++][NFC] Change some std::pair tests from .compile.fail.cpp to .verify.cpp
2023-02-11 nikolasklauser [libc++] Remove _LIBCPP_CONSTEVAL
2023-02-11 ldionne.2 [libc++][NFC] Fix leftover #endif comments
2023-02-11 ldionne.2 [libc++][NFC] Use using instead of typedef in pair.h
2023-02-11 ldionne.2 [libc++][NFC] Always define __non_trivially_copyable_base in pair.h
2023-02-11 ldionne.2 [libc++][NFC] Use std:: instead of _VSTD:: in pair.h
2023-02-11 ldionne.2 [libc++][NFC] Use >= 23 instead of > 20 in pair.h
2023-02-11 ldionne.2 [libc++][NFC] Use std:: instead of _VSTD:: in construct_at.h
2023-02-04 hui.xie0621 [libc++][ranges] move all range iterators back in class
2023-01-28 hui.xie0621 [libcxx][ranges] revert join_view::iterator and sentinel to be in-class
2023-02-10 ldionne.2 [libc++] Remove unused std::function test
2023-02-10 ldionne.2 [libc++] Simplify non_default_alloc
2023-02-10 varconst [libc++] In tests, use `abort` to terminate upon an error.
2023-02-09 ldionne.2 [libc++][NFC] Reorganize hash.h
2023-02-09 ldionne.2 [libc++] Guard the fix to CityHash behind ABI v2

Roll buildtools/third_party/libc++abi/trunk/ b74d77161..f7460fc60 (4 commits)

b74d771611..f7460fc60a

$ git log b74d77161..f7460fc60 --date=short --no-merges --format='%ad %ae %s'
2023-02-16 nemanja.i.ibm [libunwind][PowerPC] Fix saving/restoring VSX registers on LE systems
2023-02-15 xingxue [libc++abi][AIX] Skip non-C++ EH aware frames when retrieving exception object
2023-02-14 ldionne.2 [runtimes] Remove duplicate imports of libcxx.test.config
2023-02-14 ldionne.2 [runtimes] Rename newconfig.py to config.py -- it's not new anymore

Roll testing/ d5ea1bf4b..166db27fd (82 commits)

d5ea1bf4b6..166db27fd0

$ git log d5ea1bf4b..166db27fd --date=short --no-merges --format='%ad %ae %s'
2023-02-17 bookholt Command buffer fuzzer
2023-02-17 chikamune Update FindRegistrationImprovements in fieldtrial_testing_config
2023-02-17 chikamune Add service-worker-only feature param to fieldtrial_testing_config.json
2023-02-17 zhiyuans [Test Reduction in Clank] Move android_browsertests to CI only on android-nougat-x86-rel.
2023-02-17 haowoo Turn off xr_browser and context_browser tests when running w/o field trial config.
2023-02-17 khalidpeer [ZPS] Update field trial testing config for ZPS + Journeys integration.
2023-02-17 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M112
2023-02-17 jiesheng Add iOS build target
2023-02-16 crisrael [Eche] Enable EcheLauncherListView for dogfooders and new experiment arm
2023-02-16 manukh [omnibox][post-ac] Clean stripped URL optimizations.
2023-02-16 manukh [omnibox][post-ac] Clean `kAutocompleteStabilityAsyncProvidersFirst`.
2023-02-16 battre Roll Flatbuffers to version a56f9ec50e908362e20254fcef28e62a2f148d91
2023-02-16 jonfan Increase shard timeout of chrome_all_tast_tests on chromeos-kevin-chrome.
2023-02-16 manukh [omnibox][post-ac] Clean `kAutocompleteStabilityDontCopyDoneProviders`.
2023-02-16 bpastene Move linux-headless-shell-rel's tests to bionic
2023-02-16 manukh [omnibox][drive][doc] Clean ASO (Apps Search Overlay).
2023-02-16 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M112
2023-02-16 shuyng Revert "[RDSD] Launch subdomain settings on ToT"
2023-02-16 pasko Remove @FlakyTest from docs
2023-02-16 jleconte [WebRTC] Use run_blink_web_tests instead of run_wpt_tests.
2023-02-16 dgn Reland "[fyfre] Enable the ForYouFre feature in fieldtrial_testing_config"
2023-02-16 esalma [PolicyLogs] Enabling PolicyLogsPageAndroid flag in Test Config
2023-02-16 jonahr Test dual-GPU path for high-performance WebGL contexts on Mac/Metal.
2023-02-16 jleconte Update tryserver.webrtc.json ownership.
2023-02-16 fleimgruber Enable AutofillImprovedLabelForInference by default.
2023-02-16 jleconte [WebRTC] Add a new 'webrtc_linux_chromium' bot.
2023-02-16 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M112
2023-02-16 yyanagisawa Add fieldtrial_testing_config for the start service worker case.
2023-02-16 zhiyuans [Test Reduction in Clank] Move content_shell_test_apk to CI only on android-12-x64-rel.
2023-02-16 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M110
2023-02-15 manukh [journey] Update fieldtrial_testing_config.json for hiding visits.
2023-02-15 sunxiaodi add Android Pixel6 PGO to Pinpoint
2023-02-15 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M112
2023-02-15 mdjones Add field trial entry for shopping list on iOS
2023-02-15 ynovikov Remove experimental GPU ChromeOS bots.
2023-02-15 schwering Revert "[Autofill] Enable AutofillParseAsync by default"
2023-02-15 yuezhanggg Add field trial config for ChromeCartDomBasedHeuristics
2023-02-15 hans Run ClangToT Windows tests on Win 10
2023-02-15 jleconte [WebRTC] Disable baremetal tests requiring a webcam on Mac.
2023-02-15 jleconte [WebRTC] Align the tests between Chromium and Chromium FYI bots.
2023-02-15 schwering [Autofill] Enable AutofillParseAsync by default
2023-02-15 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M112 M111 M111 M109
2023-02-15 zhiyuans [M Deprecation] android-asan builder.
2023-02-15 svenzheng Add linux-lacros-archive-rel builder
2023-02-15 chrome-weblayer-builder [lacros skew tests] Refresh skew tests for M112
2023-02-14 nickdiego properly disable KeyboardLock tests in unsupported platforms
2023-02-14 adamta [iOS] Stop feed top section coordinator and make fieldtrial compact
2023-02-14 hypan Green chrome_public_unit_test_apk on android 12l, 13
2023-02-14 svenzheng Add a service account to OWNER for chromium.coverage.json
2023-02-14 manukh [omnibox][shortcut] Update fieldtrial_testing_config.json.
2023-02-14 khaslett Cleanup configs referencing EnableOverlayPrioritization feature
2023-02-14 jw.jung Remove flag chromeos-sharing-hub
2023-02-14 peilinwang [Cleanup] Remove kNotifyJavaSpuriouslyToMeasurePerf config
2023-02-14 huangs Revert "[fyfre] Enable the ForYouFre feature in fieldtrial_testing_config"
2023-02-14 skylab-test-cros-roller [skylab_tests] Update skylab tests cros img version
2023-02-14 dgn [fyfre] Enable the ForYouFre feature in fieldtrial_testing_config
2023-02-14 snehanagpaul [URLFiltering] Field Trial Testing Config for Url Filtering
2023-02-14 droger [signin] Enable InteractiveGetAuthTokenCheckActivity in trial config
2023-02-14 lazzzis Add fieldtrial entry for message stacking animation
2023-02-14 zhiyuancai [MerchantTrust] Post-launch cleanup
2023-02-13 manukh [omnibox][memories][post-ac] Update fieldtrial_testing_config.json.
2023-02-13 nicolasmacbeth [Field Trial][Blue dot] Adding Blue Dot DB experiment to config
2023-02-13 elainechien [RenderText] Add feature flag to remove fontlink fallbacks.
2023-02-13 rmhasan Move the add_emulator_args function to the common.py module
2023-02-13 zbikowski Switch Webview CTS archive revision to 3pp-built
2023-02-13 treib Add fieldtrial_testing_config entry for SyncEnableHistoryDataType
2023-02-12 rmhasan Remove redundant emulator arguments being added in the finch smoke tests
2023-02-11 xiaolingbao Use mixin to customize updater builders/testers.
2023-02-10 hypan Green android_browsertests, content_browsertests on android 12l, 13
2023-02-10 michaelfsun Add Floss to field trial config
2023-02-10 ryansturm Add field trial for PrewarmLookalikeCheck
2023-02-10 jeffyoon Win10 coverage tests to run on Win10
2023-02-10 rmhasan Finch: Crop away the bottom navigation bar from screenshots
2023-02-10 ryansturm Adding field trial testing for SearchPrefetchOnlyAllowDefaultMatchPreloading
2023-02-10 agrieve Add test preventing internal code in libmonochrome.so
2023-02-10 yueshe shard ios_chrome_web_eg2tests_module in 2 for ios_eg2_tests
2023-02-10 skylab-test-cros-roller [skylab_tests] Update skylab tests cros img version
2023-02-10 rayankans [WebEngine] Add instrumentation and junit tests to CQ
2023-02-10 curranmax Enable PrefetchUseContentRefactor by default on desktop.
2023-02-10 manukh [omnibox][domain] Update fieldtrial_testing_config.json.
2023-02-09 christianxu [iOS] Add Suggestions truncation fieldtrial config
2023-02-09 haowoo Increase shards for android field trial tests as they are timing out.

Roll third_party/catapult/ 37e879a7d..c1e70d412 (17 commits)

https://chromium.googlesource.com/catapult.git/+log/37e879a7d13c..c1e70d412ce0

$ git log 37e879a7d..c1e70d412 --date=short --no-merges --format='%ad %ae %s'
2023-02-16 sunpeng Add metrics for pinpoint job status and run time
2023-02-16 ianstruiksma update wpr and httparchive go binary versions.
2023-02-16 ianstruiksma Update presubmit scripts to python3.
2023-02-14 wenbinzhang [chromeperf] add GET endpoints for perf issue service
2023-02-14 bsheedy Add A23-specific workaround
2023-02-14 ianstruiksma In update wpr binary script, ensure cs version is regular str.
2023-02-14 wenbinzhang [chromeperf] add try jobs for issue_tracker_service folder
2023-02-14 bsheedy Omit useless frames from summary
2023-02-14 sunxiaodi include Android Pixel 6 PGO isolate
2023-02-14 sunxiaodi Surface iteration recommendations for press benchmark on Pinpoint UI
2023-02-14 zhiyuans Make GetCurrentUser also works for Android versions Nougat.
2023-02-09 olivf Fix histograms2csv on Python 3
2023-02-13 bsheedy Update async intent waiting
2023-02-13 wenbinzhang [chromeperf] update folder structure and add unit tests
2023-02-12 johnchen Update a unit test to remove Python dependency
2023-02-09 wenbinzhang [chromeperf] add skeleton for the perf bug manager
2023-02-09 wenbinzhang [catapult] use python3 instead of python to remove stale files in windows trybot

Roll third_party/googletest/ b73f27fd1..7a7231c44 (4 commits)

b73f27fd16..7a7231c442

$ git log b73f27fd1..7a7231c44 --date=short --no-merges --format='%ad %ae %s'
2023-02-16 absl-team Fix link in ReportUninterestingCall message
2023-02-15 absl-team Remove strdup usage
2023-02-14 absl-team Remove some filesystem APIs and tests under !GTEST_HAS_FILE_SYSTEM
2023-02-13 absl-team Avoid reliance on <any> header without RTTI on MSVC

Roll tools/clang/ fff7f04d3..effd9257d (5 commits)

fff7f04d30..effd9257d4

$ git log fff7f04d3..effd9257d --date=short --no-merges --format='%ad %ae %s'
2023-02-17 tkent Update two OWNERS files
2023-02-16 szager Filter for complete class definitions in StackAllocatedChecker
2023-02-16 ahijazi Clang plugin: Add basic check for fields that should be raw_ref<T>
2023-02-14 hans Roll clang+rust llvmorg-16-init-17653-g39da55e8-3 : llvmorg-17-init-2082-g6d4a674a-1 / [skipping Rust]
2023-02-14 ajgo Exclude pointer members in //sandbox/win that do not need raw_ptr<>

Created with:
  roll-dep build buildtools buildtools/third_party/libc++/trunk buildtools/third_party/libc++abi/trunk testing third_party/catapult third_party/googletest tools/clang

Change-Id: Ic0fb8374a412b511a84c7f1c3c25b072ccd30ba0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120360
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-18 00:39:01 +00:00
dan sinclair e4039c76c7 Move the Extension builtin to the builtin/ folder.
This CL moves Extension from ast:: to builtin::

Change-Id: Ica1e6f4f9229341b547011389d47ae3be9830b0d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120362
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-17 21:58:59 +00:00
dan sinclair 6392579ee1 Move BuiltinValue to builtin/
This CL moves the BuiltinValue enum to the builtin/ folder.

Change-Id: I9db5128c1bc272e8e8d5181d629e6724ac38322e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120361
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-17 21:56:35 +00:00
Austin Eng 7616dcb060 Add Toggle to use temp buffer in T2T copy with different dimensions
Bug: dawn:1216
Change-Id: I0fb7400af1bfeb5b05fd926c0b175421560f0c78
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120100
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Austin Eng <enga@chromium.org>
2023-02-16 23:36:40 +00:00
Corentin Wallez 5860a14591 Use the correct Validation/InternalError status for CreatePipelineAsync
Bug: chromium:1404422
Change-Id: I88d354688d2a0c39be120919a8ea4b234ce9c9af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119460
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2023-02-16 19:44:05 +00:00
dan sinclair be967e31fc Add JSON output to tint_info.
This CL adds a `--json` output to the `tint_info` command to generate a
JSON file of the WGSL program information.

Change-Id: I8cdd9675954f793fc7142d857f846a18f4a07ffc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120082
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-02-16 19:22:19 +00:00
Yan,Shaobo 86fbd1a7de Refactor Semaphore Service In Vulkan Backend
Dawn provides external semaphore service in static way by compiling
implementation files based on OS type.

A better way is to select external semaphore in runtime.

This CL adds ServiceImplementation interface and implements it for
different semaphore type. Semaphore service delegate work to
implementation in runtime.

This CL also removes "DAWN_USE_SYNC_FD" macro.

Bug=dawn:1593

Change-Id: Idc3f7b644430aad76198ef66dc5ba13e8cfc5a4d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119321
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
2023-02-16 13:49:23 +00:00
Austin Eng 79d971f093 Blocklist D3D12 adapters on ARM CPUs
This platform still has undiagnosed errors. Blocklisting for V1.

Bug: dawn:884
Change-Id: I83c51f48732ace5c3c4b16ee9906af0d8a3cccdb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/120080
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-02-16 00:44:36 +00:00
Yunchao He 81cf894075 Unsuppress e2e test in ColorStateTests
Bug: dawn:1625

Change-Id: I437c37b2a7749d37ee1f922061b4c7038d5e3ec5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119980
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-15 19:25:35 +00:00
Austin Eng 70607cb160 Refine d3d12 blocklist from X86 -> I386
This was wrong.
DAWN_PLATFORM_IS_X86 is defined for both 32-bit and 64-bit
X86 builds.

Bug: dawn:1254
Change-Id: I308ac10749edcf76643539eb2801d019dd5439f9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119900
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-15 17:59:26 +00:00
dan sinclair 95dc1ad060 Remove duplicated AST and SEM headers in BUILD.gn
This CL updates the BUILD.gn script to have a dedicated AST headers
target. This can then be depended on by the AST, SEM and program target.

Change-Id: I0fd3a9eb3bffbf5b7d76eee3d44109ee5c5df431
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119903
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-15 04:37:30 +00:00
dan sinclair 6080471662 Split demangler to separate lib.
This Cl splits the demangler out to a separate library. The includes for
demangler in program and program_builder are removed as they are no
longer necessary.

Change-Id: I0d4a3e8ec537d596a99cdd1fd1000b3efea20714
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119902
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-15 04:35:01 +00:00
dan sinclair 6e8a23097a Cleanup some includes.
Remove some ast/ includes of sem/ files and remove some program_builder
includes from sem/ files. The AST->SEM includes were not needed, the
program_builder include was replaced with more specific AST headers.

Change-Id: I8cf7fdee311a87687a5737853caff0ac082c9ba6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119901
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-02-15 02:35:32 +00:00
Ben Clayton 727503d205 tint/resolver: Pass std::function by ref
Avoids a copy

Change-Id: Ief4e7985b41c50f102be27a8a3fa9a690166511f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/116868
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-02-14 18:09:17 +00:00
Antonio Maiorano ee665a4240 tint: add precise float mod polyfill and enable it for HLSL
HLSL's % operator results in less precise results than expected.

Bug: tint:1799
Change-Id: I1a9572288a0e536f0fc9c0748a25dcf58551e57b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119760
Kokoro: Kokoro <noreply+kokoro@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2023-02-14 16:12:59 +00:00
Ben Clayton 971318f7a2 tint: Replace all remaining AST types with ast::Type
This CL removes the following AST nodes:
* ast::Array
* ast::Atomic
* ast::Matrix
* ast::MultisampledTexture
* ast::Pointer
* ast::SampledTexture
* ast::Texture
* ast::TypeName
* ast::Vector

ast::Type, which used to be the base class for all AST types, is now a
thin wrapper around ast::IdentifierExpression. All types are now
referred to using their type name.

The resolver now handles type resolution and validation of the types
listed above based on the TemplateIdentifier arguments.

Other changes:
* ProgramBuilder has undergone substantial refactoring.
* ProgramBuilder helpers for type inferencing is now more explicit.
  Instead of passing 'nullptr', a new 'Infer' template argument is
  passed.
* ast::CheckIdentifier() is used for more tests that check identifiers,
  including types.

Bug: tint:1810
Change-Id: I8e739ef49435dc1c20a462f3ec5ba265661a7edb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118723
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2023-02-14 13:52:43 +00:00
Ben Clayton 03b09f1099 tint/sem: Add FunctionExpression
Will be generated for expressions that resolve to functions.

Bug: tint:1810
Change-Id: I334729c9499be7b1c4ab229c1845a4d5f06fa107
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119701
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2023-02-14 00:33:43 +00:00
Jiawei Shao 7c2fa23a7e Implement the optional feature "bgra8unorm-storage" on D3D12
This patch adds the support of the optional feature "bgra8unorm-storage"
on D3D12 when the platform allows using DXGI_FORMAT_B8G8R8A8_UNORM as
UAVs.

According to D3D12 documents, enabling the flag
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS when creating textures requires
"either the texture format must support unordered access capabilities at
the current feature level. Or, when the format is a typeless format, a
format within the same typeless group must support unordered access
capabilities at the current feature level".

Bug: dawn:1641
Test: dawn_end2end_tests
Change-Id: If16271b5da52423e73ad4f7ba258af83dbf66dd2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119345
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-02-14 00:29:52 +00:00
Jiawei Shao 01456d97ea Implement the optional feature "bgra8unorm-storage" on Vulkan
This patch implements the optional feature "bgra8unorm-storage" on
Vulkan. As SPIR-V doesn't support 'bgra8' as a valid image format,
we have to create an image view with RGBA8Unorm format on the
BGRA8Unorm texture when we want to use it as a storage texture.

Bug: dawn:1641
Test: dawn_end2end_tests
Change-Id: I4aeea96ae872fe4e6367c535afb6ab896b952453
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118021
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-02-14 00:27:34 +00:00
Ben Clayton a5b9e96b39 tint/reader/spirv: Work around pointers to null store types.
Bug: tint:1838
Change-Id: I84564a1b9888634808af2a1c7bb1e77c80947216
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119700
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2023-02-13 21:22:21 +00:00
Austin Eng 151913d29b VideoViewsTests: add test which uses a sampler per plane
This test sees flaky failures.
 - Check the entire checkerboard texture contents to get more
information.
 - Add a test which uses seperate sampling states to see if DX12
driver has difficulty sampling multi-planar formats using a
single sampler.
 - Also, double check support for the NV12 format in case
something in the driver flakily exposes support.

From https://dawn-review.googlesource.com/c/dawn/+/47660

Bug: dawn:733
Change-Id: I766907ff648f1dc35387902a70c3fb65debcaecd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119343
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Austin Eng <enga@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
2023-02-13 18:35:04 +00:00
Austin Eng 44032e5084 Unblock multi-mip stencil textures on Metal
These textures still have some outstanding issues on both Intel and AMD,
where the wrong subresource can be read from.
Zero-initialization workarounds have been enabled to ensure that even
when the wrong subresource is read, uninitialized data is not read.

Bug: dawn:704, dawn:791, dawn:838
Change-Id: Ib118eff0c5ed5e7812fa70e88ece5317c1af13b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/116849
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-02-13 18:04:00 +00:00