10152 Commits

Author SHA1 Message Date
Ben Clayton
37c4e4a41d Have TypesBuilder pointer and structure methods return ast types
These were the last two types to migrate away from typ::TypePair.

Bug: tint:724
Change-Id: Ibc03e35db00236081a5792f787864ab69ce0d00c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51665
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-20 15:02:38 +00:00
Ben Clayton
d3e80fd36c Have TypesBuilder vector and matrix methods return ast types
Bug: tint:724
Change-Id: I7bf0d36572ff332e1ecc606f2aa61414a6d74377
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51664
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
2021-05-20 14:57:58 +00:00
Ben Clayton
b966265f5a Have TypesBuilder::sampler() return ast::Sampler
Bug: tint:724
Change-Id: Ifdba69a24d65e2f874ea8bdb3984d36a8cfa2bd7
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51663
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-20 14:54:28 +00:00
Ben Clayton
55ecfc4a24 Have TypesBuilder texture methods return ast types
Bug: tint:724
Change-Id: I31c9632c01971a08185bd95c1a3cc7da759f4002
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51662
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-20 14:42:28 +00:00
Ben Clayton
cc98b4f9aa Have TypesBuilder::void_() return ast::Void
Bug: tint:724
Change-Id: Ie4876c06f9b67601a9601b77bdcaeec94145938e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51661
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-20 14:31:48 +00:00
Ben Clayton
c03d3bdc94 Have TypesBuilder::bool_() return ast::Bool
Bug: tint:724
Change-Id: I7b5b1d0633f5ba654829502eaceee1ffa3ee4cd2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51660
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-20 14:22:28 +00:00
Dawn Autoroller
fcb369b38e Roll Tint from 31d761329a5f to 9e32b2009686 (49 revisions)
https://dawn.googlesource.com/tint.git/+log/31d761329a5f..9e32b2009686

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/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: Id4dbd626e5de21eda5e17ea4753f93cb0ba683cd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51800
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-20 12:53:37 +00:00
Ben Clayton
9e32b20096 Add transform::VarForDynamicIndex
Use this as part of the Spirv sanitizer.
Cleans up buggy dynamic array indexing logic in the SPIR-V writer.

Fixed: tint:824
Change-Id: Ia408e49bd808bc8dbf3a1897eb47f9b33b71fdfb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51780
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-20 11:55:28 +00:00
Antonio Maiorano
c5f5d3641c Resolver: clean up how NamedTypes are handled
Also add validation for when a named type is declared more than once.

Bug: tint:803
Change-Id: Ifa93b34bc5afd31eba9bfdc4514791ec07c767ec
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51622
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@chromium.org>
2021-05-20 08:44:57 +00:00
Qin Jiajia
b58efd079c Use HLSL version 2018 for DXC
Currently, we use the device maximum supported shader model for DXC
compiler. Meanwhile, we should use HLSL version 2018 or above to support
the maximum shader model. Otherwise, it may report below errors:
Explicit template arguments on intrinsic Load requires HLSL version 2018
or above.

Bug: None
Change-Id: I7b1bfd1c08eb5ad30b2f7d59d280678bb71d1d64
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51460
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
2021-05-20 01:50:57 +00:00
Ben Clayton
9a3ba02c36 sem: Split BlockStatement up into subclasses
Allows us to put block-type-specific data on the specific subtype instead of littering a common base class

Change-Id: If4a327a8ee52d5911308f38b518ec07c3ceebcb7
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51367
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-19 21:22:07 +00:00
Yunchao He
b2527e6d9c Add end2end tests for 3D texture copies
These tests are used to demonstrate that different copy scenarios
will impact how TextureCopySplitter to split copy regions for 3D
textures on D3D12.

Bug: dawn:547

Change-Id: I49947387acaa61f4eacbcd5a18c6cd8db913d2d0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51320
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-05-19 20:34:36 +00:00
Ben Clayton
512d60c207 Have TypesBuilder::F32() return ast::F32
Also contains a UBSAN fix for tests that didn't quite all migrate to ast::I32.

Bug: tint:724
Change-Id: I2a3ad6d6a69595b7da6bb502a87fb655a7f5961a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51486
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-19 19:51:22 +00:00
Austin Eng
56537f8b06 Move test parameterization macro from DawnPerfTest to DawnTest
Also add macros to make it easier to generate a params struct.
This makes it possible to generate parameterized tests in
dawn_end2end_tests

Bug: none
Change-Id: I009475dcc08a5274f5871237a363489cff7298f1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51000
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-05-19 19:38:57 +00:00
Ben Clayton
06aa88aa97 hlsl: Pointer support
Add `transform::InlinePointerLets` - a Transform that moves all usage of function-scope  `let` statements of a pointer type into their places of usage.

Make the HLSL writer transform pointer parameters to `inout`.

Fixed: tint:183
Change-Id: I0a7552fa6cd31c7b7691e64feae3170a81cc6c49
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51281
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-19 19:16:32 +00:00
Ryan Harrison
c9dc951e9e Reverting manual config changes due to MSVC builder issues
Revert "Remove win toolchain from msvc builds"
This reverts commit f6593ffc76e1decc80e07bff63702b15e9a2361a.

Revert "Fix validation of manually generated configs"
This reverts commit dffb68e49d42becd08244c7865e4fcc803ef2e1c.

Revert "Update manually generated configs"
This reverts commit f3dcbf5c5cee83ac56620c5bd86f58b1902fa1f5.

BUG=tint:693

