dawn-cmake/test
Antonio Maiorano d733fdb85c HLSL: work around FXC failures when dynamically indexing arrays in structs
FXC fails to compile code that assigns to dynamically-indexed fixed-size
arrays in structs on internal shader variables with:

error X3500: array reference cannot be used as an l-value; not natively
addressable

This CL detects this case, and transforms such assignments into copying
out the array to a local variable, assigning to that local, and then
copying the array back.

Also manually regenerate SKIPs for HLSL/FXC after this change, which
fixes 30 tests. Also exposes some "compilation aborted unexpectedly" now
that  "array reference cannot be used as an l-value" has been fixed. For
tests that fail for both DXC and FXC, updating SKIPs to the DXC one to
help distinguish actual FXC bugs from valid errors.

Bug: tint:998
Bug: tint:1206
Change-Id: I09204d8d81ab27d1c257538ad702414ccc386543
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/71620
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-12-13 15:55:11 +00:00
..
access GLSL: add .expected.glsl files for all tests. 2021-11-16 15:15:36 +00:00
array tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
buffer tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
bug HLSL: work around FXC failures when dynamically indexing arrays in structs 2021-12-13 15:55:11 +00:00
expressions tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
identifiers/underscore IntrinsicTable: remove double underscores 2021-11-22 15:24:16 +00:00
intrinsics glsl: Don't emit structs with runtime-sized arrays 2021-12-09 18:54:35 +00:00
layout/storage/mat2x2 tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
let GLSL: implement atomics. 2021-11-19 17:46:13 +00:00
loops Manually generate HLSL skip files for vk-gl-cts e2e tests 2021-12-08 04:26:58 +00:00
ptr_ref tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
samples tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
shader_io tests: Stop using the [[block]] attribute 2021-12-09 15:45:03 +00:00
shadowing resolver: Support shadowing 2021-11-23 20:45:51 +00:00
statements HLSL: work around FXC failures when dynamically indexing arrays in structs 2021-12-13 15:55:11 +00:00
struct GLSL: add .expected.glsl files for all tests. 2021-11-16 15:15:36 +00:00
types GLSL: fix single-valued vector init. 2021-11-22 16:14:16 +00:00
unittest/reader/spirv Add more SPIR-V reader unit test samples 2021-09-27 20:55:53 +00:00
var Reland "HLSL: force FXC to never unroll loops" 2021-11-25 18:44:50 +00:00
vk-gl-cts HLSL: work around FXC failures when dynamically indexing arrays in structs 2021-12-13 15:55:11 +00:00
BUILD.gn HLSL: work around FXC failures when dynamically indexing arrays in structs 2021-12-13 15:55:11 +00:00
extract-spvasm.py Add --dump-spirv option to tint_unittests 2021-05-05 09:46:31 +00:00
test-all.sh main: Replace --dawn-validation with --validate 2021-06-02 21:02:34 +00:00