Commit Graph

9135 Commits

Author SHA1 Message Date
James Price eb39420ae6 reader/wgsl: Add support for block comments
Handles nested block comments.

Allow unterminated block comments at EOF, as it is not clear whether
WGSL will allow this or not.

Bug: tint:881
Change-Id: Ieae4e0073dab69f773adb32018a9bdaf4f352116
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59180
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-07-22 14:41:37 +00:00
Ryan Harrison 18d7e785d3 Fuzz WGSL and MSL generator options
BUG=tint:973

Change-Id: I94dc136444e9650dcf3d1c81a52e6d4491b21a16
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59221
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-07-22 13:25:54 +00:00
Ben Clayton 4ffcf067a3 sem: Add Owner() to sem::Parameter
Change-Id: I3de1e2437b9604378b8368494363e19070443670
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59201
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2021-07-22 13:24:59 +00:00
Ben Clayton 0f2d95dea3 sem: Split sem::Variable into global, local and parameter
Each of these may contain information specific to their kind.

Change-Id: Ic8ac808088132b7bc2e43da6ce46a06571e0fed5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59200
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2021-07-22 13:24:59 +00:00
Dawn Autoroller f844ff071c Roll Tint from fe3ba95e6a to 66b979d7fb (1 revision)
https://dawn.googlesource.com/tint.git/+log/fe3ba95e6a46..66b979d7fb75

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

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: cwallez@google.com
Change-Id: I47c799263b2b9e8c1591619a29d0e1fdff99ffee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59260
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-22 12:44:00 +00:00
Corentin Wallez e9c8225f54 Implement render pipeline vertex format base type validation.
Bug: dawn:1008

Change-Id: I04d1ff1d46c1106147a8c50415c989db5789cbfc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59031
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-07-22 11:43:10 +00:00
Alastair Donaldson 66b979d7fb Override CMake cache for fuzzer options
Enabling particular fuzzers requires that certain other CMake options
are enabled. For example, enabling the SPIR-V Tools fuzzer requires
enabling the CMake option for building spirv-fuzz. This change uses the
FORCE parameter to force the CMake cache to be overridden in such cases.
The change also adds FORCE to other options where it seems appropriate,
and improves some doc strings associated with CMake options.

Fixes: tint:1024
Change-Id: Ia72ddc0b3af625bb21ff1cc1c7121185ec3908b6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59204
Auto-Submit: Alastair Donaldson <afdx@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Vasyl Teliman <vasniktel@gmail.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
2021-07-22 10:14:34 +00:00
Corentin Wallez 1384e8b163 Replace VertexFormatUtils with a dawn_native table of formats
This replaces multiple switches with a single indexing into a data
table, and also adds information about the VertexFormatBaseType for
later validation.

Bug: dawn:1008
Change-Id: Ic3f564b0dc571cc0008a54785613f962ce223452
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59030
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
2021-07-22 08:57:29 +00:00
Dawn Autoroller c607e81de2 Roll Tint from 81d4ed0d9c to fe3ba95e6a (1 revision)
https://dawn.googlesource.com/tint.git/+log/81d4ed0d9c0e..fe3ba95e6a46

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

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: cwallez@google.com
Change-Id: I282f833822d59b3804bb5df0db39e749de445fa5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59142
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-21 22:49:09 +00:00
Ken Rockot 2d41f8c1df Enforce per-dimension dispatch size limits
Note that this is for direct dispatch calls only. Indirect dispatch
calls are still not validated.

Bug: dawn:1006
Change-Id: I061c15208a01dfb803923823ba4afd38667cad22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59122
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
2021-07-21 20:44:09 +00:00
Ken Rockot 59668e95c7 Validate workgroup size and storage requirements
We define hard limits on these attributes for compute stages. This
enforces them.

BUG: dawn:322
Change-Id: I9b279774e877b5d40d912cb9f812f23d61c20a42
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/56806
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-07-21 20:19:20 +00:00
Ben Clayton fe3ba95e6a inspector: Use diagnostic lists
Instead of concatenating to a string

