Commit Graph

11967 Commits

Author SHA1 Message Date
Austin Eng 00dbf0bf67 Add workarounds to blit a buffer to a depth/stencil texture
Works around issues on Metal Intel where CopyB2T and WriteTexture
with depth/stencil textures do not work correctly.
Fixes test failures with depth16unorm in the CTS.

Deletes UseTempTextureInStencilTextureToBufferCopy in favor of
the stencil blit. The former supposedly fixes a problem where
the stencil data is not flushed into the real stencil texture
by performing another T2T copy. This only works because the Metal
Intel backend also happens to allocate s8 as d32s8. Copying
the depth aspect as well seems to make the driver remember to
flush the data.
The stencil blit is a better fix for the problem since entirely
avoids getting the driver into a bad state where the stencil data
is not in sync.

Fixed: dawn:1389
Change-Id: If34b1d58996157036c164a5bc329e38b5e53f67a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117910
Reviewed-by: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-01-30 17:13:12 +00:00
dawn-autoroll e44964f6c2 Roll vulkan-deps from be674ea25e15 to 7946bc6c8b58 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/be674ea25e15..7946bc6c8b58

Changed dependencies:
* spirv-tools: 64ba112ffb..0174dd11ff

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I71a866f67323a13d4f3a9958d75e33a158a60124
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118022
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-30 15:39:53 +00:00
dan sinclair f374b819d9 Remove `sig` deprecation.
This CL removes support for the `sig` member in `frexp`. It is now an
error if `sig` is used, the deprecation is removed.
`fract` should be used instead.

Bug: tint:1766
Change-Id: I991544b675caf31f22c8c9472a60c77811ff4efd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117920
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-01-30 15:34:49 +00:00
Corentin Wallez 97ad405216 Fix MSVC 14.29 errors:
- It doens't know which operator == to use when there is using
 EnumClassBitmask that looks like (a & b) == 0. Instead use just
 the form (a & b).
 - It doesn't do automatic capture of constexpr variables in lambdas so
 turn a couple constexpr into regular const.
 - It (correctly) warns that if constexpr (std::is_constant_evaluated())
 is always true, so remove the constexpr keyword.

 Bug: None

Change-Id: If7857abd1c30acb0736557844ff13f32a19d54cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117888
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Corentin Wallez <cwallez@chromium.org>
2023-01-30 14:49:27 +00:00
Corentin Wallez 40358fde0b Make EnumClassBitmask's BoolConvertible constructor explicit.
The implicit constructor seemed to confuse MSVC 14.29 when it tries to
find overloads of == or != with bitmasks. It didn't help fix compilation
but at least it's cleaner.

Bug: None
Change-Id: I40d9f831701113d021fc40862657a28f359d1ced
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117887
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Corentin Wallez <cwallez@chromium.org>
2023-01-30 13:51:32 +00:00
Dawn Autoroller 46d7c5e064 Roll ANGLE from 0cde45b7cbcc to 4b72bd1b82a9 (1 revision)
0cde45b7cb..4b72bd1b82

2023-01-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d723200bd4b5 to be674ea25e15 (14 revisions)

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I27fb747d58733ff1a307d5c312cd3f384d59f8d8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118040
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-30 13:50:22 +00:00
Zhaoming Jiang a12ff9abd1 Dawn: Deprecate DawnTogglesDeviceDescriptor with DawnTogglesDescriptor
This CL deprecates DawnTogglesDeviceDescriptor and replace it with
DawnTogglesDescriptor, which will be also used to provide instance
and adapter toggles with future CLs.

Bug: dawn:1495
Change-Id: I5f5cfdf38dcbcd237727a7f921462597b9301f1f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117174
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-01-30 09:16:51 +00:00
dawn-autoroll 64d8d18a93 Roll vulkan-deps from 9988b37a3351 to be674ea25e15 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/9988b37a3351..be674ea25e15