Change-Id: Iedbbe6e2f162da7a435001d8e45aa8dcdb1d4b9b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51620
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-19 18:41:27 +00:00
Corentin Wallez
db03566711 OpenGL: Use binding= for all bindings in generated GLSL
This changes the call to SPIRV-Cross in the GLSL backend to always set
the binding= decoration on interface variables instead of changing the
variable name and matching against it as was done previously. This
matching by name was done for macOS's OpenGL driver's old version of GL
but isn't needed now that Dawn has a Metal backend for macOS.

This also fixes opengl::ShaderModule to iterate only on bindings that
are known to the layout as the reflection between SPIRV-Cross and Tint
can be different.

Bug: tint:808
Bug: tint:386
Change-Id: I308b8da5994d8618799cf6583f1b0e5ea2ba2069
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51520
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-05-19 18:29:37 +00:00
Ryan Harrison
f6593ffc76 Remove win toolchain from msvc builds
Tripping a check related to not using goma on these builds.

BUG=tint:693

Change-Id: Ibcb20a5707abe887628ef41f12383bb0fae396e9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51600
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2021-05-19 17:56:04 +00:00
Ben Clayton
cf421bbc3c Have TypesBuilder::i32() return ast::I32
Bug: tint:724
Change-Id: I2b4abc1f128a1489a4023bd3b82fc7234d70449f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51485
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-19 17:47:11 +00:00
Ben Clayton
58dec17828 Have TypesBuilder::u32() return ast::U32
Bug: tint:724
Change-Id: I23a26dadcb6037e3eb2b4c46e727da37e84c1fc1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49342
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-19 17:47:11 +00:00
Ben Clayton
122e6abdd4 ShaderModule: Add default case to ResourceType switch
`kExternalTexture` was recently added in tint, and now the compiler warns / errors that this isn't handled by the switch.
Add a default that is `UNREACHABLE()`.

Will fix one of the issues preventing a tint -> dawn roll.

Bug: dawn:728
Change-Id: I510526af46e1f1981a7434f615aa8ed5e56534cd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51362
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-19 17:35:26 +00:00
Ryan Harrison
dffb68e49d Fix validation of manually generated configs
BUG=tint:693

Change-Id: I451b98883972b96b8320dbfeeabd66c947aba8bc
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51580
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2021-05-19 17:14:54 +00:00
Ben Clayton
c0587b6f2d test-runner: Return non-zero code on failure
Kokoro will use this to fail presubmits on new failures.

Change-Id: I32cf49d0380c7b751ae4410ccd91b20407262e9f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51482
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2021-05-19 17:06:54 +00:00
Ben Clayton
b350500cdb utils: Add TINT_SCOPED_ASSIGNMENT()
A helper class and macro used to simplify scope-based assignment of
variables.

Change-Id: I02b3a05240a2c4628f813de931c40d8fba3cb07b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51480
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-05-19 16:11:04 +00:00
Ryan Harrison
f3dcbf5c5c Update manually generated configs
These configs match the output of the new Starlark generated configs
that are being worked on. Landing these in advance to a) confirm that
they working, and b) make the patch using Starlark a no-op from the
config contents perspective.

BUG=tint:693

Change-Id: I82a85405097ae2e595c87f658027eddaa75e21a9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51400
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2021-05-19 14:34:34 +00:00
James Price
3d338315b3 writer/hlsl: Support overridable workgroup sizes
Use the WGSL_SPEC_CONSTANT preprocessor macros as parameters to
[numthreads()] when the dimension is overridable.

Remove the macro #undef to make this possible.

Bug: tint:713
Change-Id: Icd927044a64a8b8a2f029f9e2db8168ec6a861de
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51264
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-19 14:17:09 +00:00
James Price
0a1927b4c3 writer/spirv: Support overridable workgroup sizes
Generate an OpSpecConstantComposite instruction decorated with the
WorkgroupSize builtin. Only support a single stage with an overridable
workgroup size.

Bug: tint:713
Change-Id: I139123c0af8326fcbd796cb2fc9d223882206e19
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51263
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-19 14:10:28 +00:00
James Price
70f80bb13d ast: Support non-literal workgroup_size parameters
Change the type of the values in an ast::WorkgroupDecoration to be
ast::Expression nodes, so that they can represent both
ast::ScalarExpression (literal) and ast::IdentifierExpression
(module-scope constant).

The Resolver processes these nodes to produce a uint32_t for the
default value on each dimension, and captures a reference to the
module-scope constant if it is overridable (which will soon be used by
the inspector and backends).

The WGSL parser now uses `primary_expression` to parse arguments to
workgroup_size.

Also added some WorkgroupSize() helpers to ProgramBuilder.

Bug: tint:713
Change-Id: I44b7b0021b925c84f25f65e26dc7da6b19ede508
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51262
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-19 13:40:08 +00:00
Ben Clayton
40ac15f157 Remove ShareableCloneable
This functionality is no longer needed, so just remove it.

Change-Id: Iebb4e4105b9e3b4a6a700594298503ad6cb68d31
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51484
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-19 13:25:08 +00:00
Antonio Maiorano
05743afb56 Revert "Add DuplicateStorageStruct transform"
This reverts commit 594075a2f0dbffc1966e9396b3eb771d274fa4b5.

Reason for revert: This is not a complete solution. It does not cover assignment of variables of the same struct type, but of different access types. For example:

```
[[block]] struct S{ i : 32; };
var<storage> gr : [[access(read)]] S;
var<storage> gw : [[access(write)]] S;
fn f() {
  var a : S;
  a = gr;
  gw = a;
}
```

With my CL, we currently generate invalid assignments because the new types of 'S' for 'gr' and 'gw' are now all different types. We would need to generate functions to assign between them.

