8782 Commits

Author SHA1 Message Date
Ben Clayton
55ca24e696 [writer]: AppendVector() - support zero value vectors
These were not correctly handled, causing multiple writer issues.

Updated test stats:
3248 tests run, 2693 tests pass, 555 tests skipped, 0 tests failed

Fixed: tint:757
Change-Id: If92e9c2ceefe986c92ca47d23c8d6b64b155ca49
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53081
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-03 15:08:14 +00:00
Ben Clayton
b3c371031c Move texture_storage access into type
Instead of having it as a decoration.
The old style is now deprecated and will be removed soon.

See  https://github.com/gpuweb/gpuweb/pull/1735 for the WGSL spec change.

Bug: tint:846
Change-Id: Id2fa681ddf7b97cd3fa41d7b5538029d96db7e28
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53082
Reviewed-by: Corentin Wallez <cwallez@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-03 13:21:36 +00:00
Corentin Wallez
b66f630f81 Add a toggle to disallow_spirv.
This toggle will be used by Chromium to disallow the unsecured SPIR-V
path such that a renderer process can only use WGSL.

This new toggle will be covered by a test in Chromium that ensures that
in the default configuration SPIR-V is disallowed.

Bug: chromium:1214923

Change-Id: Ia67e0c7466044e1086399d995dc841426fe604c9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52781
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-06-03 12:10:06 +00:00
Ben Clayton
b07a7cead6 [tools]: Generate intrinisic test cases
Add test/intrinsics/intrinsics.wgsl.tmpl that generates a vast set of intrinsic overload permutations into test/intrinsics/gen/...

Add expected output for all of these, including 'SKIP' headers for those that currently fail.

Fixed: tint:832
Change-Id: Id6888df52c07f35e7a55199f2ad4d842c6e2595c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53051
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-03 11:26:17 +00:00
Dawn Autoroller
d8ea0b15df Roll Tint from 8324d227a1c4 to 142143109a6b (7 revisions)
https://dawn.googlesource.com/tint.git/+log/8324d227a1c4..142143109a6b

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 enga@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: enga@google.com
Change-Id: I6045cc2592f918d9513a122803e8d4f50fb6bcb0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53160
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-03 11:14:16 +00:00
Ben Clayton
2270b434bc [tools] test-runner: Add --generate-skip flag
Generates expected cases that fail, using a SKIP header

Change-Id: I2738fa2cf47c715fe6e978edf51aa928c5e3b216
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53049
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2021-06-03 10:47:24 +00:00
Ben Clayton
194c58f89c intrinsics.def: Support [[stage()]] decorations on overloads
Specifies that the overload can only be used in the specific stages.
Actually validating this with the IntrinsicTable is TODO.

Bug: tint:657
Bug: tint:832
Change-Id: I11ffefee22e5f26103f008b23d16066a2a3ba90d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53050
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
2021-06-03 09:53:34 +00:00
James Price
bb0496e52a test: Add E2E test coverage for shader IO
This provides much more complete coverage than what we have in the
unit tests. We now test:
- All builtins, for all stages, both struct and non-struct
- Multiple location attributes for vertex and fragment stages, both
  struct and non-struct
- Mixing builtins and location attributes, whilst mixing struct and
  non-struct
- A few "interesting" cases of IO structs being shared between
  different functions, stages, and with an SSBO variable

There are 7 skipped tests for MSL due to two different MSL bugs which
will be fixed in upcoming patches.

Change-Id: I8b802591762c8ff018e01bf37838551e353162b1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53120
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
2021-06-03 09:38:34 +00:00
Ben Clayton
142143109a intrinsic-gen: Additional functionality
* Add new template utilty functions, including the ability to split out multiple files.
* Add basic printing of the semantic overloads.
* Add a pointer from the overload to the function
* Change TemplateArguments from a list of FQN to a list of interface{} (any).  This is required as once the overload is permutated, some arguments will need to hold integers.

This will be used by the test generator.

Bug: tint:832
Change-Id: Idbfbe85e52489b31850cbb0ee7430bb4b021530e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53046
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-06-03 09:16:14 +00:00
Ben Clayton
fa9a9b5528 Support tools/src/fileutils on macos
Change-Id: Ibfb6b92f0df14822994a5c355f6d2044326f7028
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53080
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-06-03 08:49:04 +00:00
Ben Clayton
cb7e5d4252 reader/wgsl: Support access on storage texture
Add a deprecated warning for the old syntax.

Bug: tint:846
Change-Id: Id46af28054b32c2ba6f1b96556da023f46a6b87b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53048
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-06-03 08:44:14 +00:00
Ben Clayton
04bd2e8083 intrinsic-gen: Support decorations on enum entries
Add `[[internal]]` decoration on `storage_class.handle` - its not an entry that should ever appear in WGSL.