Change-Id: Ib70bba2b0dbf9fcb04a232e0e78d3b576ab3ba88
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59203
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-07-21 19:34:03 +00:00
Austin Eng e50f8c65b7 Skip BufferZeroInitTests.ResolveQuerySet if not on MacOS 10
Bug: dawn:940
Change-Id: I830cebf2247b65ea0be58a10e02fbcc0542ff73b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59040
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-07-21 18:34:19 +00:00
Brian Ho 4d94647e1f Vulkan: Export VkSemaphores as SYNC_FDs instead of OPAQUE_FDs
For Dawn/Chrome interop, Chrome OS differs from Linux as it uses the
NativePixmap-based SharedImageBacking which stores image memory as
dma-bufs as opposed to opaque FDs. Likewise, for synchronization,
Chrome OS wants to use sync obj FDs as opposed to opaque FDs for
more flexibility.

The motivating difference between sync obj FDs and their opaque
counterparts is how they are created. As their name suggests, Opaque
FDs are mostly meaningless outside of the Vulkan ecosystem and must
be created from a VkDevice. As a result, Linux’s
ExternalVkImageBacking needs the Vulkan implementation to create the
FD even when accessing the SharedImage as a GL texture [1]. On Chrome
OS, however, we don’t guarantee Vulkan outside of Dawn, so we aren’t
able to create the opaque FD directly in Chrome.

Instead, we are always able to create sync objs (e.g. via a
fence [2]) which can be imported as VkSemaphores by simply changing
VkImportSemaphoreFdInfoKHR::handleType. Similarly, we can export
signal VkSemaphores as sync objs as well by updating
VkSemaphoreGetFdInfoKHR::handleType.

This CL adds conditional support for using SYNC_FDs on Chrome OS
when importing/exporting VkSemaphores and renames
SemaphoreServiceOpaqueFD accordingly. With this, we can properly
wait on reads/writes on a GL SharedImage representation before
accessing the same memory in Dawn [3].

[1] https://source.chromium.org/chromium/chromium/src/+/main:gpu/command_buffer/service/external_vk_image_gl_representation.cc;l=75;drc=f887797b3b527feabd5dfe9b3f2cc7f6deade49f
[2] https://source.chromium.org/chromium/chromium/src/+/main:gpu/command_buffer/service/shared_image_backing_gl_image.cc;l=681;drc=f887797b3b527feabd5dfe9b3f2cc7f6deade49f
[3] https://chromium-review.googlesource.com/c/chromium/src/+/3042460

BUG=b:172208313
Change-Id: I5357847fea40e41d1b982054e3573d363e17530c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59080
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
2021-07-21 17:49:20 +00:00
Dawn Autoroller c635acdfba Roll Tint from f3fffdaded to 81d4ed0d9c (5 revisions)
https://dawn.googlesource.com/tint.git/+log/f3fffdaded4b..81d4ed0d9c0e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

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: cwallez@google.com
Change-Id: I611b64ae52580ba4f2cf826496636e3ea2d9bb2c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59141
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-21 17:28:49 +00:00
Ben Clayton 909a3c3ccf Add toggles: disable_workgroup_init, disable_symbol_renaming
--disable_workgroup_init will disable the workgroup memory zero initiailization. Useful for benchmarking.

--disable_symbol_renaming will disable tint's symbol renamer. Useful for debugging output.

Bug: tint:1003
Fixed: dawn:1016
Change-Id: I92486ef88a2c1112d9ccb40f7920947bd2011c70
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58861
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-07-21 16:31:30 +00:00
Dawn Autoroller 18f63b4e16 Metal: Handle failure to allocate an MTLCommandBuffer
This requires restructuring the logic around MTLCommandBuffer allocation
so that GetPendingCommandContext is guaranteed to never fail. Logic in
the Metal backend is now similar to the Vulkan backend: the
MTLCommandBuffer is prepared at device initialization time, or after a
submission, such that it is always valid.

A new mUsed boolean is added to CommandRecordingContext to say whether
any commands have been recording. Previously mCommandBuffer was used for
that purpose, but it is now always non-null.

Bug: dawn:801

Change-Id: I5dc6747d1e6d538054010cc50533a03a49af921a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58720
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-07-21 15:41:29 +00:00
Ben Clayton 81d4ed0d9c Fix operator% for f32 and vecN<f32>
https://github.com/gpuweb/gpuweb/pull/1945 changes the SPIR-V mapping of this operator so that it now maps to OpFRem instead of OpFMod. Polyfill OpFMod with `x - y * floor(x / y)`

Also map the MSL output of this operator to use `fmod()`.

Behavior of this operator is now consistent across all backends.