In the end, we will drop this strategy, and instead, Dawn will be modified to not rely on names.

Original change's description:
> Add DuplicateStorageStruct transform
>
> This transform is currently required by Dawn for it's GLSL backend so
> that SPIRV-Cross does not end up renaming the structures internally,
> which it does to fix aliasing problems. We can remove this transform
> if/once Dawn using binding numbers rather than names for uniform/storage
> buffer data.
>
> Bug: tint:386
> Bug: tint:808
>
> CloneContext: allow insert before/after of a node marked for removal
> Change-Id: I3ff3b37bca62db07d5c759250dd4777e279b7a4f
> Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51403
> Commit-Queue: Ben Clayton <bclayton@google.com>
> Kokoro: Kokoro <noreply+kokoro@google.com>
> Reviewed-by: Ben Clayton <bclayton@google.com>

TBR=bclayton@google.com,amaiorano@google.com,noreply+kokoro@google.com

Change-Id: I695347b0ffe8be23b9dc44885af378be56512406
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: tint:386
Bug: tint:808
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51500
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-05-19 12:22:59 +00:00
James Price
94867592cd writer/msl: Fix zero-valued matrix constructors
Fixed: tint:813
Change-Id: Ia22f4264de89da76ab0a10cf52f267fcb1e2dbd4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51440
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: Ben Clayton <bclayton@chromium.org>
2021-05-19 11:15:58 +00:00
James Price
cbe816f93d writer/msl: Generate address spaces for pointers
Add more E2E tests to cover pointers with different storage classes.

Fixed: tint:815
Change-Id: I224a794cdf60648ce71dc9a0922d489542995be1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51404
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@chromium.org>
2021-05-19 10:38:18 +00:00
Ben Clayton
09d53d5ed1 writer/hlsl: Emit static for private global variables
Fixed: tint:812
Change-Id: I822eb6b13f07a74eb47c4c8e18d1f75dcc4818bf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51366
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-19 09:03:48 +00:00
Jiawei Shao
ce3d4a5b09 Disable the workaround about the T2T copy issue on newer Intel drivers
This patch disables the workaround about the T2T copy issue (the Toggle
UseTempBufferInSmallFormatTextureToTextureCopyFromGreaterToLessMipLevel)
on the latest Intel Gen9 and Gen9.5 D3D driver (27.20.100.9466) which
contains the fix for this issue.

This patch also implements the D3D driver version comparison algorithm
for Intel drivers.

BUG=chromium:1161355
TEST=dawn_end2end_tests

Change-Id: I406598f2c5745214a60bfc43fb732d45360aa1fe
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51343
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-05-19 08:43:33 +00:00
Jiawei Shao
3fd2036755 Add a command line parameter to run the tests skipped by DAWN_SUPPRESSED_TEST_IF
This patch introduces two new macros to replace DAWN_SKIP_TEST_IF():
1. DAWN_SUPPRESSED_TEST_IF(): for the tests failing on a specific HW / backend /
   OS combination
2. DAWN_TEST_UNSUPPORTED_IF(): for the tests which require an extension or a toggle
   to be present /not present or some WIP features.

This patch also adds a command line parameter "--run-suppressed-tests" to disable
the macro DAWN_SUPPRESSED_TEST_IF(), so that we can test any tests that are related
to any specific HW / backend / OS combinations without changing the source code and
re-building dawn_end2end_tests.

This patch also replaces DAWN_SKIP_TEST_IF() with DAWN_SUPPRESSED_TEST_IF() or
DAWN_TEST_UNSUPPORTED_IF() in QueryTests.cpp and ShaderFloat16Tests.cpp to test
the functionality of these two new macros. DAWN_SKIP_TEST_IF() will be completely
replaced by DAWN_SUPPRESSED_TEST_IF() or DAWN_TEST_UNSUPPORTED_IF() in the next
patch.

BUG=dawn:779

Change-Id: I05db632c614b6ad348fcac85da84744e45be3ae1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51341
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-05-19 08:31:13 +00:00
Ben Clayton
ee449e2625 writer/wgsl: Add paren around LHS of member accessors
When the LHS type is not one of the common expression types

Fixes operator precedence issues around pointers and member accesses.

Change-Id: I81b01c0c1050d087d5d68a93d15a66ee14b2fed6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51365
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-05-19 08:29:58 +00:00
James Price
ce8f868815 Move workgroup_size property into sem::Function
The workgroup size should not be a property of the function in the
AST, and this lays the groundwork for allowing both literals and
module-scope constants to be used for this attribute.

Bug: tint:713
Change-Id: I014be879e2adb81cfc5b0ea0e221035fae626223
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51261
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-05-19 08:15:18 +00:00
Antonio Maiorano
594075a2f0 Add DuplicateStorageStruct transform
This transform is currently required by Dawn for it's GLSL backend so
that SPIRV-Cross does not end up renaming the structures internally,
which it does to fix aliasing problems. We can remove this transform
if/once Dawn using binding numbers rather than names for uniform/storage
buffer data.

Bug: tint:386
Bug: tint:808

CloneContext: allow insert before/after of a node marked for removal
Change-Id: I3ff3b37bca62db07d5c759250dd4777e279b7a4f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51403
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-19 08:13:28 +00:00
Austin Eng
fd783ce627 Support 3D textures in ClearTexture
Also fix and enable testing for texture initialization on OpenGLES.
This CL also factors code so that opengl::Texture::ClearTexture can
use the DoTexSubImage helper.
Note: Clearing of compressed textures on GL still unimplemented.