Bug: tint:832
Change-Id: I210f64c495bf37a8f48422919248806e7b096638
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53045
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-03 08:42:14 +00:00
Ben Clayton
57d6bd2ef3 intrinsics.def: Tighten up texture constraints
Nothing was limiting the texel format to i32, u32, f32, and so the resolver was accepting any type here, and things would break in the backends.

Also limit texture access controls to read or write. read_write is not supported for textures currently.

Change-Id: I41c54a9b285800ad89aa1c4ea07e142ba0506384
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53044
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-03 08:32:44 +00:00
Ben Clayton
efb741fe13 resolver: Check IsStorable() earlier for array els
This was done in ValidateArray(), but this comes after the call to DefaultAlignAndSize(), which will ICE if the type is not storable.

Change-Id: Ia3f1b640f42a45362487c3156237b59ea6fed68b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53043
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-03 08:24:55 +00:00
Ben Clayton
0e66b403a0 Resolver: Remove SetType() that takes ast::Type
This was calling Type() without actually checking that the resolve succeeded.
Have the caller resolve the AST type to the semantic type, so that there's a sensible place to handle errors.

Change-Id: I8fae91854377994f68a924fe8104a48a8afe150e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53042
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-03 08:17:44 +00:00
Jiawei Shao
b6c54a6ec2 Remove useless function declarations
This patch removes the function declarations which don't have their
function bodies.

BUG=None

Change-Id: Id16c2a225319331cdbc3a827ebbabf58c16e1dfd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53140
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-06-03 07:42:15 +00:00
Dawn Autoroller
857eac2ade Roll Tint from a70c14dbcef6 to 8324d227a1c4 (2 revisions)
https://dawn.googlesource.com/tint.git/+log/a70c14dbcef6..8324d227a1c4

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 enga@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: enga@google.com
Change-Id: I93f8ee87e334b89f25769a5369dd54b79a2a91db
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53101
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-03 05:15:35 +00:00
Jiawei Shao
661928894e Re-enable the T2T copy workaround on Intel Gen9 and Gen9.5 GPUs
This patch re-enables the T2T copy workaroudn on Intel Gen9 and Gen
9.5 GPUs because the latest released Intel D3D driver still cannot
handle some copies correctly in some copy shapes.

BUG=chromium:1161355

Change-Id: Ia96fe05c3e027f56a734331de03fe42745754cc3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52960
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-06-03 00:35:04 +00:00
Dawn Autoroller
69cf721b29 Roll Tint from 5c0820c76be6 to a70c14dbcef6 (6 revisions)
https://dawn.googlesource.com/tint.git/+log/5c0820c76be6..a70c14dbcef6

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 enga@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: dawn:728
Tbr: enga@google.com
Change-Id: I2f1d4889cf8966740bb39a75303111b0b274aef6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53100
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-02 23:31:14 +00:00
Antonio Maiorano
8324d227a1 tmpfile_windows: fix temp file name collisions when appending an extension
Formerly, tmpnam_s was used to ensure a unique file name, but then we'd
append an extension to it, invalidating its uniqueness. Instead, we now
do our own uniqueness check by attempting to create a unique empty file
for write with new names until it succeeds.

Bug: tint:812
Change-Id: I90b85074ad2281f9904f24e8fddda80d67e61ba7
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53061
Auto-Submit: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-06-02 23:22:44 +00:00
Antonio Maiorano
a7f47b49e7 command_windows: fix deadlock when waiting on stdout and stderr of process
Using WaitForMultipleObjects on the handles to stdout and stderr streams
is apparently not the right way to do this. Instead, we create 2
threads, one that reads stdout, and one that reads stderr, and we wait
on those threads, along with the process handle.

Bug: tint:812
Change-Id: I5975e4d649b58d0f8bffb76dec5a3f4079513e04
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53060
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Auto-Submit: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-06-02 22:57:24 +00:00
Ben Clayton
a70c14dbce main: Replace --dawn-validation with --validate
Performs output validation with spirv-val for SPIR-V (as before), HLSL
validation with DXC, and MSL validation with the Metal Shader Compiler.

Disable HLSL tests that fail to validate

Bug: tint:812
Change-Id: If78c351b4e23c7fb50d333eacf9ee7cc81d18564
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51280
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-06-02 21:02:34 +00:00
James Price
a7a23eaa9e test: Fix type of vertex_index builtin
This should be a u32, but we are missing validation rules for builtin
types (opened crbug.com/tint/861 for this). This meant that we were
generating invalid HLSL for this test.