Fixed: tint:945
Fixed: tint:977
Fixed: tint:1010
Change-Id: Iefa009b905989c55ace24e073ab0e261c7cf69b0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58393
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-07-21 14:11:01 +00:00
Ben Clayton f50c22b998 .vscode: Fix quotations in windows 'gn gen' task
It seems the tweaks to always force "cmd" to be the shell seemingly changes the way single quotes are handled.  ¯\_(ツ)_/¯

Change-Id: I434066591c968fdfc055a75fa22b7f4c2585b482
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59029
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-07-21 14:07:49 +00:00
Ben Clayton 1ec484410a .vscode: Fix quotations in windows 'configure' task
It seems the tweaks to always force "cmd" to be the shell seemingly changes the way single quotes are handled.  ¯\_(ツ)_/¯

Change-Id: I82310bc798b0dc5af8a4e53886110ef2c6468a97
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59028
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-07-21 13:24:21 +00:00
Alastair Donaldson 8800ba091d Fix assertion strings and tidy up memcpy call
These changes were intended for submission as part of 58386.

Change-Id: I23f7ada1e8940dce6855176724ade1f2bb7687f8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59024
Auto-Submit: Alastair Donaldson <afdx@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
2021-07-21 13:23:51 +00:00
Ben Clayton 7ec7794046 Remove accidental commit
Change-Id: Ied931db182c11f26bffda4900641e41a1e9b5ee8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59027
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-07-21 12:37:31 +00:00
Sarah a4696681eb validation: invariant attribute on struct members
Bug: tint:1008
Change-Id: If3c398b01952f6b482c60cf86ab8ddf724d385a9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59060
Auto-Submit: Sarah Mashayekhi <sarahmashay@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-07-21 12:16:35 +00:00
Dawn Autoroller 7dbda40209 Roll Tint from 36b49e8834 to f3fffdaded (1 revision)
https://dawn.googlesource.com/tint.git/+log/36b49e8834f2..f3fffdaded4b

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

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: cwallez@google.com
Change-Id: Ifda5c1098c5434b000207a6a735263c6302bb803
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59140
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-21 11:14:49 +00:00
Ben Clayton f3fffdaded Build fixes
fuzzer: GetErrors() was replaced with Diagnostics()
remote-compile: Add missing header for macOS
Change-Id: I7697fd41b3cc4e3b59e10a6c395d610a51ec8daf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59025
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
2021-07-21 09:40:41 +00:00
Corentin Wallez 03f9437ae8 Metal: Handle failures in Texture and TextureView creation.
This includes OOM as well as internal driver failures when
creating a view of an MTLTexture. This required changing the code to use
the Create-Initialize pattern used everywhere else.

Bug: dawn:801

Change-Id: Ib8a8dec74141aacfa58a55bb8201a83351b3b739
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58721
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-07-21 09:34:28 +00:00
Zhaoming Jiang 28497129d5 Fix memory issues in logging callback
1. Trigger all deferred callback tasks before registering a new
device-level callback function, making sure that these tasks won't be
invalided due to callback function changing;
2. Fix the end to end testsuit DeviceLostTests, setting the device lost
callback at the beginning of each test so that callback tasks created
during the test will not be triggered unexpectedly.

Bug: chromium:1223390
Bug: chromium:1223603
Bug: chromium:1228134
Change-Id: I2530e938d8fbb2920f3cc6fc78baa01c5d18ad5d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/56040
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2021-07-21 08:59:09 +00:00
Jiawei Shao 46513c7810 Add validation to the maximum inter-shader stage variable location
This patch adds the validation rules on the maximum inter-shader
stage variable locations. According to Vulkan SPEC, "Each effective
Location must have a value less than the number of location avaiable for
the given interface", and according to Table 18 "Shader Input and Output
Locations", the number of available vertex output locations is
maxVertexOutputComponents / 4, and the number of available fragment input
locations is maxFragmentInputComponents / 4.

BUG=dawn:802
TEST=dawn_unittests

