Demangle the printed AST before comparing.
Many to_str() methods on AST nodes will print the symbol numerical identifiers, which is not guaranteed to be stable between clones.
By comparing the demangled AST, these should be stable.
Fixed: chromium:1160099
Change-Id: I4e62adbccc690a1531f78dc70cef8480ed6f3f2c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36621
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Remove the logic around `arrayLength()` being passed anything but a member accessor. Runtime arrays types cannot be used for variables nor parameters.
Add validator logic and test for runtime array parameters.
Adjust the validator error message so it doesn't include the field / variable name. This read weird, and the same information is already provided by the source.
Bug: tint:266
Bug: tint:252
Change-Id: Iecedb0524e10a67b4f8ad15635d67fe61e9d69d9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36420
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Fix how handle usage is collected. OpImageQuerySize
is usable for *any* image that is either MS=1 or Sampled=0 or 2.
(Sampled=0 is not allowed by Vulkan).
So it's usable by storage images or multisampled image.
OpImageQuerySizeLod is usable by Sampled=1 MS=0 images, ie. sampled
images.
Fixed: tint:422
Change-Id: Ibfbcab2daa8b38f17758a0428a08cb9660496bac
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36061
Auto-Submit: David Neto <dneto@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Helps with test grouping, and more importantly fixes a lint error about
the line length exceeding 80 characters, which cannot otherwise be
sensibly fixed as the formatter wants the fixture name to be unsplit.
Change-Id: I54b32e3516250b4064cd66a618f2239982aaf2d1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36381
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Switch all remaining AST stack allocations in tests to using create<T>() which will automatically inject the current Source as the first parameter.
Most remaining uses of Source{} in the codebase are places where we need to fix.
Bug: tint:396
Change-Id: I24655800b50d6ad52e682a7339022972e9b354d9
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36380
Commit-Queue: Ben Clayton <bclayton@google.com>
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
2c458414c0..8f4b35c332
$ git log 2c458414c..8f4b35c33 --date=short --no-merges --format='%ad %ae %s'
2020-12-17 46493288+sfricke-samsung spirv-val: Add Subgroup VUIDs (#4074)
2020-12-17 afdx spirv-fuzz: Fix OpPhi handling in DuplicateRegionWithSelection (#4065)
2020-12-15 dneto validation: validate return type of OpImageRead (#4072)
2020-12-14 dneto validation: tighter validation of multisampled images (#4059)
2020-12-10 dneto validate OpTypeImage Sampled values for environemnts (#4064)
2020-12-10 rharrison Force using Python 3 git-sync-deps (#4067)
2020-12-10 dneto validate StorageImageMultisampled capability (#4062)
2020-12-08 46493288+sfricke-samsung spirv-val: Add last TessLevelOuter and TessLevelInner VUID (#4055)
2020-12-08 46493288+sfricke-samsung spirv-val: Add last ClipDistance and CullDistance VUID (#4054)
2020-12-08 46493288+sfricke-samsung spirv-val: Add last ViewportIndex and Layer VUID (#4053)
2020-12-08 46493288+sfricke-samsung spirv-val: Add last Position VUID (#4052)
2020-12-08 alanbaker Allow forward pointer to be used in types generally (#4044)
2020-12-07 marijns95 opt: Run DCE when SPV_KHR_shader_clock is used (#4049)
2020-12-07 dnovillo Update CHANGES to include latest ray tacing fixes.
2020-12-07 ehsannas Take new (raytracing) termination instructions into account. (#4050)
2020-12-03 dnovillo Start SPIRV-Tools v2020.7
2020-12-03 dnovillo Finalize SPIRV-Tools v2020.6
2020-12-02 dnovillo Update CHANGES
2020-12-02 ehsannas Do run DCE if SPV_KHR_ray_query is used. (#4047)
2020-12-02 dnovillo Update CHANGES
2020-12-01 greg Change ref_analysis to RefAnalysis to follow coding standards. (#4045)
2020-12-01 stevenperron Handle 8-bit index in elim dead member (#4043)
2020-12-01 dgkoch Add validation support for the ray tracing built-in variables (#4041)
2020-12-01 greg Add texel buffer out-of-bounds checking instrumentation (#4038)
2020-11-30 dgkoch Update spirv-header deps (#4040)
2020-11-27 afdx Reject SPIR-V that applies void to OpUndef, OpCopyObject, OpPhi (#4036)
Created with:
roll-dep third_party/spirv-tools
Change-Id: Id79356d4ec3c7b8087370c7ab70fbdbf738e142c
Roll third_party/gpuweb-cts/ abe6e1dd2..46c7b591c (22 commits)
abe6e1dd26..46c7b591c2
$ git log abe6e1dd2..46c7b591c --date=short --no-merges --format='%ad %ae %s'
2020-12-17 jiawei.shao Move the tests about Z-axis or depth or zero-copy into separated tests (#410)
2020-12-16 enrico.galli Add attachment compatibility tests (#411)
2020-12-11 kainino Add helper to make capability tables prettier (#409)
2020-12-11 kainino fix markdown indentation
2020-12-09 kainino Add readability guidelines (#408)
2020-12-08 kainino Port all the remaining docs from HackMD and wiki (#407)
2020-12-09 hao.x.li Add tests for indexing, index format and primitive restart (#338)
2020-12-08 mehmetoguzderin Replace pull_request_target with pull_request+workflow_run (#401)
2020-12-07 9856269+sarahM0 [wgsl] Add runtime array validation tests (#377)
2020-12-04 kainino Add something missed in #394 because I forgot to save (#405)
2020-12-04 kainino Cherry-pick deployment files into a folder (#404)
2020-12-04 kainino Revert "Fix deployment of newly-added files (#402)" (#403)
2020-12-04 kainino Fix deployment of newly-added files (#402)
2020-12-04 kainino organize pass state tests a bit (#394)
2020-12-04 kainino Update and organize documentation for contributors (#399)
2020-12-03 kainino From HackMD plan, part 4/4: remaining validation tests, and all the operation test plans so far (#392)
2020-12-03 2154796+austinEng Fix dev_server cache key for Typescript files (#393)
2020-12-02 kainino From HackMD plan, part 3: most of the rest of the validation tests (#390)
2020-12-02 2154796+austinEng Add dev server for standalone runner which compiles TS at runtime (#386)
2020-12-03 jiawei.shao Add operation tests of T2T copies on all non-compressed color formats (#387)
2020-12-02 2154796+austinEng Simplify texelData helpers (#365)
2020-12-01 yunchao.he Memory sync test for buffer: write after write in the same pass (#384)
Created with:
roll-dep third_party/gpuweb-cts
Change-Id: I52f7a95c5f5d2cf948694c680f97b37a20b7c462
Roll third_party/googletest/ b1fbd33c0..18f8200e3 (14 commits)
b1fbd33c06..18f8200e30
$ git log b1fbd33c0..18f8200e3 --date=short --no-merges --format='%ad %ae %s'
2020-12-11 absl-team Googletest export
2020-12-10 absl-team Googletest export
2020-12-10 dmauro Googletest export
2020-12-08 absl-team Googletest export
2020-12-07 absl-team Googletest export
2020-12-07 absl-team Googletest export
2020-12-07 absl-team Googletest export
2020-12-05 paul.malcolm Fix typo in CLI help message
2020-12-03 absl-team Googletest export
2020-12-02 absl-team Googletest export
2020-12-02 absl-team Googletest export
2020-12-01 absl-team Googletest export
2020-11-30 dmauro Googletest export
2020-11-24 absl-team Googletest export
Created with:
roll-dep third_party/googletest
Change-Id: If255637a545ea0be101c3b3665a2bf880457d4b7
Roll third_party/spirv-headers/ 104ecc356..f027d53de (1 commit)
104ecc356c..f027d53ded
$ git log 104ecc356..f027d53de --date=short --no-merges --format='%ad %ae %s'
2020-11-26 dkoch remove HitTKHR
Created with:
roll-dep third_party/spirv-headers
Change-Id: Ic9f0c411373d3bb4349572794e053d93ab9ec9e0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35960
Commit-Queue: David Neto <dneto@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Texture buitins on depth textures always result in scalar f32.
Corresponding operations in SPIR-V always result in vec4<f32>.
When translating to Tint AST, wrap the generated texture builtin
in a type constructor to vec4, with the builtin result as the
x component.
Fixed: tint:411
Change-Id: Idf26a1cbc7e875bc8a97bf3c0b342c0220c6d4b7
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35900
Auto-Submit: David Neto <dneto@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
If you try to load it, return 1.0f instead.
Some cases of copy-object of intermediates are unhandled,
and will error out.
This is being done as an aid to porting GLSL Vulkan shaders
that do store 1 to gl_PointSize.
Fixed: tint:412
Change-Id: Ia33dc70bca630dccfbf11644f71d6be4b3f43f1a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35861
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: David Neto <dneto@google.com>
The interface for cloning a module was made significantly more complex in https://dawn-review.googlesource.com/c/tint/+/35502/ as some of the transforms required constructing symbols before the clone. This was temporary solution in 35502 was to copy the symbol table, then construct the new types, then perform the clone. This lead to a really messy callback interface, that was extremely error prone (e.g. lamda-capturing stack variables from the initializer callback that had been unwound).
Instead, clone the symbols as they're encountered. This may produce an entirely different set of identifiers, but no longer ever-grows the symbol list, and keeps the interface clean.
Bug: tint:396
Bug: tint:390
Change-Id: I54affd68ac3b730b649af9b47eba685c8a1d784a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35663
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
EXPECT_THAT(xxx, Eq(yyy)) << ToString(xxx);
is a less-idiomatic way of writing:
EXPECT_EQ(xxx, yyy);
The latter also provides a diff when two strings do not match.
Refactor these to:
auto got = xxx;
auto expect = yyy;
EXPECT_EQ(got, expect);
So that the error message clearly shows which one is the generated, and which one is the reference.
Change-Id: I781437ee63abdff3a67798b09e958be603c21313
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/35507
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>