Change-Id: Ib2189d98e5e515e41374372c0f8963df04eb1b01
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53001
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-06-02 20:53:14 +00:00
Ben Clayton
815cfd14e7 docs: Add a guide for writing diagnostic messages
Change-Id: I552a062931a3ce7a51189559b05c9275f7b205cf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51785
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-02 20:50:24 +00:00
Ben Clayton
f5163d01b5 writer/wgsl: Handle ExternalTexture
Bug: dawn:728
Change-Id: Idda800c301ac88397aeeb4cd75d03d59a434c30f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53041
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-02 20:12:34 +00:00
Ben Clayton
e3cd216e29 main: Print WGSL from correct program
PrintWGSL() was using the moved program, triggering an ICE

Change-Id: I8976feac8712cc883d1b1b4bdca35a929bcb846a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53040
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-06-02 20:01:54 +00:00
Dawn Autoroller
1413b351fa Roll Tint from 5ed3f68eb528 to 5c0820c76be6 (1 revision)
https://dawn.googlesource.com/tint.git/+log/5ed3f68eb528..5c0820c76be6

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 enga@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: enga@google.com
Change-Id: I9b70ca14c185314c8aa3ae58f077d977f45e131e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53020
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-02 18:32:38 +00:00
James Price
94ac078990 writer/msl: Wrap each array type in a struct
This allows them to be used in various places that WGSL allows, such
as function return types and parameters, and as the type of the RHS of
an assignment.

Fixed: tint:814
Fixed: tint:820
Change-Id: Idb6a901b9a34e96bb9733cc158191e7b3bafaa0e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52844
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-06-02 17:23:03 +00:00
David Neto
5c0820c76b spirv-writer: support isNormal
Fixed: tint:158
Change-Id: Iabe7c1afe7dea87e62277bacb2086ee6d2964e78
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52460
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-06-02 17:09:43 +00:00
Ryan Harrison
59e16c9b02 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=dawn:734

Change-Id: Ifa8018cf88f0d9a6e025d3a2009e9f8ed84dd22d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52980
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-06-02 15:48:33 +00:00
Dawn Autoroller
0140785136 Roll Tint from b487c71e59d8 to 5ed3f68eb528 (6 revisions)
https://dawn.googlesource.com/tint.git/+log/b487c71e59d8..5ed3f68eb528

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 enga@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: enga@google.com
Change-Id: I361c5820f43b0e4953672e1e26c2b5219ce5ac1a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52901
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-01 21:26:13 +00:00
Austin Eng
3cd8c43857 Expand NonzeroTextureCreationTests to DepthStencil textures
And fix a bug where the Metal backend hit an ASSERT when
clearing combined depth/stencil textures by copy.

Bug: dawn:780
Change-Id: Idf3061570f63d0abd3e8a41d0c251db4f6dc7e0c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51840
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-06-01 21:25:33 +00:00
Austin Eng
ff70f98545 Expand coverage of NonzeroTextureCreationTests
Expand coverage for these tests by using combinatorial test
parameterization. Covers more cases and expands coverage to
compressed textures. This caught a bug on Vulkan where only the
first region for multi-layer compressed texture copies was cleared.
It also caught a driver bug on some Intel platforms, where clearing
the non-zero mip of a depth texture does not work.

Bug: dawn:780
Change-Id: Ic601bae111c1c2dd150f569d7e02759ca765201e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51680
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-06-01 20:43:53 +00:00
Yunchao He
88097989d0 Implement 3D texture copy splitter on D3D12: preparation
This change mainly is a preparation for 3D texture copy splitter,
which will be based on 2D texture copy splitter and then revise
or recompute incorrect copy regions if needed.

The change itself mainly rename some variables and comments and
distiguish 3D texture copies from 2D (array) texture copies. For
example, term slice is changed to layer if it only refers to layer
slices in 2D textures and it is not shared by depth slices in 3D
textures.

Bug: dawn:547

Change-Id: I6f84134a4fbcb90708901a1059b60e78e1a25ca5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51900
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-06-01 19:55:33 +00:00
David Neto
5ed3f68eb5 spirv-reader: unwrap references for conversions
Bug: tint:804
Change-Id: I39a4d20de17a5c2ae23e9425d85559b7bb70fd22
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52845
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-06-01 19:46:31 +00:00
Brandon Jones
39633e2da2 Implement External Texture Binding Functionality
Adds functionality to BindGroupLayout and BindGroup to allow
GPUExternalTexture bindings.

Bug: dawn:728
Change-Id: I651b28606dceda15f0a944711ddba639df77c1a3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47381
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-06-01 19:45:53 +00:00
Ben Clayton
b29a59de6e src: Reimplement IntrinsicTable from intrisics.def
Add a template file to generate intrinsic_table.inl and
include this from intrinsic_table.cc.

Speeds up execution of the unittests by 20 - 30%, and
reduces the executable size by a couple of percent.

