dawn-cmake/test
Ben Clayton 4183051b54 resolver: Add dependency-graph analysis
Performs a module-scope (global) declaration dependency analysis, so
that out-of-order global declarations can be re-ordered into dependency
order for consumption by the resolver.

The WGSL working group are currently debating whether out-of-order
declarations should be included in WebGPU V1, so this implementation
currently errors if module-scope declarations are declared out-of-order,
and the resolver does not currently use this sorted global list.

The analysis does however provide significantly better error diagnostics
when cyclic dependencies are formed, and when globals are declared
out-of-order.

The DependencyGraph also correctly now detects symbol collisions between
functions and types (tint:1308).

With this change, validation is duplicated between the DependencyGraph
and the Resolver. The now-unreachable validation will be removed from
the Resolver with a followup change.

Fixed: tint:1308
Bug: tint:1266
Change-Id: I809c23a069a86cf429f5ec8ef3ad9a98246766ab
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/69381
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
2021-11-22 11:44:57 +00:00
..
access GLSL: add .expected.glsl files for all tests. 2021-11-16 15:15:36 +00:00
array HLSL: force FXC to never unroll loops 2021-11-18 13:50:12 +00:00
buffer GLSL: implement atomics. 2021-11-19 17:46:13 +00:00
bug reader/wgsl: Allow identifiers to start with an underscore 2021-11-19 21:52:13 +00:00
expressions GLSL: implement inf, nan. 2021-11-18 13:11:43 +00:00
intrinsics reader/wgsl: Allow identifiers to start with an underscore 2021-11-19 21:52:13 +00:00
layout/storage/mat2x2 HLSL: force FXC to never unroll loops 2021-11-18 13:50:12 +00:00
let GLSL: implement atomics. 2021-11-19 17:46:13 +00:00
loops HLSL: force FXC to never unroll loops 2021-11-18 13:50:12 +00:00
matrix/constructor/elements GLSL: add .expected.glsl files for all tests. 2021-11-16 15:15:36 +00:00
ptr_ref GLSL: implement atomics. 2021-11-19 17:46:13 +00:00
samples HLSL: force FXC to never unroll loops 2021-11-18 13:50:12 +00:00
shader_io GLSL: add .expected.glsl files for all tests. 2021-11-16 15:15:36 +00:00
statements HLSL: force FXC to never unroll loops 2021-11-18 13:50:12 +00:00
struct GLSL: add .expected.glsl files for all tests. 2021-11-16 15:15:36 +00:00
types GLSL: a grab bag of texture fixes. 2021-11-19 19:06:23 +00:00
unittest/reader/spirv Add more SPIR-V reader unit test samples 2021-09-27 20:55:53 +00:00
var GLSL: implement atomics. 2021-11-19 17:46:13 +00:00
vk-gl-cts spirv-reader: Sink pointer-to-vector-component 2021-11-04 19:55:57 +00:00
BUILD.gn resolver: Add dependency-graph analysis 2021-11-22 11:44:57 +00:00
extract-spvasm.py
test-all.sh