Change-Id: I73a66ad69c808fbd0b128abaed1ca84f19a7925d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58640
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-07-21 08:26:58 +00:00
Dawn Autoroller 8bee260b74 Roll Tint from 0c7332b2ba to 36b49e8834 (1 revision)
https://dawn.googlesource.com/tint.git/+log/0c7332b2baf5..36b49e8834f2

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

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: cwallez@google.com
Change-Id: I764ad9a990cd6f4c622b7a720964be82b2b5b43b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59120
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-21 04:52:13 +00:00
Sarah 36b49e8834 validation: fix error msg: textureSample*() offset must be a const_expr
Bug: tint:1016
Change-Id: I631ac820f3174ec7ad12e51396b7584df55b27f1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59001
Auto-Submit: Sarah Mashayekhi <sarahmashay@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-07-21 03:34:34 +00:00
shrekshao ca611e3799 Clean remaining deprecated WireServer WriteHandle interface
Bug: dawn:773

Change-Id: I94f5f338c13fea063102f97ae5b1b8f995ae8991
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59043
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2021-07-20 23:26:48 +00:00
Dawn Autoroller a52d4fc4b3 Roll Tint from c41d940650 to 0c7332b2ba (15 revisions)
https://dawn.googlesource.com/tint.git/+log/c41d94065092..0c7332b2baf5

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/tint-dawn
Please CC cwallez@google.com on the revert to ensure that a human
is aware of the problem.

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: cwallez@google.com
Change-Id: I9fb6f879d1fa6f32a7b95af4142b0fc780eb5419
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59100
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-20 23:04:58 +00:00
Corentin Wallez 02a603b613 Metal: Handle potential OOM in other places.
This commit adds checks to (hopefully) all the remaining places in the
Metal backend where object creation can fail.

Bug: dawn:801

Change-Id: Ic27803e956beef822f94ca8449f7816ddd17c1bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58722
Commit-Queue: Stephen White <senorblanco@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-07-20 21:08:39 +00:00
Alastair Donaldson 0c7332b2ba SPIR-V Tools fuzzer: check binary size
Adds assertions to check that the SPIR-V Tools fuzzer is not
inadvertently applied to SPIR-V binaries of an invalid size, which
guards against the fuzzer being run in a misconfigured fashion.

The CL also moves a memcpy that populates a SPIR-V binary buffer so
that the memcpy only happens when the input really is SPIR-V. This
avoids frequent redundant memory copies when fuzzing WGSL.

Change-Id: Iafccaa107ff34941d8878ed5be72a2e6d38d0f49
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58386
Auto-Submit: Alastair Donaldson <afdx@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Alastair Donaldson <afdx@google.com>
2021-07-20 20:56:30 +00:00
Austin Eng b24e1320fc Metal: Only call UpdateTimestampPeriod if the extension is enabled
Bug: chromium:1226078
Change-Id: I75528096fe080aba4d8edd970d73e0aefa9130ee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/59041
Commit-Queue: Austin Eng <enga@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2021-07-20 20:48:10 +00:00
Ben Clayton 33afd6ce97 Revert "writer/hlsl: Special case negative zero"
This reverts commit efceb83536.

Reason for revert: Possibly broke tint -> dawn roll (again)

Original change's description:
> writer/hlsl: Special case negative zero
>
> Fixed: tint:960
> Change-Id: I04de8713fe299607f32fd93288a22b75a9dff381
> Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58760
> Reviewed-by: Ben Clayton <bclayton@chromium.org>
> Reviewed-by: James Price <jrprice@google.com>
> Commit-Queue: Ben Clayton <bclayton@google.com>
> Kokoro: Kokoro <noreply+kokoro@google.com>

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

Change-Id: Ic3042dabbd5a399851185714a6dd5e33ba8a5fc6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59023
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
2021-07-20 20:35:41 +00:00
Ben Clayton f6660aa125 tools: Add snippets tool
Gathers information about changes merged and reviewed for team weekly reports.

Change-Id: I53e3acc45679b4822c506d16980393fbaf337b3b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59022
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-07-20 20:25:38 +00:00
Ben Clayton 6e8ace016e test: Add a case for resources used through lets
A hypothetical case discussed in the WG call, which I wasn't entirely sure was going to work. It does.

Change-Id: I855f1e02af2fe62214e3fb964f6937e3d88016eb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59021
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-07-20 20:25:38 +00:00
Ben Clayton 88bd8a1690 fuzzers: Fix Reader::vector<T>()
count != size

Bug: chromium:1231169
Change-Id: I11420fd665db787546df5616ab3f884b5c972abf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59020
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2021-07-20 18:59:10 +00:00
Ryan Harrison a294371151 Add an infra specific PRESUBMIT.py
This will run the standard LUCI config checks.
These include running the validation tool, catching issues with ACLs
and remote hosts.

