Ben Clayton 5716611bf0 tint/resolver: Materialize objects when indexed with non-const index
If an abstract-vector or abstract-matrix is indexed with a non-constant index expression, then the resulting value is non-constant, and so cannot be abstract.

In this situation the materialization cannot be done post-index, so materialization must happen on the object before indexing.

Bug: chromium:1345468
Change-Id: I9f29dc40301779a7ff8f173724374bd845a3a5b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/96684
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2022-07-21 15:25:35 +00:00

9 lines
371 B
WebGPU Shading Language

fn f(){
const m = mat4x2(0, 0, 0, 0, 4., 0, 0, 0); // abstract matrix
const v = vec2(0, 1); // abstract vector
var i = 1; // runtime-evaluated index
var a = m[i]; // materialize m before index
var b = v[i]; // materialize v before index
}