dawn-cmake/test/var/private.wgsl.expected.hlsl
James Price 7a47fa8495 writer/msl: Handle private and workgroup variables
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>
2021-05-26 15:41:02 +00:00

55 lines
514 B
HLSL

static int a;
static int b;
void uses_a() {
a = (a + 1);
}
void uses_b() {
b = (b * 2);
}
void uses_a_and_b() {
b = a;
}
void no_uses() {
}
void outer() {
a = 0;
uses_a();
uses_a_and_b();
uses_b();
no_uses();
}
[numthreads(1, 1, 1)]
void main1() {
a = 42;
uses_a();
return;
}
[numthreads(1, 1, 1)]
void main2() {
b = 7;
uses_b();
return;
}
[numthreads(1, 1, 1)]
void main3() {
outer();
no_uses();
return;
}
[numthreads(1, 1, 1)]
void main4() {
no_uses();
return;
}