They do no gauarantee complete correctness, but catch common programming
errors.

Change-Id: I83a8d325d1f491bd81d1d1dc095a43a52150ef90
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59000
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
2021-07-20 18:48:26 +00:00
Antonio Maiorano 68a6dd0073 Resolver: make IsConstructible non-recursive for arrays and struct members
Also fix cases of implicit conversions of bool to int when creating
sem::Array.

Bug: tint:917
Change-Id: I5392fb737efc410f039b4dbd96cffc5daa4fd3a2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58783
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-07-20 18:28:31 +00:00
Ben Clayton 701820b1f4 writers: Add flag to disable workgroup memory init
Bug: tint:1003
Change-Id: Ia30a2c51b5d3f8c6a01bed5299eac51dc3ad6337
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58843
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-07-20 18:23:06 +00:00
Sarah 3d441d48bb validation: validate function call pointer parameter
Each argument of a function call of pointer type must be one of:
- An address-of expression of a variable identifier expression
- A function parameter
Also added source location to duplicate struct member name unittest

Bug: tint:983
Change-Id: Ic5ab010b2ed76207a1d8d3ef9f66140ea95f7e72
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58480
Auto-Submit: Sarah Mashayekhi <sarahmashay@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@chromium.org>
Commit-Queue: Sarah Mashayekhi <sarahmashay@google.com>
2021-07-20 18:14:02 +00:00
Ryan Harrison 45aed4ba2e Force Python 3 in presubmit
BUG=dawn:1015

Change-Id: I80d5afcfe3a7fc5c3c4c79d8c423ddf9578712e0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58960
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-07-20 17:57:20 +00:00
Corentin Wallez 8a140fe67a Roll third_party/vulkan-deps/ 85e758a22..df0528b58 (99 commits)
https://chromium.googlesource.com/vulkan-deps/+log/85e758a22b7a..df0528b581a1

