8443 Commits

Author SHA1 Message Date
Ben Clayton
10ec9a706f Reenable D3D12 texture tests with tint generator
Issues now resolved

Fixed: tint:684
Fixed: tint:689
Fixed: tint:690
Fixed: tint:691
Change-Id: Ib348ed52a17538a023fdd3c8f2cd0c2d847a09ad
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47427
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-12 18:41:54 +00:00
Ben Clayton
3e2476967d Reenable D3D12 test OpArrayLengthTest with tint generator
Array lengths now work

Fixed: dawn:657
Change-Id: I31d72ae02fb31edbc2143e1d3356681a283a4a16
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47426
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-12 18:00:14 +00:00
Ben Clayton
7799571b50 Reenable D3D12 test TwoComputeInModule with tint generator
Bug fixed a while back.

Fixed: tint:297
Change-Id: Ia5f2896de10a67309924cdc93e3a73e1abee7a0d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47425
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-12 17:42:56 +00:00
Ben Clayton
51edb2b2d0 Reenable D3D12 tests that use workgroup storage
Now fixed.

Fixed: tint:688
Change-Id: Ic1fcd487e5fc242dc150e9db1a163c2af07c6f09
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46449
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-12 17:41:23 +00:00
Dawn Autoroller
faea7f7841 Roll Tint from c8ffbe43a7b3 to c3bbb4d079e4 (1 revision)
https://dawn.googlesource.com/tint.git/+log/c8ffbe43a7b3..c3bbb4d079e4

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 alanbaker@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: alanbaker@google.com
Change-Id: I7f19615697faab8ebde0ece7f20637f115c53ce8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47580
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-12 15:20:43 +00:00
David Neto
c3bbb4d079 Roll third_party dependencies
Roll third_party/gpuweb-cts/ dea8ed8c2..177a4faf0 (25 commits)

dea8ed8c2b..177a4faf0a

