mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-14 19:31:25 +00:00
Add a transform that pushes these into the entry point and then passes them by pointer to any functions that need them. Since WGSL does not allow non-function storage class at function-scope, add a DisableValidation attribute to bypass this check. Fixed: tint/726 Change-Id: Ic1f4cd691a54c19e77a60e8ba178508e4249bfd9 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51962 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>
50 lines
486 B
WebGPU Shading Language
50 lines
486 B
WebGPU Shading Language
var<private> a : i32;
|
|
var<private> b : i32;
|
|
var<private> c : i32; // unused
|
|
|
|
fn uses_a() {
|
|
a = a + 1;
|
|
}
|
|
|
|
fn uses_b() {
|
|
b = b * 2;
|
|
}
|
|
|
|
fn uses_a_and_b() {
|
|
b = a;
|
|
}
|
|
|
|
fn no_uses() {
|
|
}
|
|
|
|
fn outer() {
|
|
a = 0;
|
|
uses_a();
|
|
uses_a_and_b();
|
|
uses_b();
|
|
no_uses();
|
|
}
|
|
|
|
[[stage(compute)]]
|
|
fn main1() {
|
|
a = 42;
|
|
uses_a();
|
|
}
|
|
|
|
[[stage(compute)]]
|
|
fn main2() {
|
|
b = 7;
|
|
uses_b();
|
|
}
|
|
|
|
[[stage(compute)]]
|
|
fn main3() {
|
|
outer();
|
|
no_uses();
|
|
}
|
|
|
|
[[stage(compute)]]
|
|
fn main4() {
|
|
no_uses();
|
|
}
|