$ git log 85e758a22..df0528b58 --date=short --no-merges --format='%ad %ae %s'
2021-07-15 chromium-autoroll Roll SPIRV-Tools from 640b17b5fbc6 to 2685c9a687b5 (1 revision)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from cb03f32776a6 to 98df0682926f (2 revisions)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from 8b83ca019c50 to cb03f32776a6 (2 revisions)
2021-07-15 chromium-autoroll Roll SPIRV-Cross from fe08bf4af440 to 6196e3b02968 (2 revisions)
2021-07-15 chromium-autoroll Roll SPIRV-Cross from be3988b13cb7 to fe08bf4af440 (1 revision)
2021-07-15 chromium-autoroll Roll Vulkan-ValidationLayers from dada63db181a to 8b83ca019c50 (2 revisions)
2021-07-14 chromium-autoroll Roll Vulkan-Loader from 15e1bbe99a09 to 99c0b1433a09 (1 revision)
2021-07-14 chromium-autoroll Roll SPIRV-Headers from ddf3230c14c7 to 1d4e3a7e3a04 (2 revisions)
2021-07-14 chromium-autoroll Roll SPIRV-Tools from 4baf3affe323 to 640b17b5fbc6 (1 revision)
2021-07-14 chromium-autoroll Roll SPIRV-Tools from feb05446bbc3 to 4baf3affe323 (1 revision)
2021-07-14 chromium-autoroll Roll SPIRV-Tools from 2299b710de6c to feb05446bbc3 (1 revision)
2021-07-13 chromium-autoroll Roll Vulkan-Loader from 7033871e47d6 to 15e1bbe99a09 (1 revision)
2021-07-13 chromium-autoroll Roll Vulkan-Tools from 8b86fbac17b9 to 33a87ce6daec (1 revision)
2021-07-13 chromium-autoroll Roll Vulkan-ValidationLayers from 27a26f525f92 to dada63db181a (2 revisions)
2021-07-13 chromium-autoroll Roll Vulkan-ValidationLayers from 607d1d974d22 to 27a26f525f92 (1 revision)
2021-07-13 chromium-autoroll Roll Vulkan-ValidationLayers from 5bdd45ecca5f to 607d1d974d22 (1 revision)
2021-07-13 chromium-autoroll Roll SPIRV-Tools from d432bebb113d to 2299b710de6c (1 revision)
2021-07-13 chromium-autoroll Roll Vulkan-ValidationLayers from 48b8e27e9de0 to 5bdd45ecca5f (2 revisions)
2021-07-13 chromium-autoroll Roll Vulkan-Loader from 8c45e953d0a8 to 7033871e47d6 (1 revision)
2021-07-13 chromium-autoroll Roll Vulkan-Loader from 550b23a566a2 to 8c45e953d0a8 (1 revision)
2021-07-13 chromium-autoroll Roll SPIRV-Cross from d42c0b2e08ef to be3988b13cb7 (2 revisions)
2021-07-13 chromium-autoroll Roll SPIRV-Cross from 1ae2b58f19a9 to d42c0b2e08ef (1 revision)
2021-07-13 chromium-autoroll Roll SPIRV-Tools from 3b6abf41cc72 to d432bebb113d (1 revision)
2021-07-12 chromium-autoroll Roll Vulkan-Loader from 8daad81803f5 to 550b23a566a2 (1 revision)
2021-07-12 chromium-autoroll Roll SPIRV-Headers from 07f259e68af3 to ddf3230c14c7 (6 revisions)
2021-07-12 chromium-autoroll Roll SPIRV-Headers from ddf3230c14c7 to 07f259e68af3 (0 revision)
2021-07-12 chromium-autoroll Roll Vulkan-Loader from 3bdb32d29f2d to 8daad81803f5 (50 revisions)
2021-07-12 chromium-autoroll Roll SPIRV-Tools from c26baf4c9308 to 3b6abf41cc72 (1 revision)
2021-07-10 chromium-autoroll Roll Vulkan-ValidationLayers from 1c0b96aec2a3 to 48b8e27e9de0 (2 revisions)
2021-07-09 chromium-autoroll Roll Vulkan-ValidationLayers from b5dd25f4cd9c to 1c0b96aec2a3 (1 revision)
2021-07-09 chromium-autoroll Roll Vulkan-ValidationLayers from 32de8039cd51 to b5dd25f4cd9c (2 revisions)
2021-07-09 chromium-autoroll Roll Vulkan-ValidationLayers from f4fb2a0b00d1 to 32de8039cd51 (30 revisions)
2021-07-08 chromium-autoroll Roll glslang from 9e707294f126 to 4b7b86d568b4 (1 revision)
2021-07-08 chromium-autoroll Roll Vulkan-ValidationLayers from 24abc3af2fa6 to f4fb2a0b00d1 (1 revision)
2021-07-08 chromium-autoroll Roll Vulkan-ValidationLayers from 7cdc779e82e9 to 24abc3af2fa6 (6 revisions)
2021-07-08 chromium-autoroll Roll Vulkan-ValidationLayers from f2912cd0f628 to 7cdc779e82e9 (2 revisions)
2021-07-07 chromium-autoroll Roll glslang from 89286ca56b3d to 9e707294f126 (1 revision)
2021-07-07 chromium-autoroll Roll glslang from ae2a562936cc to 89286ca56b3d (1 revision)
2021-07-07 chromium-autoroll Roll Vulkan-Tools from 697cc6c387fd to 8b86fbac17b9 (1 revision)
2021-07-07 chromium-autoroll Roll Vulkan-ValidationLayers from 394157ab5101 to f2912cd0f628 (1 revision)
2021-07-07 chromium-autoroll Roll SPIRV-Tools from 9ce7a2fb62eb to c26baf4c9308 (1 revision)
2021-07-06 chromium-autoroll Roll Vulkan-ValidationLayers from 054383987078 to 394157ab5101 (1 revision)
2021-07-06 chromium-autoroll Roll Vulkan-Tools from ed2740a8220e to 697cc6c387fd (1 revision)
2021-07-06 chromium-autoroll Roll Vulkan-ValidationLayers from 13930981cd40 to 054383987078 (2 revisions)
2021-07-06 chromium-autoroll Roll Vulkan-Tools from abfc71f051a6 to ed2740a8220e (1 revision)
2021-07-06 chromium-autoroll Roll Vulkan-ValidationLayers from 5b3013cba651 to 13930981cd40 (2 revisions)
2021-07-06 chromium-autoroll Roll SPIRV-Tools from 4d2832e3c8d7 to 9ce7a2fb62eb (1 revision)
2021-07-05 chromium-autoroll Roll SPIRV-Tools from 7763360524ec to 4d2832e3c8d7 (1 revision)
2021-07-05 chromium-autoroll Roll Vulkan-ValidationLayers from 39152e64829c to 5b3013cba651 (2 revisions)
2021-07-05 chromium-autoroll Roll Vulkan-Headers from a8964617af6b to 0193e158bc9f (1 revision)
2021-07-04 chromium-autoroll Roll SPIRV-Tools from a95bc460f924 to 7763360524ec (1 revision)
2021-07-03 chromium-autoroll Roll Vulkan-ValidationLayers from 406766a8440f to 39152e64829c (1 revision)
2021-07-02 chromium-autoroll Roll Vulkan-ValidationLayers from b3ab357b1a00 to 406766a8440f (1 revision)
2021-07-02 chromium-autoroll Roll Vulkan-ValidationLayers from a844c1288087 to b3ab357b1a00 (1 revision)
2021-07-02 chromium-autoroll Roll SPIRV-Tools from c67f132087b9 to a95bc460f924 (1 revision)
2021-07-02 chromium-autoroll Roll SPIRV-Tools from 06f114d48214 to c67f132087b9 (1 revision)
2021-07-01 chromium-autoroll Roll Vulkan-Tools from a7fc5ca82287 to abfc71f051a6 (1 revision)
2021-07-01 chromium-autoroll Roll Vulkan-ValidationLayers from 73452524742b to a844c1288087 (4 revisions)
2021-07-01 chromium-autoroll Roll Vulkan-ValidationLayers from 667cc02b6514 to 73452524742b (1 revision)
2021-07-01 chromium-autoroll Roll SPIRV-Tools from 74e8105eb801 to 06f114d48214 (1 revision)
2021-07-01 chromium-autoroll Roll Vulkan-ValidationLayers from 28198b569714 to 667cc02b6514 (3 revisions)
2021-06-30 chromium-autoroll Roll Vulkan-ValidationLayers from 7465dc3cb7a2 to 28198b569714 (1 revision)
2021-06-30 chromium-autoroll Roll Vulkan-Tools from 2b7d601bdaed to a7fc5ca82287 (1 revision)
2021-06-30 chromium-autoroll Roll SPIRV-Cross from bf746bd68019 to 1ae2b58f19a9 (1 revision)
2021-06-30 chromium-autoroll Roll Vulkan-Tools from 68b1feb2727e to 2b7d601bdaed (1 revision)
2021-06-30 chromium-autoroll Roll Vulkan-ValidationLayers from 4e28e6495717 to 7465dc3cb7a2 (1 revision)
2021-06-30 chromium-autoroll Roll SPIRV-Cross from c5b8022e615d to bf746bd68019 (1 revision)
2021-06-30 chromium-autoroll Roll Vulkan-Tools from aaebda90a9a8 to 68b1feb2727e (1 revision)
2021-06-29 chromium-autoroll Roll SPIRV-Tools from f9893c454940 to 74e8105eb801 (1 revision)
2021-06-29 chromium-autoroll Roll SPIRV-Tools from 8442a181294b to f9893c454940 (1 revision)
2021-06-29 chromium-autoroll Roll SPIRV-Tools from eeff9af1e6e1 to 8442a181294b (1 revision)
2021-06-29 chromium-autoroll Roll SPIRV-Tools from b8587c984a93 to eeff9af1e6e1 (1 revision)
2021-06-29 chromium-autoroll Roll SPIRV-Cross from 853e84e8bff8 to c5b8022e615d (1 revision)
2021-06-29 chromium-autoroll Roll SPIRV-Cross from 9338996f3b2b to 853e84e8bff8 (1 revision)
2021-06-28 chromium-autoroll Roll Vulkan-ValidationLayers from 01cf24db1331 to 4e28e6495717 (1 revision)
2021-06-28 chromium-autoroll Roll SPIRV-Tools from 4fcdc5894676 to b8587c984a93 (1 revision)
2021-06-28 chromium-autoroll Roll Vulkan-Tools from 8926213dd008 to aaebda90a9a8 (1 revision)
2021-06-28 chromium-autoroll Roll SPIRV-Tools from 237173a07083 to 4fcdc5894676 (1 revision)
2021-06-28 chromium-autoroll Roll Vulkan-ValidationLayers from c09be02a362f to 01cf24db1331 (2 revisions)
2021-06-28 chromium-autoroll Roll SPIRV-Tools from 8cc8b6562be9 to 237173a07083 (1 revision)
2021-06-28 chromium-autoroll Roll SPIRV-Cross from 31490955852b to 9338996f3b2b (1 revision)
2021-06-28 chromium-autoroll Roll SPIRV-Cross from 9cdeefb5e322 to 31490955852b (1 revision)
2021-06-28 chromium-autoroll Roll Vulkan-Headers from 37164a5726f7 to a8964617af6b (1 revision)
2021-06-25 chromium-autoroll Roll Vulkan-ValidationLayers from 6fbf8245095e to c09be02a362f (1 revision)
2021-06-25 chromium-autoroll Roll Vulkan-ValidationLayers from 7345a069cca3 to 6fbf8245095e (1 revision)
2021-06-25 chromium-autoroll Roll Vulkan-ValidationLayers from 968b6094907e to 7345a069cca3 (1 revision)
2021-06-25 chromium-autoroll Roll Vulkan-ValidationLayers from bfe4822f0d97 to 968b6094907e (1 revision)
2021-06-25 chromium-autoroll Roll Vulkan-ValidationLayers from 16266c388370 to bfe4822f0d97 (2 revisions)
2021-06-24 chromium-autoroll Roll SPIRV-Tools from 3a02d1126872 to 8cc8b6562be9 (1 revision)
2021-06-24 chromium-autoroll Roll SPIRV-Tools from e065c482c6c9 to 3a02d1126872 (1 revision)
2021-06-23 chromium-autoroll Roll Vulkan-ValidationLayers from bd7c99573d3b to 16266c388370 (1 revision)
2021-06-23 chromium-autoroll Roll glslang from 0c4c93bf615b to ae2a562936cc (1 revision)
2021-06-23 chromium-autoroll Roll Vulkan-ValidationLayers from 71916f15bc7f to bd7c99573d3b (5 revisions)
2021-06-23 chromium-autoroll Roll Vulkan-Tools from dbd221b2bc7a to 8926213dd008 (1 revision)
2021-06-23 chromium-autoroll Roll SPIRV-Tools from e992c96c89a3 to e065c482c6c9 (1 revision)
2021-06-23 chromium-autoroll Roll glslang from b38100f6bc00 to 0c4c93bf615b (1 revision)
2021-06-23 chromium-autoroll Roll SPIRV-Tools from 0c21e50922e4 to e992c96c89a3 (1 revision)
2021-06-22 chromium-autoroll Roll Vulkan-ValidationLayers from f12691a7fca2 to 71916f15bc7f (2 revisions)
2021-06-22 chromium-autoroll Roll SPIRV-Tools from f8eafd4d838c to 0c21e50922e4 (2 revisions)