Bug: dawn:780
Change-Id: I5c1268ee570f2d4347d365465700dd416fbf5619
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/50121
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-05-18 21:51:33 +00:00
Antonio Maiorano
be341fb18b CloneContext: allow insert before/after of a node marked for removal
Change-Id: I48f232c9ba54e2b8457571bea8e6942bed001156
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51402
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-18 21:28:58 +00:00
James Price
b39d776506 tools/test-all.sh: Fix usage info
Change-Id: I7807cb372e5b278397a37fe3e685a6a919b278e4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51380
Commit-Queue: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-18 17:06:18 +00:00
Corentin Wallez
8507f7e33a Rolling 2 dependencies
Also add suppressions for tests failing after the ANGLE roll.

Roll third_party/angle/ 9a025fd44..835bcb1e2 (460 commits; 1 trivial rolls)

9a025fd448..835bcb1e27

$ git log 9a025fd44..835bcb1e2 --date=short --no-merges --format='%ad %ae %s'
2021-05-08 lexa.knyazev Vulkan: Support GL_EXT_texture_sRGB_RG8
2021-05-18 angle-autoroll Roll vulkan-deps from 055e71b2a367 to 3d799e0e9b08 (25 revisions)
2021-05-14 syoussefi Vulkan: Optimize respecifying an image
2021-05-17 syoussefi Vulkan: Fix a bug releasing DynamicBuffer-owned buffer
2021-05-13 cnorthrop Tests: Add Pokemon Go trace
2021-05-13 cnorthrop Capture/Replay: Add const to string pointer
2021-05-13 cnorthrop Capture/Replay: Skip glGetActiveUniform
2021-05-13 cnorthrop Capture/Replay: Reset programs on loop
2021-05-17 cnorthrop Skip Texture2DTest.TextureSize on Linux+GL+TSAN
2021-05-17 jmadill ANGLETest: Skip test setup/teardown on major error.
2021-05-17 jonahr Fix out_of_range error in System_utils_posix
2021-05-14 syoussefi Vulkan: Cleanup texture image respecify
2021-05-13 syoussefi Vulkan: Fix desc set cache bug with xfb offset
2021-05-14 jmadill Gold Tests: Implement flaky retries and sharding.
2021-05-17 angle-autoroll Roll SwiftShader from c4d054c6ad41 to af907708adb3 (2 revisions)
2021-05-17 angle-autoroll Roll Chromium from 3b747dab7bb3 to 9b886afc6e79 (485 revisions)
2021-05-14 gert.wollny Capture/Replay: Add suffix to label for test file search
2021-05-12 gert.wollny Capture/Replay: Print context diff also with frame gaps
2021-05-10 gert.wollny Capture/Replay: track robustResourceInit
2021-04-12 cclao Vulkan: Add webgl conformance/texture-size test
2021-05-14 ianelliott Vulkan: Fix AGI hierarchy
2021-05-12 cclao Skip Texture2DArrayIntegerTestES3.NonZeroBaseLevel on OSX+OpenGL
2021-05-14 syoussefi Vulkan: Disable BufferVk suballocation
2021-05-14 angle-autoroll Roll VK-GL-CTS from 1c4a387382ea to 535dfe49fc49 (1 revision)
2021-05-14 geofflang GL: Recreate textures on eglReleaseTexImage.
2021-05-12 m.maiya Bug fix in glTexParameter and glGetTexParameter validation
2021-05-12 cclao Fix IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface on OSX+OpenGL
2021-05-11 jmadill Test Runner: Add test expectations parser.
2021-05-05 jonahr Reland Change to module directory when loading swiftshader ICD.
2021-04-29 sergeyu [Vulkan] Add DisplayVkNull
2021-05-14 angle-autoroll Roll VK-GL-CTS from 6498f4042d9f to 1c4a387382ea (19 revisions)
2021-05-14 cnorthrop Tests: Update capture_replay_expectations
2021-05-07 cclao Vulkan: Add feature flag to flush at framebuffer boundary
2021-05-12 lubosz.sarnecki TracePerfTests: Don't call framebuffer functions on GLES1.
2021-05-13 jplate CL: Add symbol version map to libOpenCL
2021-05-14 angle-autoroll Roll Chromium from b0687cb1f1ec to 3b747dab7bb3 (328 revisions)
2021-05-09 jplate CL: Implement context for front end and passthrough
2021-05-11 syoussefi Translator: Fix struct/uniform separation w.r.t to arrays
2021-05-13 ianelliott Disable GL_EXT_shader_framebuffer_fetch_non_coherent on Arm/QCOM
2021-05-11 jmadill Allow specifying GPU config on expectation check.
2021-05-11 syoussefi Translator: Fix local var inits vs struct/uniform separation
2021-05-12 gert.wollny Capture/Replay: recreate the EGL window if contexts don't match
2021-05-13 angle-autoroll Roll Chromium from 3fb708290557 to b0687cb1f1ec (639 revisions)
2021-05-11 geofflang Add messages for framebuffer completeness errors.
2021-03-05 syoussefi Vulkan: Allow DynamicBuffer suballocation in BufferVk
2021-05-12 syoussefi Remove teglAndroidUtil.cpp override
2021-05-13 jmadill Test Runner: Fixes to skipped tests.
2021-05-09 jplate CL: device partitioning for front end and passthrough
2021-05-12 sugoi Add array bounds checks for WebGL shaders
2021-05-13 angle-autoroll Roll SwiftShader from be169ef35238 to c4d054c6ad41 (2 revisions)
(...)
2021-04-02 jmadill Add GL_ANGLE_get_serialized_context_string.
2021-03-30 cnorthrop Tests: Add Dragon Raja trace
2021-04-02 jmadill Fix rapidjson build error in Skia.
2021-03-29 cnorthrop Capture/Replay: Support multi-digit context
2021-03-25 cclao Vulkan: Add baseLevel and generateMipmap test for immutable texture
2021-03-25 m.maiya Vulkan: Add YUV G8_B8R8_2PLANE_420_UNORM support.
2021-03-31 cclao Vulkan: Add test render to immutable texture will flush
2021-04-02 angle-autoroll Roll vulkan-deps from a0d5b9653a91 to 61083c4a2ae0 (4 revisions)
2021-03-31 gert.wollny JsonSerializer: use stubs when building without rapidjson
2021-04-02 angle-autoroll Roll Chromium from cc20ce29e7a7 to 9c9ca054e2bc (391 revisions)
2021-04-01 cnorthrop Tests: Add Aztec Ruins trace
2021-04-01 cnorthrop Tests: Add League of Legends: Wild Rift trace
2021-04-02 kainino Revert "Metal: Support importing external metal textures"
2021-03-29 xinghua.cao D3D: fix uniform block alignment error
2021-04-01 ynovikov Fix and re-enable component build of angle_apks
2021-04-01 ynovikov Add Linux, Ozone and Fuchsia chromium.angle bots to CQ
2021-03-13 lehoangq Metal: Support importing external metal textures
2021-03-30 jonahr Don't append newline to empty InfoLog stream.
2021-04-01 angle-autoroll Roll vulkan-deps from 0a4b29c05e71 to a0d5b9653a91 (6 revisions)
2021-04-01 angle-autoroll Roll Chromium from e4067deef470 to cc20ce29e7a7 (104 revisions)
2021-03-31 jonahr Revert "Reland "Add support for Linux GPU info with Vulkan backend""
2021-04-01 angle-autoroll Roll Chromium from c181ac047c8b to e4067deef470 (350 revisions)
2020-07-18 lehoangq Metal: implement ANGLE_device_metal extension.
2021-03-31 ynovikov Reland "Link angle_util statically into angle_system_info_test"
2021-03-12 jonahr GLX: Always call XSync on creation/destruction of WindowSurfaces
2021-03-31 syoussefi Add a gl-d3d-only target for the translator
2021-03-30 cclao Vulkan: Split fragment shader from ColorAttachmentAndAllShadersRead
2021-03-30 jmadill Enable messenger_lite trace on SwiftShader.
2021-03-26 syoussefi Vulkan: Remove spam output regarding pipeline cache
2021-03-31 chonggu [Fuchsia] Use manifest fragments for Cr-Fuchsia binaries
2021-03-31 angle-autoroll Roll vulkan-deps from 4b3769b941e6 to 0a4b29c05e71 (2 revisions)
2021-03-31 angle-autoroll Roll Chromium from 8599134e632f to c181ac047c8b (466 revisions)
2021-03-19 timvp Detach separable shaders
2021-03-17 timvp Support linking PPOs without attached Shaders
2021-03-30 syoussefi Vulkan: Temporarily use GOOGLEX instead of EXT for MSRTSS
2021-03-25 rafael.cintron Check return value of allocateResource instead of asserting
2021-03-17 timvp Update PPO's executable when attached program is re-linked
2021-03-30 ynovikov Replace Win x86 dEQP GPU.FYI bot with chromium.angle bot
2021-03-30 angle-autoroll Roll vulkan-deps from e0d8a486f6d5 to 4b3769b941e6 (3 revisions)
2021-03-30 angle-autoroll Roll SwiftShader from fb53aa2bb7da to 4c0f888d7ef8 (1 revision)
2021-03-30 angle-autoroll Roll Chromium from 26bf9bb622f1 to 8599134e632f (396 revisions)
2021-03-17 timvp Reland "Save/Load missing members"
2021-03-29 syoussefi Don't link with SPIR-V repos if !vulkan && !metal
2021-03-15 gert.wollny Capture/Replay: serialize context to JSON
2021-03-15 gert.wollny Capture/Replay: Enable GetTexImage tests
2021-02-23 gert.wollny capture/replay: impl CaptureGetRenderbufferImageANGLE_pixels
2021-03-25 penghuang Only enable framebufferMultisample with framebufferBlitANGLE
2021-02-23 gert.wollny capture/replay: implement CaptureGetTexImageANGLE_pixels
2021-03-29 angle-autoroll Roll vulkan-deps from 7079d8df17da to e0d8a486f6d5 (7 revisions)
2021-03-29 angle-autoroll Roll Chromium from e0abc3035c46 to 26bf9bb622f1 (218 revisions)