$ git log dea8ed8c2..177a4faf0 --date=short --no-merges --format='%ad %ae %s'
2021-04-06 enga Implement api,operation,rendering,draw:vertex_attributes,basic (#522)
2021-04-06 enga Implement api,operation,render_pipeline,primitive_topology:unaligned_vertex_count (#524)
2021-04-06 enga Convert primitive topology tests to a single parameterized test (#523)
2021-04-06 shrekshao Some depth related tests (#519)
2021-04-06 yunchao.he Fix a bug in createTexture validation for multisample (#521)
2021-04-05 enga node.tsconfig.json: include more files (#520)
2021-04-02 enga gen_wpt_cts_html: Split lines by either \r\n or \n (#517)
2021-04-02 enga checklist.ts: Split lines by either \r\n or \n (#518)
2021-03-31 enga Fix multicase test expectation filtering (#516)
2021-03-30 enga WPT: Pass expectations to worker.run (#515)
2021-03-25 shrekshao Fix wgsl .0 suffix to indicate f32 type (#514)
2021-03-25 hao.x.li Clean up TODOs for queries validation (#511)
2021-03-24 enrico.galli Add validation tests for setBindGroup (#493)
2021-03-24 enga Fix check of `loadWebGPUExpectations` for undefined (#512)
2021-03-18 kainino Add stubs for new tests and organize a few old ones (#510)
2021-03-19 jiawei.shao Add validation tests on buffer offset in B2T and T2B copies with depth stencil formats (#506)
2021-03-18 2154796+austinEng Support passing skip/fail test expectations in wpt or by command line (#509)
2021-03-18 kainino capability_checks tests should expect exceptions not validation errors (#508)
2021-03-18 2154796+austinEng Implement api,operation,rendering,draw:arguments:* (#498)
2021-03-18 hao.x.li Add validation tests plan for Occlusion Query (#491)
2021-03-11 kainino Add a tool to verify tracking spreadsheet
2021-03-17 kainino move an error out of loadTreeForQuery
2021-03-17 kainino add includeEmptySubtrees to iterateSubtreeCollapsedQueries
2021-03-17 kainino Add StacklessError for less annoying fatal errors in scripts
2021-03-17 2154796+austinEng Don't validate test modules in `makeListing` (#507)

Created with:
  roll-dep third_party/gpuweb-cts

Change-Id: I60610afcd9533fc6905134a1b224c9946a475316

Roll third_party/spirv-tools/ 4f498774d..212895d4c (21 commits)

4f498774db..212895d4c2

$ git log 4f498774d..212895d4c --date=short --no-merges --format='%ad %ae %s'
2021-04-02 alastair.donaldson Typo fix (#4225)
2021-03-31 greg Add interpolate legalization pass (#4220)
2021-03-27 alastair.donaldson spirv-fuzz: Efficiency improvements to fuzzer pass (#4188)
2021-03-27 alastair.donaldson spirv-fuzz: Avoid invalidating analyses when splitting blocks (#4218)
2021-03-27 alastair.donaldson spirv-fuzz: Do not add too many dead blocks (#4217)
2021-03-26 alastair.donaldson spirv-fuzz: Optimize transformations (#4216)
2021-03-25 vasniktel spirv-fuzz: Fix comments #4215
2021-03-24 jason Add validation for SPV_EXT_shader_atomic_float_min_max (#4105)
2021-03-23 dneto Make spirv-tools-build-version a common dependency (#4210)
2021-03-23 alastair.donaldson spirv-fuzz: Call by value and move in transformations (#4208)
2021-03-23 alastair.donaldson spirv-fuzz: Remove destructors from FuzzerPass subclasses (#4209)
2021-03-23 alastair.donaldson spirv-fuzz: Improve transformation test oracles (#4207)
2021-03-21 vasniktel spirv-fuzz: Add WGSL compatibility flag to context (#4193)
2021-03-20 alastair.donaldson spirv-fuzz: Avoid invalidating analyses in various transformations (#4205)
2021-03-20 alastair.donaldson spirv-fuzz: Manage available instructions efficiently (#4177)
2021-03-20 alastair.donaldson spirv-fuzz: Remove AddType methods from fuzzerutil (#4204)
2021-03-19 46493288+sfricke-samsung spirv-val: Refactor of atomic pass (#4200)
2021-03-19 46493288+sfricke-samsung spirv-val: Label VUID 04643 (#4202)
2021-03-19 46493288+sfricke-samsung spirv-val: Label VUID 04667 (#4201)
2021-03-19 alastair.donaldson spirv-fuzz: Apply fuzzer pass before checking exit conditions (#4199)
2021-03-18 46493288+sfricke-samsung spirv-val: Fix Int64Atomics check (#4192)

Created with:
  roll-dep third_party/spirv-tools

Change-Id: Ieac13912b9899fe70b8b304f717f0f5e10155199

Roll third_party/spirv-headers/ bcf55210f..f88a1f98f (2 commits)

bcf55210f1..f88a1f98fa

$ git log bcf55210f..f88a1f98f --date=short --no-merges --format='%ad %ae %s'
2021-03-25 michael.kinsner Add xml section for memory operand bit allocation tracking, and reserve two bits for an upcoming Intel extension
2021-03-24 baldurk Add NonSemantic.Vulkan.DebugInfo.100 JSON/header

Created with:
  roll-dep third_party/spirv-headers

Change-Id: Ia59440c53433e5624d5d1d090ec5b9c194ba5c21

Roll third_party/googletest/ b7d472f12..5c8ca58ed (14 commits)

b7d472f122..5c8ca58edf

$ git log b7d472f12..5c8ca58ed --date=short --no-merges --format='%ad %ae %s'
2021-04-05 absl-team Googletest export
2021-04-02 absl-team Googletest export
2021-03-25 absl-team Googletest export
2021-03-24 absl-team Googletest export
2021-03-24 absl-team Googletest export
2021-03-24 absl-team Googletest export
2021-03-24 absl-team Googletest export
2021-03-23 absl-team Googletest export
2021-03-22 absl-team Googletest export
2021-03-22 absl-team Googletest export
2021-03-22 absl-team Googletest export
2021-03-20 absl-team Googletest export
2021-03-14 zekewarren Use @platforms instead of @bazel_tools for windows constraint
2020-12-04 zed.three CMake: Add namespaced ALIAS library

Created with:
  roll-dep third_party/googletest

Change-Id: I07e2fbdda46a67d76797c08f4266d311404150de
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47022
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2021-04-12 14:41:32 +00:00
Dawn Autoroller
edb79bafba Roll Tint from 6f7986d9b543 to c8ffbe43a7b3 (2 revisions)
https://dawn.googlesource.com/tint.git/+log/6f7986d9b543..c8ffbe43a7b3

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 jrprice@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: jrprice@google.com
Change-Id: I580fe32893452026f6b06e5b0e7ac613aea5f719
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47520
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-10 19:38:49 +00:00
James Price
c8ffbe43a7 Output all diagnostics from tint executable
Otherwise warnings are not emitted unless there is also an error.

Change-Id: If417f75fbdd246b1f792a0f63b83274c8f2272e3
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47481
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2021-04-09 20:14:18 +00:00
James Price
3ee8c37cb6 [wgsl-reader] Deprecate old syntax for entry point IO
Bug: tint:697
Change-Id: Ia6e066678753ef12dc41a753ba33c924bb662148
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47480
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2021-04-09 19:58:58 +00:00
Dawn Autoroller
d37aba4573 Roll Tint from c76ec15b4589 to 6f7986d9b543 (15 revisions)
https://dawn.googlesource.com/tint.git/+log/c76ec15b4589..6f7986d9b543

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 jrprice@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: jrprice@google.com
Change-Id: I6cfa868d9bb6d6018cdd3467d95a29dafb5a1713
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47460
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-09 18:54:48 +00:00
Brian Ho
8a2c179239 Remove dummy extension types
Now that we have a real extension type (PrimitiveDepthClampingState),
we can replace the dummy extensions used in the WireExtensionTests
with the real deal.

Change-Id: I43dfa66f2cc909b5fc95b55382d3cb53ce022a0f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47300
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
2021-04-09 18:41:19 +00:00
Ben Clayton
9b606f7a25 ShaderModule: Keep the tint::Source::File alive
Tint diagnostics hold a raw pointer to the tint::Source::File, so that source snippets can be printed.
The tint::Source::File pointer was taken from a stack allocation, and the diagnostics were left with a dead pointer.
Have the ShaderModuleParseResult keep the tint::Source::File alive with a PIMPL unique_ptr.

Change-Id: I80d77516afd4012e15992821e060ef3038eba1c1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47422
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-09 18:22:28 +00:00
Ben Clayton
9178d9bf35 Tweak BindGroupTests to workaround FXC bug
Constructing a float2x2 from a float4 in a ConstantBuffer by extracting individual scalars with the array-index operator appears to produce invalid DXBC.

Tweak the test so that we use .xy, .zw swizzles instead.

Bug: tint:681
Change-Id: I027f8df96f2a5fda355668b35773d79f4fcdc08b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47421
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-04-09 18:22:18 +00:00
Ben Clayton
6f7986d9b5 writer/hlsl: Use SampleCmpLevelZero instead of SampleCmp
Currently WGSL does not allow a mip-level to be specified for `sampleCompare`, and cs_5_1 does not allow SampleCmp to be used.

Bug: tint:684
Change-Id: I53f35205185a0a1ee0dd5224fa1d8cd0ffedbea1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47429
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-04-09 18:20:18 +00:00
Corentin Wallez
99bfeeb630 D3D12: Implement initial surface-based swapchains
Bug:dawn:269

Change-Id: I012232e71f3b7aba8ea45899b3b1790d07de835c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/33785
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-04-09 18:19:48 +00:00
Ben Clayton
804a699ea5 writer/hlsl: Include format type for sampled textures
Required for correct output of .Load() functions

Bug: tint:689
Change-Id: I5e5ea068700bbe2239f04dc81da9acb7abce0210
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47225
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-04-09 17:50:08 +00:00
Ben Clayton
6a802cd3e4 writer/hlsl: Move the renamer into the sanitizer transform
The renamer logic in the HLSL writer was inconsistent, and actually
broke some valid shaders.

Change-Id: I8fbddc7e657f5509b18435fdf352a39d83c1b89c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47224
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-04-09 17:28:18 +00:00
Ben Clayton
003fa8ffd6 Remove LocalReferencedBuiltinVariables()
It ignored entry point builtin parameters, meaning it was mostly useless.
Was only used by the FirstIndexOffset, which has been re-written.

Change-Id: I26abd69201576cf33b1a71e8e6a1b914871a2a74
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47223
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-04-09 16:54:48 +00:00
Ben Clayton
962d46ec56 Fixup all doxygen warnings
No idea why the operator<<() functions have started moaning now.

Change-Id: I338b96c53888f4ddb8e42283a6dcda7708e567f0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47431
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-04-09 16:51:38 +00:00
Ben Clayton
1d618b1664 transform: Reimplement FirstIndexOffset
* It didn't always produce valid WGSL (crbug.com/tint/687)
* It didn't handle builtins as entry point parameters
* It used hard-coded symbols that could collide
* It didn't use DataMap for input.

The new implementation addresses all of this.

Bug: tint:687
Change-Id: I447bec530b45414ebb8baeb4ee18261d73d1c0d2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47222
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-04-09 16:19:48 +00:00
Ben Clayton
e9c4984489 semantic: Add Function::Parameters(), MemberAccessorExpression subtypes
Add semantic::Swizzle and semantic::StructMemberAccess, both deriving from MemberAccessorExpression

Add semantic::Function::Parameters() to list the semantic::Variable parameters for the function.

Change-Id: I8cc69f3738380c14f61d051ee2989be6194d148d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47220
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-04-09 13:56:08 +00:00
James Price
f8f31a458f Automatically run entry point IO canonicalization
Avoids the need for downstream users to manually run this transform.

Change-Id: I0c63e2fd8b6ad49b752ed1757370e386171481cb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47440
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-04-09 13:50:38 +00:00
Antonio Maiorano
71512e30ca Remove validator.h
With this change, the Validator is fully removed from Tint, including
from it's public API.

Fix: tint:642
Change-Id: Id4867cc3866bb2ea09eff499537d58b938d18f43
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47125
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-04-09 13:26:38 +00:00
Ben Clayton
e2c775f4bb writer/hlsl: Fix storage buffers
Use the new CalculateArrayLength and DecomposeStorageAccess transforms to simplify storage buffer patterns before running the HLSL writer.

The HLSL writer now handles the InternalDecorations for the internal load, store, and buffer-length intrinsics.

GeneratorImpl::EmitStorageBufferAccessor() has now been entirely removed, as all this primitive load / store decomposition performed by DecomposeStorageAccess.

TODOs around runtime arrays have been removed, as this is now handled by CalculateArrayLength.

Bug: tint:185
Bug: tint:683
Change-Id: Ie25a527e7a22da52778c4477cfc22501de558a41
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/46878
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-04-09 13:20:28 +00:00
Corentin Wallez
5ce6472b1e Fix D3D12 Sampler Heap tests to reference their bindings in WGSL
Tint only reflects the bindings that are statically used so before this
fix it would produce an empty pipeline layout. Fix this by statically
referencing the sampler binding in the shader.

Fixed: dawn:754
Change-Id: I381acd9adb7d1e80ccf0642b5189750a5a43de25
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47420
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-04-09 12:08:18 +00:00
Ben Clayton
015b9aa93a Add transform::CalculateArrayLength
Used to used to replace calls to arrayLength() with a value calculated from the size of the storage buffer.

Bug: tint:185
Change-Id: If7ddc8dad2ed3d20c1d76b5f48bfd2c7634f96e2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/46877
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-04-09 10:28:48 +00:00
Ben Clayton
6d30523a11 Add transform::DecomposeStorageAccess
Used to breakdown storage buffer reads and writes into primitive loads and stores.

Bug: tint:683
Change-Id: I92983deef7485bc1a6a5d9921ec82f8e19b09744
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/46876
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2021-04-09 09:10:38 +00:00
Jiawei Shao
59f2038dce Report error when plane0 is not a valid object in CreateExternalTexture
BUG=chromium:1197329
TEST=dawn_unittests

Change-Id: I801e1d8800c4138e1a3d6040cf623c58063bc30b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47400
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-04-09 07:31:37 +00:00
James Price
3c1d4870e3 [inspector] Add support for new entry point IO syntax
Fixed: tint:706
Change-Id: Ia5625a67aaf68665cd003503b6da1bb37c0ff4b1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47282
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-04-08 22:41:08 +00:00
James Price
daf1f1c0a8 Add ProgramBuilder::Param() helpers and use them
Fix some SPIR-V tests that were wrongly expecting parameters to be
loaded from memory as a result of them not being const.

Change-Id: Ieab6f1edd4a4ba6efd226fe190e7a49b309048c5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47281
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-04-08 22:15:48 +00:00
James Price
a12ccb20a0 [ast] Add helpers for searching a decoration list
This is a commonly used pattern.

Change-Id: I698397c93c33db64c53cbe8662186e1976075b80
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47280
Auto-Submit: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-04-08 21:53:27 +00:00
Dawn Autoroller
4a7c120456 Roll Tint from 933d44a2c8b9 to c76ec15b4589 (8 revisions)
https://dawn.googlesource.com/tint.git/+log/933d44a2c8b9..c76ec15b4589

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 jrprice@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: jrprice@google.com
Change-Id: Ia960626eff24fa6951a6993f6e3f6e59a1c74632
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47340
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-08 21:17:27 +00:00
Antonio Maiorano
978c2e0105 Remove usage of tint::Validator
Validation is now automatically performed, and the Validator class is
now redundant and will soon be removed from Tint.

Bug: tint:642
Change-Id: I9ddbe523d85e2a4dfeff6d08324a6ca368d6cc74
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47124
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-04-08 19:50:07 +00:00
Corentin Wallez
5d2f2042de Only allow CompareFunction::Undefined for samplerDesc.compare
The various backends hit UNREACHABLE() during pipeline creation if
depthStencil.depthCompare (or likewise for stencil) are set to
undefined.

Bug: chromium:1195694
Change-Id: Ibf4d8d47b4c98343dce3caccdf79ee90c0de899f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46863
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-08 18:42:47 +00:00
Yunchao He
1e45c5e764 Add unsafe API tests for 3D textures
This change also marks 3D view creation as Unsafe API.

BUG: dawn:547

Change-Id: Icdb7b48f19054d70258363f6d58ded957be72b70
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46723
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-08 18:32:17 +00:00
Ben Clayton
c76ec15b45 reader/wgsl: Add deprecation warning for [[offset]]
Bug: tint:626
Change-Id: I3e1074bbf104d73c3a2f71234ff7821d0481ad1a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47142
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-04-08 18:11:27 +00:00
Bryan Bernhart
9002c67ab4 D3D12: Disable NV12SampleYUVtoRGB on NV bot
Test is flaky on the NV bot so it's being disabled
as I investigate.

BUG=dawn:733

Change-Id: I9b721f05665cefe8a6eee53fe691f83071484965
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47260
Reviewed-by: Corentin Wallez <cwallez@google.com>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
2021-04-08 16:54:07 +00:00
Ben Clayton
571f2b7363 wgsl: Deprecate 'const' for 'let'
Renamed with:
https://github.com/gpuweb/gpuweb/pull/1574

Bug: tint:699
Change-Id: I4dda868abe4c5bc0cba46bc81d9eb297a0663717
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47141
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2021-04-08 15:46:17 +00:00
David Neto
fae0aa6e72 Add a style guide
Change-Id: I13bf82440cdf5c9268e8cc0d35a1119ebf9a9ed0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/42200
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: David Neto <dneto@google.com>
2021-04-08 15:10:47 +00:00
Yunchao He
0da94c3d66 Use __VA_ARGS__ for texture expectation helpers/macros
After we applied __VA_ARGS__  in macros and use {x, y} and {w, h}
to replace (x, y) and (w, h) in EXPECT_TEXTURE_RGBA8_EQ and
EXPECT_TEXTURE_FLOAT_EQ, we can use the more general macro
EXPECT_TEXTURE_EQ. Then these two macros can be removed. Austin
has already put a TODO for this change but didn't do that.

utils::MakeOrigin and utils::MakeExtent are removed because they
are not needed.

In addition, this change removes 0 in callers for parameter level,
because level's default values is 0 in helpers implementation.

BUG: dawn:748

Change-Id: Iece4db7a8ed1d47b57988412f1c897205e7403d4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47100
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-08 14:58:42 +00:00
David Neto
80767413b8 spirv-reader: fix position calculation of for phi var decl
Fixed: tint:495
Change-Id: I93f1b289eb33c2bda8b661f591a1c8dde775b1ab
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/46220
Commit-Queue: David Neto <dneto@google.com>
Commit-Queue: Alan Baker <alanbaker@google.com>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
2021-04-08 14:51:57 +00:00
Ben Clayton
586fca472d CloneContext: Fix CloneWithoutTransform()
Add tests

Change-Id: I39630336fc3e12ee9484783b5b374b9c3f5587ab
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47221
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
2021-04-08 14:47:37 +00:00
Ben Clayton
9328d94572 wgsl: Deprecate '-> void' on functions
Was removed with:
https://github.com/gpuweb/gpuweb/pull/1460

Bug: tint:677
Change-Id: If08cb450189c6158561051ef6e8f2439c60bc010
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47140
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-04-08 14:39:47 +00:00
Antonio Maiorano
d15391e802 Remove tint's usage of Validator
Also update comments and arch design to remove references to the
Validator.

Bug: tint:642
Change-Id: Ic0b4779ae4712a393ff209014daf25e23f32be6d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47061
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-04-08 14:08:47 +00:00
Brandon Jones
47b6b680e1 Fill CompilationInfo with Tint diagnostic messages
The previous CL had no way of communicating disagnostic messages from
Tint to the ShaderModule in the event that it failed to validate. This
change ensures that messages generated during validation aren't dropped
on the floor and can be queried from the failed modules CompilationInfo.

BUG: dawn:746
Change-Id: Ic2551654ca30baab0fb5124a148eb4fcdf4b0f22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46960
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2021-04-08 04:25:11 +00:00
Jiawei Shao
c243f67d58 Refactor APICreateComputePipelineAsync to support both sync and async path
This patch refactors the implementation of APICreateComputePipelineAsync
as a preparation of the async path of the creation of compute pipeline.

Now the code path of APICreateComputePipelineAsync() includes the following
3 parts:
- When an error occurs in the front-end validations, the callback will be
  called at once in the main thread.
- When we can find a proper compute pipeline object in the cache, the
  callback will be called at once in the main thread.
- When we cannot find the proper comptue pipeline object in the cache, the
  newly-created pipeline object, the callback and userdata will be saved
  into the CreatePipelineAsyncTracker, and the callback will be called in
  device.Tick(). All the logic mentioned in this section has been put into
  one function CreateComputePipelineAsyncImpl(), which will be overrided
  by its asynchronous version on all the backends that support creating
  pipeline objects asynchronously.

Note that APICreateRenderPipelineAsync is not changed in this patch because
it is now under refactoring to match the current updates in WebGPU SPEC.

BUG=dawn:529
TEST=dawn_end2end_tests

Change-Id: Ie1cf2f9fc8e18c3e6ad723c6a0cefce29a0eb69c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45842
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-04-08 01:22:22 +00:00
Ben Clayton
40d1c83362 Default use_tint_generator to on for D3D12
Most tests pass, those that don't are skipped.

Change-Id: Ia08373551a48382aceffbbc0e23bd15828ebe219
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46452
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-07 21:48:11 +00:00
Dawn Autoroller
8fa93436ea Roll Tint from dac541881979 to 933d44a2c8b9 (5 revisions)
https://dawn.googlesource.com/tint.git/+log/dac541881979..933d44a2c8b9

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 jrprice@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: jrprice@google.com
Change-Id: I22bbf83959a1b05cc36fe0907da71365b4594d5b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47081
Reviewed-by: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-07 20:39:51 +00:00
Antonio Maiorano
101f463992 Speed up intrinsic table registration
Reserve enough memory for overloads, and avoid copies. Opportunistically
avoid copying Source instances in ProgramBuilder API.

Speeds up runs of test_unittests.exe by about 20% (33s to 26s on my
Windows desktop).

Change-Id: I6ba26043d7750eb1f123e29c53d253614974f960
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/47060
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-04-07 20:35:11 +00:00
Corentin Wallez
6870e6d78d Vulkan: Check for device loss in CheckAndUpdateCompletedSerials
Bug: chromium:1195645
Bug: chromium:1195693
Change-Id: I3c25a64af87a60f40030094dd73b13a035a7876c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46625
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-04-07 18:09:21 +00:00