TBR=enga@chromium.org

Created with:
  roll-dep third_party/vulkan-deps

Change-Id: I9517b84c5eca6eb9251655c4b3afc2d72dbc5348
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58860
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-07-20 17:43:38 +00:00
Ryan Harrison 6d27f23451 Force Python 3 in presubmit
BUG=tint:1020

Change-Id: I8c4dba4367076922bd4dd039b1d91960eaf224a3
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58940
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-07-20 17:16:31 +00:00
James Price 9889ff0bcd writer/msl: Emulate scalar length and distance
Fixed: tint:921
Change-Id: I90fe01fa854d64cfff9453898153a38b360b52de
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58822
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-07-20 16:35:00 +00:00
Ben Clayton b29396e472 fuzzers: Don't pointlessly format diagnostics
Fuzzers like to generate silly long source, and formatting large spans of these can take considerable time.
Only format the diagnostic if it is going to be displayed.

Significantly speeds up some fuzzing tests, fixing some timeouts.

Also add a minor optimization to the formatter repeat() implementation.

Fixed: chromium:1230313
Change-Id: Ib1f6ac0b31010f86cb7f4e1432dc703ecbe52cb0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58841
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2021-07-20 14:39:50 +00:00
Ben Clayton 67035040f6 D3D12: Enable IEEE strictness
Bug: tint:976
Change-Id: I4e2d625adad89402774584ccff72b5e33dc69957
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58724
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-07-20 12:47:58 +00:00
Ben Clayton efceb83536 writer/hlsl: Special case negative zero
Fixed: tint:960
Change-Id: I04de8713fe299607f32fd93288a22b75a9dff381
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58760
Reviewed-by: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2021-07-20 12:45:30 +00:00