Roll third_party/vulkan-deps/ 105af117f..3d799e0e9 (225 commits)

https://chromium.googlesource.com/vulkan-deps/+log/105af117f053..3d799e0e9b08

$ git log 105af117f..3d799e0e9 --date=short --no-merges --format='%ad %ae %s'
2021-05-18 chromium-autoroll Roll Vulkan-ValidationLayers from 2b22f2703be9 to 1d86b3235b42 (1 revision)
2021-05-17 chromium-autoroll Roll Vulkan-ValidationLayers from 2d7f42a44fa7 to 2b22f2703be9 (3 revisions)
2021-05-17 chromium-autoroll Roll Vulkan-ValidationLayers from c46a663b305b to 2d7f42a44fa7 (1 revision)
2021-05-17 chromium-autoroll Roll Vulkan-Tools from 1d176506710c to f89f72e10562 (1 revision)
2021-05-17 chromium-autoroll Roll Vulkan-ValidationLayers from 38bdcddf817f to c46a663b305b (3 revisions)
2021-05-15 chromium-autoroll Roll Vulkan-ValidationLayers from 957552062392 to 38bdcddf817f (1 revision)
2021-05-14 chromium-autoroll Roll Vulkan-ValidationLayers from 6da4ac2df971 to 957552062392 (1 revision)
2021-05-14 chromium-autoroll Roll Vulkan-ValidationLayers from da6b48f6f5f2 to 6da4ac2df971 (2 revisions)
2021-05-14 chromium-autoroll Roll SPIRV-Tools from 18d45142e7a2 to f0d110e3058b (1 revision)
2021-05-13 chromium-autoroll Roll Vulkan-ValidationLayers from 2e2e61e6aeb4 to da6b48f6f5f2 (1 revision)
2021-05-13 chromium-autoroll Roll Vulkan-ValidationLayers from e27f26557588 to 2e2e61e6aeb4 (3 revisions)
2021-05-13 chromium-autoroll Roll Vulkan-ValidationLayers from 20678fff2a19 to e27f26557588 (4 revisions)
2021-05-13 chromium-autoroll Roll SPIRV-Tools from 010cd289db8b to 18d45142e7a2 (1 revision)
2021-05-12 chromium-autoroll Roll SPIRV-Tools from f6b59599ae6c to 010cd289db8b (1 revision)
2021-05-12 chromium-autoroll Roll SPIRV-Tools from de1cae069c06 to f6b59599ae6c (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-Tools from c251814e52e6 to 1d176506710c (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-Tools from 6407a0c8a489 to c251814e52e6 (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-Tools from 535fc4091298 to 6407a0c8a489 (1 revision)
2021-05-11 chromium-autoroll Roll glslang from d234552c3095 to 202c8abae0a3 (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-Loader from 039cea5353be to a132dee142c0 (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-Tools from 202eb962485c to 535fc4091298 (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-ValidationLayers from 0aca21bce7bc to 20678fff2a19 (15 revisions)
2021-05-11 chromium-autoroll Roll Vulkan-Tools from 4ee5f2a8bee0 to 202eb962485c (1 revision)
2021-05-11 chromium-autoroll Roll glslang from 9431c53c84c1 to d234552c3095 (1 revision)
2021-05-11 chromium-autoroll Roll SPIRV-Tools from 1020e394cb12 to de1cae069c06 (1 revision)
2021-05-11 chromium-autoroll Roll Vulkan-ValidationLayers from 5ef1ec1b87b1 to 0aca21bce7bc (6 revisions)
2021-05-10 chromium-autoroll Roll Vulkan-Headers from 3f437c4a94ae to 9af411e83fb0 (1 revision)
2021-05-07 chromium-autoroll Roll Vulkan-ValidationLayers from 6330153b2b84 to 5ef1ec1b87b1 (2 revisions)
2021-05-07 chromium-autoroll Roll glslang from 41e39c615b14 to 9431c53c84c1 (1 revision)
2021-05-07 chromium-autoroll Roll SPIRV-Cross from 0eeaffe048b9 to 418542eaefdb (1 revision)
2021-05-07 chromium-autoroll Roll SPIRV-Cross from 72a2ec4c1b56 to 0eeaffe048b9 (1 revision)
2021-05-06 chromium-autoroll Roll Vulkan-ValidationLayers from 157c4bfe15cf to 6330153b2b84 (1 revision)
2021-05-05 chromium-autoroll Roll Vulkan-ValidationLayers from 5f40eb72ecd0 to 157c4bfe15cf (1 revision)
2021-05-05 chromium-autoroll Roll Vulkan-ValidationLayers from 3cafbf75e124 to 5f40eb72ecd0 (1 revision)
2021-05-05 chromium-autoroll Roll Vulkan-ValidationLayers from 3fa29a63072b to 3cafbf75e124 (7 revisions)
2021-05-04 chromium-autoroll Roll Vulkan-Loader from f14e11c9bf69 to 039cea5353be (1 revision)
2021-05-04 chromium-autoroll Roll Vulkan-Loader from 91955fbcff84 to f14e11c9bf69 (1 revision)
2021-05-04 chromium-autoroll Roll Vulkan-ValidationLayers from 0e7f7a9e108b to 3fa29a63072b (2 revisions)
2021-05-04 chromium-autoroll Roll Vulkan-Loader from 5dcea8a449c8 to 91955fbcff84 (1 revision)
2021-05-04 chromium-autoroll Roll SPIRV-Tools from 8ec9f456e614 to 1020e394cb12 (1 revision)
2021-05-04 chromium-autoroll Roll Vulkan-ValidationLayers from 6eaf131c0cd7 to 0e7f7a9e108b (2 revisions)
2021-05-03 chromium-autoroll Roll Vulkan-ValidationLayers from 61225265ebac to 6eaf131c0cd7 (1 revision)
2021-05-03 chromium-autoroll Roll glslang from 186bccdd9f8a to 41e39c615b14 (1 revision)
2021-05-03 chromium-autoroll Roll glslang from 56b17b2f2dfc to 186bccdd9f8a (1 revision)
2021-05-03 chromium-autoroll Roll Vulkan-ValidationLayers from cd5ffbe1bac1 to 61225265ebac (1 revision)
2021-05-03 chromium-autoroll Roll Vulkan-ValidationLayers from 884579ec2928 to cd5ffbe1bac1 (1 revision)
2021-05-03 chromium-autoroll Roll Vulkan-ValidationLayers from 5f00f84a15f6 to 884579ec2928 (1 revision)
2021-04-30 chromium-autoroll Roll Vulkan-ValidationLayers from a19068db1b8b to 5f00f84a15f6 (2 revisions)
2021-04-30 chromium-autoroll Roll Vulkan-ValidationLayers from 7ab4afe5052d to a19068db1b8b (1 revision)
2021-04-29 chromium-autoroll Roll Vulkan-ValidationLayers from 5363130b7570 to 7ab4afe5052d (3 revisions)
(...)
2021-03-26 chromium-autoroll Roll SPIRV-Cross from 84d1f8aa2a40 to 28ae7b8f357c (1 revision)
2021-03-26 chromium-autoroll Roll Vulkan-ValidationLayers from 5c65b37c60d8 to 0cee3a4e5088 (2 revisions)
2021-03-26 chromium-autoroll Roll SPIRV-Tools from f22793015360 to d0c73fcee18f (1 revision)
2021-03-25 chromium-autoroll Roll Vulkan-ValidationLayers from b1a10a4bc609 to 5c65b37c60d8 (3 revisions)
2021-03-25 chromium-autoroll Roll SPIRV-Tools from ecc840d30b69 to f22793015360 (1 revision)
2021-03-24 chromium-autoroll Roll Vulkan-ValidationLayers from 8d63a36ca533 to b1a10a4bc609 (1 revision)
2021-03-24 chromium-autoroll Roll Vulkan-ValidationLayers from 56b864783fd2 to 8d63a36ca533 (1 revision)
2021-03-24 chromium-autoroll Roll SPIRV-Tools from d20c9c2cf3fb to ecc840d30b69 (1 revision)
2021-03-24 chromium-autoroll Roll Vulkan-Tools from 27c21248221f to 1d3ce716dfef (1 revision)
2021-03-23 chromium-autoroll Roll Vulkan-Loader from f17f507c2472 to 5180defc0195 (1 revision)
2021-03-23 chromium-autoroll Roll Vulkan-ValidationLayers from 50fb183594f5 to 56b864783fd2 (1 revision)
2021-03-23 chromium-autoroll Roll SPIRV-Tools from bed84792f9dd to d20c9c2cf3fb (1 revision)
2021-03-23 chromium-autoroll Roll Vulkan-Loader from 1353e80d87b4 to f17f507c2472 (1 revision)
2021-03-23 chromium-autoroll Roll glslang from c51a774ebdd2 to 2c7c84c8ac99 (1 revision)
2021-03-23 chromium-autoroll Roll SPIRV-Tools from edb8399b0ff3 to bed84792f9dd (3 revisions)
2021-03-23 chromium-autoroll Roll Vulkan-ValidationLayers from 96810e2a54f8 to 50fb183594f5 (2 revisions)
2021-03-22 chromium-autoroll Roll glslang from 6701c2540bb2 to c51a774ebdd2 (2 revisions)
2021-03-22 chromium-autoroll Roll Vulkan-ValidationLayers from cd8d97e985a4 to 96810e2a54f8 (1 revision)
2021-03-22 chromium-autoroll Roll glslang from 847a19cd2b42 to 6701c2540bb2 (2 revisions)
2021-03-22 chromium-autoroll Roll Vulkan-ValidationLayers from 0480f13e233c to cd8d97e985a4 (1 revision)
2021-03-22 chromium-autoroll Roll Vulkan-ValidationLayers from a8918dfc53cf to 0480f13e233c (1 revision)
2021-03-22 chromium-autoroll Roll Vulkan-Headers from 89d366355e6f to a8d6ab19d197 (1 revision)
2021-03-21 chromium-autoroll Roll SPIRV-Tools from 6382cbb4973e to edb8399b0ff3 (1 revision)
2021-03-20 chromium-autoroll Roll SPIRV-Tools from 6578899781f6 to 6382cbb4973e (1 revision)
2021-03-20 chromium-autoroll Roll SPIRV-Tools from 75d7c14cfb07 to 6578899781f6 (1 revision)
2021-03-20 chromium-autoroll Roll SPIRV-Tools from f2a19b0150b9 to 75d7c14cfb07 (1 revision)
2021-03-19 chromium-autoroll Roll glslang from 979319b9b161 to 847a19cd2b42 (1 revision)
2021-03-19 chromium-autoroll Roll Vulkan-ValidationLayers from 309d9bea0956 to a8918dfc53cf (3 revisions)
2021-03-19 chromium-autoroll Roll SPIRV-Tools from 8f421ced3e05 to f2a19b0150b9 (1 revision)
2021-03-19 chromium-autoroll Roll SPIRV-Tools from 2b0d16a05905 to 8f421ced3e05 (1 revision)
2021-03-19 chromium-autoroll Roll SPIRV-Tools from a732e4c03cc1 to 2b0d16a05905 (1 revision)
2021-03-19 chromium-autoroll Roll SPIRV-Tools from a611be7782de to a732e4c03cc1 (1 revision)
2021-03-18 chromium-autoroll Roll glslang from d18bcd64fa40 to 979319b9b161 (1 revision)
2021-03-18 chromium-autoroll Roll Vulkan-ValidationLayers from b6c181342bff to 309d9bea0956 (2 revisions)
2021-03-18 chromium-autoroll Roll Vulkan-ValidationLayers from f8f145df59a7 to b6c181342bff (1 revision)
2021-03-18 chromium-autoroll Roll Vulkan-ValidationLayers from d5bf0be344f5 to f8f145df59a7 (2 revisions)
2021-03-18 chromium-autoroll Roll SPIRV-Tools from 4f498774db52 to a611be7782de (1 revision)
2021-03-18 chromium-autoroll Roll glslang from f5929b8c5f83 to d18bcd64fa40 (1 revision)
2021-03-17 chromium-autoroll Roll glslang from b2e5b5c559e1 to f5929b8c5f83 (1 revision)
2021-03-17 chromium-autoroll Roll Vulkan-ValidationLayers from 894604a86c46 to d5bf0be344f5 (1 revision)
2021-03-17 chromium-autoroll Roll Vulkan-ValidationLayers from e53e4e5f0cdc to 894604a86c46 (1 revision)
2021-03-17 cwallez OWNERS: Replace dsinclair with cwallez
2021-03-17 chromium-autoroll Roll SPIRV-Tools from c040bd3ae5fa to 4f498774db52 (1 revision)
2021-03-17 chromium-autoroll Roll SPIRV-Tools from 8866fd7ae27e to c040bd3ae5fa (1 revision)
2021-03-17 chromium-autoroll Roll SPIRV-Tools from 79ab273f997e to 8866fd7ae27e (3 revisions)
2021-03-16 chromium-autoroll Roll SPIRV-Tools from 042eff73fe0d to 79ab273f997e (1 revision)
2021-03-16 chromium-autoroll Roll Vulkan-ValidationLayers from 60f29ec48880 to e53e4e5f0cdc (3 revisions)
2021-03-16 chromium-autoroll Roll Vulkan-ValidationLayers from 053e2bf22dd2 to 60f29ec48880 (3 revisions)
2021-03-16 chromium-autoroll Roll SPIRV-Tools from 4100477e76c8 to 042eff73fe0d (2 revisions)
2021-03-16 chromium-autoroll Roll SPIRV-Tools from 478754c00537 to 4100477e76c8 (1 revision)

Bug: dawn:789

Created with:
  roll-dep third_party/angle third_party/vulkan-deps

Change-Id: Iacc6680ee6168390d1bf88b5bafdcef59475159d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51361
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-05-18 16:01:03 +00:00
Antonio Maiorano
be607c07a4 Remove sem::UnwrapAccess()
Bug: tint:802
Change-Id: I8bc769e4e7c2a27a8793e2851d12f75ec20c97e9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51142
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-05-18 15:26:40 +00:00
Antonio Maiorano
5f5f79c71f gitignore /build*/ folders
Useful when making multiple out of source builds from the same source.
Also made it ignore only build folders from the root, in case there's
any "build*" subfolder in the tree.

Change-Id: I0140bb3aed73d2e88a6f1165f2b4c80fb99a8cf8
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51141
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-05-18 14:42:47 +00:00
Ben Clayton
a240c480fa CloneContext: Add Remove()
Omits an object from a vector when that vector is cloned

Bug: tint:183
Change-Id: I543c885609591dcd3b930ca00b8c1a78bc61f920
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51301
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-05-18 14:26:17 +00:00
Ben Clayton
9b54a2e53c Implement Pointers and References
This change implements pointers and references as described by the WGSL
specification change in https://github.com/gpuweb/gpuweb/pull/1569.

reader/spirv:
* Now emits address-of `&expr` and indirection `*expr` operators as
  needed.
* As an identifier may now resolve to a pointer or reference type
  depending on whether the declaration is a `var`, `let` or
  parameter, `Function::identifier_values_` has been changed from
  an ID set to an ID -> Type* map.

resolver:
* Now correctly resolves all expressions to either a value type,
  reference type or pointer type.
* Validates pointer / reference rules on assignment, `var` and `let`
  construction, and usage.
* Handles the address-of and indirection operators.
* No longer does any implicit loads of pointer types.
* Storage class validation is still TODO (crbug.com/tint/809)

writer/spirv:
* Correctly handles variables and expressions of pointer and
  reference types, emitting OpLoads where necessary.

test:
* Lots of new test cases

Fixed: tint:727
Change-Id: I77d3281590e35e5a3122f5b74cdeb71a6fe51f74
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/50740
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-18 10:28:48 +00:00
Ben Clayton
d1232670ae test: Generate expected output for all tests
The expected output is far from perfect, and the generated HLSL and MSL
isn't even validated yet, so may be incorrect.

However, by committing the generated output, we get clear examples of
the currently generated output of each backend. As we land fixes and
improvements to each backend, the presubmits will require us to update
the expected test output, and so code reviews will include diffs of
each backend's generated output.

Change-Id: I5c2a9e5b796d0ab75b3ec4c7f8ad00a0a2ab166f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51224
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
2021-05-18 09:24:18 +00:00
Ben Clayton
5858dcc313 test: Move misc sample shaders to test/samples
Change-Id: I72d25393e499f85733232043fd492c2705e35c68
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51223
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
2021-05-18 08:51:48 +00:00
Hao Li
880a3d6311 Fix query index of availability in timestamp shader
Currently we use offset to calculate the index of the queries in
timestamp compute shader, which is incorrect. The offset is the buffer
offset where we start to write the query results, and has nothing to
do with query index. In the query availability detection, the query
index should be based on the parameter firstQuery.

Add new test for resolving a timestamp query twice to the same
destination buffer with potentially overlapping ranges.

Bug: dawn:434
Change-Id: I2b5c5b192cf5d987ac48187e8240a25937957f51
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/50760
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
2021-05-18 01:13:08 +00:00
Ben Clayton
6aa5a92a10 writer/hlsl: Zero-initialize var declarations
Don't construct these with undefined values

Change-Id: I6225d9be0973ebc1a8594526aa32ec6775b5e865
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51300
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-05-17 23:37:47 +00:00