Bug: tint:832
Change-Id: Ifa7f3c42202c92e97b46ed1716ece48660dd29dd
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52504
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: David Neto <dneto@google.com>
2021-06-01 19:06:31 +00:00
David Neto
ae5437cc87 spirv-reader: ignore phi inputs coming from non-ordered blocks
Bug: tint:804
Change-Id: I789c05a31d869052036351b8c173ef8cd7191cc2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52841
Auto-Submit: David Neto <dneto@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-06-01 18:52:01 +00:00
Austin Eng
a9e39e11a8 Add utilities for printing Dawn enums and bitmasks
This is a header-only utility so it can be easily included and
used anyhere. Include it in DawnTest.h to automatically pick up
definitions to print test parameters.

Also, work around bot limitations for very-long test names.

Bug: none
Change-Id: I940263ab0a4cc415b06fa04749694f16ff08335c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51841
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-06-01 18:49:12 +00:00
Francois Guthmann
f56dab0d72 Added new toggle EmitHLSLDebugSymbols to improve shader debugging capabilities by external tools.
Bug: dawn:776
Change-Id: I1a9082463ee61d7b0427740b4075d6a69c3b5946
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52282
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-06-01 18:46:03 +00:00
Antonio Maiorano
0895c238e3 Fix integer vector bitwise ops not being allowed
Bug: 768
Change-Id: Id5023cd32b9368e9c0634bdad884ad199f17aa80
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52943
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-06-01 17:42:41 +00:00
David Neto
2871ad9138 spirv-reader: emit null for value from unreachable block
Sometimes a value can come from a block which does not appear
in the structured block order.  That block will never execute,
so we can safely use the null value instead.

Bug: tint:804
Change-Id: Idc1a6c4f76f14a1d76919a95e5a65e56018ce68f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52840
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: David Neto <dneto@google.com>
2021-06-01 16:28:43 +00:00
Dawn Autoroller
8d67ca58be Roll Tint from 126adb1bbbbb to b487c71e59d8 (5 revisions)
https://dawn.googlesource.com/tint.git/+log/126adb1bbbbb..b487c71e59d8

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 enga@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: enga@google.com
Change-Id: I44fd61f7ab6f8956136d232c33eb4208fddc51ef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52900
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-01 16:26:23 +00:00
Corentin Wallez
ac61042f8b docs/contributing.md: Explain how to start a review.
Also mention that the Bug: tag should be at the bottom of the commit
message.

Bug: dawn:23
Change-Id: Ib4e6b3c3db2f97af94c7e8240af90f85add5547f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52780
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-06-01 16:08:22 +00:00
Ben Clayton
e8177dade6 Add tools/src/lut: A lookup table with compaction
Used by the intrinsic definition generator.

Bug: tint:832
Change-Id: I000b1ebe067117e533b3edd8a3fac67a3cbc14c9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52601
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-01 15:41:11 +00:00
James Price
b487c71e59 writer: Add parentheses for array accesses
The LHS should be wrapped in parentheses if it has lower precedence
than the access. This fixes issues with pointer dereferences followed
by array accesses, where we were previously generating *a[i].

Change-Id: I639f94b642f32119350b0a0d23f4ff2a5d6c3c25
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52843
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-06-01 12:18:10 +00:00
James Price
42220ba1b2 writer/msl: Hoist array and struct initializers
Pull the HLSL transformation out to a standalone transform that can be
used by both HLSL and MSL.

The new E2E tests do not yet pass for MSL because they produce array
assignments, which will be addressed in the next patch.

Fixed: tint:826
Change-Id: Idc27c81ad45e3d4ab96d82663927d2fc1384618e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52842
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-06-01 12:08:20 +00:00
Dawn Autoroller
e98979415e Roll Tint from 39c05a902fda to 126adb1bbbbb (1 revision)
https://dawn.googlesource.com/tint.git/+log/39c05a902fda..126adb1bbbbb

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 enga@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: enga@google.com
Change-Id: Ie966e25d7a529db093eb762f9a0197e69d8af483
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/52860
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-06-01 10:23:44 +00:00
Ben Clayton
1934f59427 src/sem: Generate ParameterUsage from intrinsics.def
Add a template file to generate parameter_usage.h and
parameter_usage.cc when using tools/intrinsic-gen

Bug: tint:832
Change-Id: I0ca4d092fdcda7d7846b968d43202f34450e516d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52644
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-01 10:00:10 +00:00
Ben Clayton
21f8772d65 src/sem: Generate IntrinsicType from intrinsics.def
Add a template file to generate intrinsic_type.h and
intrinsic_type.cc when using tools/intrinsic-gen

Bug: tint:832
Change-Id: I35ddfd497d6ab424dc49a18a9fd7e5eb7f8363b0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52643
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-06-01 09:55:00 +00:00