Changed dependencies:
* vulkan-validation-layers: 34bab1b981..93b6b7b808

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I18097e1e11b7adb376a439e31bfc25959b3baa78
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118020
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-30 07:13:25 +00:00
dawn-autoroll e8168a177a Roll vulkan-deps from 2b770ec3d4ae to 9988b37a3351 (8 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/2b770ec3d4ae..9988b37a3351

Changed dependencies:
* vulkan-loader: 3948415ebb..38379d231d
* vulkan-tools: 50d9f72d49..5ff524e935
* vulkan-validation-layers: 6ffbb912c7..34bab1b981

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I03307ba8797abf5989b48b10c4a35bbad209d08c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117913
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-28 07:11:13 +00:00
Dawn Autoroller d9a6644e66 Roll ANGLE from a8146c5d0bba to 0cde45b7cbcc (9 revisions)
a8146c5d0b..0cde45b7cb

2023-01-28 geofflang@google.com Metal: Lazily grab the shader lib for provoking vertex helper
2023-01-28 kkinnunen@apple.com Include stdint.h instead of cstdint in platform.h
2023-01-28 kkinnunen@apple.com Metal: Avoid leaking buffers for GPU access for non-discrete
2023-01-27 cnorthrop@google.com Tests: Add LIMBO trace
2023-01-27 srisser@google.com Implement GL_ARM_shader_framebuffer_fetch
2023-01-27 mark@lunarg.com Tests: Add Goddess Of Victory: Nikke trace
2023-01-27 cclao@google.com Vulkan: Make RendererVk only have one CommandQueue object
2023-01-27 romanl@google.com Add binding to DescriptorInfoDesc.
2023-01-27 cnorthrop@google.com FrameCapture: Update shader capture for CRLF

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I01365ea2fc5f118fc039d7dec194741be2a39037
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117942
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-28 03:26:22 +00:00
Li Hao e463b1ffd7 Add the device id of Intel Raptor Lake to gpu_info.json
CopyToDepthStencilTextureAfterDestroyingBigBufferTests and
DepthTextureClearTwiceTest fail on Windows Intel Raptor Lake due to the
GPU device id is not in Intel Gen12 GPU list, so the toggle
D3D12ForceClearCopyableDepthStencilTextureOnCreation is not enabled.

Change-Id: I28ec0ad2e2fa4e351077e7c74fcbdbd43d255ed3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117173
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: yang gu <yang.gu@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-01-28 02:58:52 +00:00
James Price 7ce72de3a5 tint/renamer: Preserve diagnostic control names
Add a Dawn E2E test to make sure that diagnostic controls work through
the whole shader compilation flow.

Bug: tint:1809
Fixed: chromium:1410930
Change-Id: Icea31cfadbbc182008a8a07efcddb402954dd1c7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117980
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-01-28 00:37:42 +00:00
dawn-autoroll 4ec8e5c7f8 Roll vulkan-deps from 8a9f79f08d79 to 2b770ec3d4ae (6 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/8a9f79f08d79..2b770ec3d4ae

Changed dependencies:
* spirv-cross: ff7a11dbcb..199d0cb8a9
* spirv-tools: 96c5dac559..64ba112ffb
* vulkan-validation-layers: 6226625105..6ffbb912c7

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: Ibd8f142f34d4c024f5960d6abf76fddbc13b647d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117911
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-27 18:15:18 +00:00
James Price 61feebef38 tint/tests: Actually validate the generated WGSL
We weren't actually enabling WGSL validating in Tint in the E2E test
runner.

Mark a few tests as SKIP for cases that do not actually validate.

Change-Id: I62a55ce701f704d744c32f2cd5cb97683e270e96
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117960
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: James Price <jrprice@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
2023-01-27 16:33:30 +00:00
Corentin Wallez 89b78094e6 Update ninja to 1.11.1
Bug: chromium:931218
Change-Id: Id4f587acc0a73f527fcbadb8b3118a3d6986e5e2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117884
Kokoro: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
2023-01-27 15:36:18 +00:00
Dawn Autoroller b2ec2c3505 Roll ANGLE from 081764c84d38 to a8146c5d0bba (6 revisions)
081764c84d..a8146c5d0b

2023-01-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8a9f79f08d79 to d723200bd4b5 (1 revision)
2023-01-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 5c03f547ddf9 to fb367de4643f (549 revisions)
2023-01-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a2f348c2039f to 8a9f79f08d79 (22 revisions)
2023-01-27 m.maiya@samsung.com Reland "Add support for glShaderBinary"
2023-01-27 chris@rive.app Move d3d11 BCX textures to the "UNREACHABLE" section for clears
2023-01-26 mikes@lunarg.com Tests: Add Dragon Ball Z Dokkan Battle trace

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I6e3d266343a917ce2808a21f1513fb0618534a40
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117941
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-27 14:23:35 +00:00
dawn-autoroll ac51142eba Roll vulkan-deps from ba538cd033e4 to 8a9f79f08d79 (11 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/ba538cd033e4..8a9f79f08d79

Changed dependencies:
* spirv-cross: eb9b273298..ff7a11dbcb
* spirv-tools: 5db6c38e65..96c5dac559
* vulkan-headers: a49166a89a..9f93cbe76a
* vulkan-loader: ced1be175f..3948415ebb
* vulkan-tools: 80e16af0fd..50d9f72d49
* vulkan-validation-layers: 3471e93ca1..6226625105

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I21790e57c70f4783fe1ef16e6e5a9e5ce8442856
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117909
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-27 05:14:18 +00:00
Dawn Autoroller 83189fba8b Roll ANGLE from 5e43562b5f99 to 081764c84d38 (13 revisions)
5e43562b5f..081764c84d

2023-01-26 doremylover123@gmail.com Remove checks for A8 devices
2023-01-26 kkinnunen@apple.com Declare size_t in Constants.h by including stddef.h
2023-01-26 cclao@google.com Vulkan: Only call checkCompletedCommands if needed.
2023-01-26 cnorthrop@google.com Tests: Add Bubble Shooter and Friends trace
2023-01-26 cclao@google.com Vulkan: Make CommandProcessor::checkCompletedCommands immediate check
2023-01-26 kbr@chromium.org Add documentation for enabling Metal validation layers.
2023-01-26 lexa.knyazev@gmail.com Implement EXT_polygon_offset_clamp
2023-01-26 cclao@google.com Vulkan: Fix SharedFence::mRefCountedFence leak
2023-01-26 srisser@google.com Add GL_ARM_shader_framebuffer_fetch builtins
2023-01-26 geofflang@chromium.org Add features to dump and replace shader source.
2023-01-26 syoussefi@chromium.org Skip failing capture/replay multithreaded test
2023-01-26 romanl@google.com FrameCapture: Add blend state updates to resetCalls.
2023-01-26 ynovikov@chromium.org Revert "Add support for glShaderBinary"

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I59dbea6ffcc3dfdb61524fa8b32a5b876d33d9a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117940
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-27 00:38:18 +00:00
Ben Clayton 42c5b2f675 tools/run-cts: Add --validate flag
Default to no-validation.

Change-Id: I4b3506e2addf580256175b13efbeb47f8ef96aaf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117881
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-01-26 16:03:08 +00:00
Ben Clayton 78e4530f59 code-coverage / turbocov fixes
Common:
* The turbocov build target (somehow) never got hooked up to the root CMakeLists.txt file. This is now fixed.

macOS:
* Emit coverage for 'AppleClang' compiler.
* Have run-cts find the tucked-away `llvm-profdata` executable.

Windows:
* Various fixes for building with clang
* Fix turbocov stdout CRLF corruption
* Fix bad JSON with backslashes

Change-Id: I481cceafe2e72b544e13168172fc1456e5df2005
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117880
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-01-26 15:57:27 +00:00
James Price b4049dcf40 tint/docs: Add uniformity entries to release notes
Change-Id: Id66969fe22e5afd39ef83692dec5568d5c1aa7a1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117803
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-01-26 13:02:59 +00:00
James Price ab52881bb5 tint/validator: Test @diagnostic on invalid places
It was already being rejected everywhere it should be, but now we
actually test this to make sure.

Bug: tint:1809
Change-Id: I07f1d24b12e9e41a162e0d19194d4897c33b5324
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117802
Kokoro: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-01-26 13:00:43 +00:00
James Price 2f2400bfdc tint/validator: Check for conflicting diagnostic controls
Two diagnostic controls conflict if they have the same rule name and
different severities.

This change also allows duplicate diagnostic attributes.

Bug: tint:1809
Change-Id: I7622dd947ffa03292ad3340161688e00862d5b24
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117801
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-01-26 12:24:42 +00:00
Dawn Autoroller 272fb64105 Roll ANGLE from c9094ca6b3e3 to 5e43562b5f99 (7 revisions)
c9094ca6b3..5e43562b5f

2023-01-26 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 701fadbce737 to 5c03f547ddf9 (614 revisions)
2023-01-26 romanl@google.com Capture/Replay: disable more multi-threaded tests.
2023-01-25 cclao@google.com Vulkan: CommandProcessor::WaitForWorkComplete only if needed
2023-01-25 geofflang@chromium.org Metal: Remove the UNIMPLEMENTED from setBinaryRetrievableHint
2023-01-25 m.maiya@samsung.com Add support for glShaderBinary
2023-01-25 cclao@google.com Vulkan: Make CommandProcessor use ThreadSafeCommandQueue
2023-01-25 cclao@google.com Vulkan: Make ThreadSafeCommandQueue's wait without lock

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I1a9b16a3f1fb810b80c3d15be8c204e8c2eec16e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117860
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-26 11:36:50 +00:00
James Price 2dbb7b4f6a tint/SingleEntryPoint: Handle diagnostic directive
Add some E2E tests to make sure that we actually produce valid code
for each backend when diagnostic filtering is present.

Bug: tint:1809
Change-Id: I5e903ac0d2ca385967211bb889f86cb85de8f418
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117590
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-26 11:31:19 +00:00
dan sinclair 1226320a5b Move ast_type.cc to type.cc.
This file is already in the ast/ folder, and has been marked as a TODO
to move for a while. Actually move.

Change-Id: I697ff903fc9906921e2768243bdfba581cf18d4e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117589
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-01-26 10:49:19 +00:00
dan sinclair 3076a8bf17 Add missing sem headers
This CL is based off of https://dawn-review.googlesource.com/c/dawn/+/113561
and adds the updates into `libtint_syntax_parser_src` to allow the
resolver to build correctly when the headers are added.

Change-Id: I5d14a88111ea1bf87bb2155d066b95378163e451
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117588
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-01-26 02:15:50 +00:00
Brandon Jones f68f2e06d7 Fix GatherDeviceInfo on Vulkan 1.0 devices
A bad assert was causing devices that only supported Vulkan 1.0, such as
the Nexus 5X, to crash when querying information about adapter
properties and features. This change removes the need for the ASSERT.

(Note that this does not guarantee WebGPU support on Vulkan 1.0 devices.
For example, the Nexus 5X does not have the fragmentStoresAndAtomics
feature, which is required for WebGPU.)

Bug: dawn:286
Change-Id: I7f884290f29ae7e9607933f6186feac2ce8af540
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117840
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-01-26 00:36:16 +00:00
Dawn Autoroller 9803d6c955 Roll ANGLE from 660e4a7c0d4f to c9094ca6b3e3 (3 revisions)
660e4a7c0d..c9094ca6b3

2023-01-25 yuxinhu@google.com Skip flaky tests dEQP-GLES31.functional.image_load_store.buffer*
2023-01-25 lexa.knyazev@gmail.com Adjust STENCIL_INDEX8 caps
2023-01-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 7d74066a9406 to 701fadbce737 (593 revisions)

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I11392d20b28f1271597650a5f2288ef58ea8d2d3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117820
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-25 22:41:12 +00:00
dan sinclair 1a26e80318 Create a libtint_ast_src.
This CL moves the ast files into a libtint_ast_src source set. Similar
to sem, the headers are duplicated into the libtint_syntax_tree_src due
to the dependencies with program_builder.

This makes the sem and ast source sets be setup the same.

Change-Id: If51fac6fab6763c4dcf729061de6ef983a94063a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117587
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-01-25 22:40:28 +00:00
Austin Eng f7f2d4ae82 Roll third_party/webgpu-cts/ 3f9b09b36..ad8abf400 (2 commits)
Regenerated:
 - expectations.txt
 - ts_sources.txt
 - test_list.txt
 - cache_list.txt
 - resource_files.txt
 - webtest .html files


3f9b09b36b..ad8abf400d
 - ad8abf Make fuzzy test match wpt fuzzy specs (#2194)
 - b38a15 Use screenshot library (#2193)

Created with './tools/run cts roll'

Change-Id: Id8767584c8ff808d50cf02eb7eb7ab647853cd84
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117782
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Kokoro: Austin Eng <enga@chromium.org>
Auto-Submit: Austin Eng <enga@chromium.org>
2023-01-25 22:00:12 +00:00
Austin Eng 97f56bd0b8 Clamp the stencil reference to 255
Fixed: dawn:1645
Change-Id: I908fe0a2cb029c7cc6cf94b066f0f842e0f1e224
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117532
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 20:57:49 +00:00
dawn-autoroll 1696edfbbf Roll vulkan-deps from 71bd1907ea2f to ba538cd033e4 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/71bd1907ea2f..ba538cd033e4

Changed dependencies:
* vulkan-validation-layers: ac7c75bb51..3471e93ca1

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I9a2176e1c6aef53fd5fbde028bc73f5ec3e0cbd7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117533
Kokoro: Kokoro <noreply+kokoro@google.com>
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-25 20:57:06 +00:00
Peng Huang 8fc1758a3d Append pipeline barrier for mappable buffers for submissions
So the next MapAsync() call, doesn't need to record pipeline barrier
command into the pending command buffer, submit it, and wait for it
completion.

Bug: b/265152896
Change-Id: Ied7cbca24a7b1bc81c0a6402179452599aabfe9b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/116920
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 19:55:52 +00:00
Austin Eng e8870efb1b Handle Tint inspector reflection of bgra8unorm storage texture
The fuzzer produced a shader with this format and hit an UNREACHABLE
in Dawn.

Bug: dawn:1641, chromium:1410048
Change-Id: Ia5ba66a18fc718f7e6dd803f4229ecb12b02753e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117531
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 19:52:32 +00:00
dan sinclair a3e90618dc Remove libtint_core_src.
This CL removes `libtint_core_src` and folds the dependencies into
`libtint`. Uses have been updated to require the specific libraries they
depend on.

Change-Id: I91118cc9db376c53597a8e588db654b3a4105386
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117586
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 19:52:28 +00:00
Maksim Sisov 549fa71c8d remove use_system_libwayland
It's removed from swiftshader in [1]

[1] https://swiftshader-review.googlesource.com/c/SwiftShader/+/70408

Bug: chromium:1385736
Change-Id: I6f314eca86407f7ee452d89979a3ce6c3664d819
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/114500
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
2023-01-25 19:32:15 +00:00
dan sinclair 186fdaf815 Rename libtint_core_all_src to libtint_syntax_tree_src
This CL renames the source set to make it clear it does not include all
files in tint.

Change-Id: Ib37603ca8d46e2920d3f3c6d79a59a292493c3fd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117585
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 19:22:25 +00:00
dan sinclair d108693b59 Move a few more headers to base_src.
This cl moves a couple more files up to `base_src` and splits tint.cc
out to a separate `initializer` source set.

Change-Id: I65347ac182f3434a57cc49f0eeb1024f6adb52b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117584
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-01-25 19:15:42 +00:00
dan sinclair b560dcdb9f Pull inspector out to gn source set.
This CL extracts the inspector from libtint_core_all_src and into a
libtint_inspector_src.

Change-Id: I0b138cc2e47526b8575b6f31cc3e15fc8bd92545
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117583
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-01-25 18:41:40 +00:00
dan sinclair 2da119a0ce Split constant and type out of libtint_core_all_src
This CL moves the constant and type headers out of the
`libtint_core_all_src` target. In order to do so a `libtint_base_src`
target is created with the bits of core_all that are required to build
constant/ and type/ along with all the util/ files.

Change-Id: Idb016f51e9dcaa84b6d7a14e4e5f62d4a46a4161
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117582
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-01-25 18:39:00 +00:00
James Price 58dd079e46 tint/resolver: Warn for unknown diagnostic rules
Suggest alternatives in the warning.

Bug: tint:1809
Change-Id: If55f162fbd44a1987b573888ca7cc02490f8b05e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117800
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 14:10:04 +00:00
James Price f629770bcd tint: Move "suggest alternatives" logic to utils
This will be used for suggesting alternative diagnostic rule names in
the Resolver.

Bug: tint:1809
Change-Id: Icc9af02937326f6f774fbaf2aeaa9314c88fdea6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117565
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-01-25 14:10:04 +00:00
dawn-autoroll 2cf9764e45 Roll vulkan-deps from a2f348c2039f to 71bd1907ea2f (9 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/a2f348c2039f..71bd1907ea2f

Changed dependencies:
* spirv-tools: 7f9184a5b2..5db6c38e65
* vulkan-loader: 0a2c1bece6..ced1be175f
* vulkan-validation-layers: 8f898553b5..ac7c75bb51

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I5afb97622cba1cc97a962317e041d8a7e081057a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117529
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-25 06:12:15 +00:00
Dawn Autoroller b45bdf8007 Roll ANGLE from a654666c00c1 to 660e4a7c0d4f (2 revisions)
a654666c00..660e4a7c0d

2023-01-25 kbr@chromium.org Don't override D16_UNORM to D32_FLOAT on Apple GPUs.
2023-01-24 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from c1ebeb5013f9 to 821e153ac85a (20 revisions)

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: enga@google.com
Change-Id: I96c55ab86eb36c23cfdc35ae9bb2cd8e0ffb6fb6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117780
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-01-25 05:40:02 +00:00
James Price bb0229002d tint/uniformity: Violations are now errors
Switch the default severity for all uniformity violations to errors.

We now have an opt-out mechanism for deriviative operations (via
diagnostic filters), and a `workgroupUniformLoad()` builtin for
compute shaders.

Bug: tint:1809
Change-Id: I666c706d6195ca0d24ead14c4709e7f646bfcc64
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117741
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 01:24:46 +00:00
James Price f38ee3e073 tint/exe: Add --allow-non-uniform-derivatives flag
When used with the SPIR-V reader, this will insert a module-scope
diagnostic directive to suppress uniformity violations for derivative
operations.

Bug: tint:1809
Change-Id: I2305265231ccffad49461d194669ba598484e8e0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117740
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 01:24:46 +00:00
James Price e657c470bd tint/uniformity: Add derivative_uniformity filter
Add additional `RequiredToBeUniform` nodes for each severity
level. When processing a call to a derivative builtin, look up the
severity from the semantic info for that AST node, and add an edge to
the corresponding `RequiredToBeUniform` node.

Propagate the severities to the callsite and parameter tags for a
function that contains a builtin.

Traverse that graph from each `RequiredToBeUniform` node to look for
violations at each severity level, starting with the most severe. Only
stop the analysis if an error is found, otherwise report the violation
and keep going.

Bug: tint:1809
Change-Id: I4ac838e85da3f4fb3d63f4892dce7f12b096f74b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117602
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 01:24:46 +00:00
James Price 5853205342 tint/sem: Record diagnostic severity modifications
Each sem::Node has a map which stores the diagnostic modifications
applied to that node. The sem::Info class provides a query to get the
diagnostic severity for a given AST node, by walking up the semantic
tree to find the tightest diagnostic severity modification. The
default severity is used if it was not overridden.

This allows components outside of the Resolver/Validator to determine
the diagnostic severity while walking the AST, which is required for
the uniformity analysis.

Bug: tint:1809
Change-Id: I4caf99d7412fb22fb1183b2c8cfde349da2fefd3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117601
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-25 01:24:46 +00:00
James Price 613fbcf79a tint: Add diagnostic and enable to ModuleCloneTest
Bug: tint:1809
Change-Id: I671440bf2b1f988eb39bd476841e92c3a7e58ae7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117600
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-01-24 23:13:38 +00:00