mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-08-03 02:35:55 +00:00
This significantly simplifies the calling code from Dawn. It does require moving the SingleEntryPoint transform above the renamer, since we need to call SEP with the original name. That is probably also an optimization, since we do the subsequent transforms with a culled AST. Bug: tint:1268 Change-Id: I1f48ec0238ea76310742c60b119311747dd3dbac Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/80020 Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
99 lines
1.2 KiB
GLSL
99 lines
1.2 KiB
GLSL
#version 310 es
|
|
|
|
shared int a;
|
|
void uses_a() {
|
|
a = (a + 1);
|
|
}
|
|
|
|
void main1(uint local_invocation_index) {
|
|
{
|
|
a = 0;
|
|
}
|
|
barrier();
|
|
a = 42;
|
|
uses_a();
|
|
}
|
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
|
void main() {
|
|
main1(gl_LocalInvocationIndex);
|
|
return;
|
|
}
|
|
#version 310 es
|
|
|
|
shared int b;
|
|
void uses_b() {
|
|
b = (b * 2);
|
|
}
|
|
|
|
void main2(uint local_invocation_index) {
|
|
{
|
|
b = 0;
|
|
}
|
|
barrier();
|
|
b = 7;
|
|
uses_b();
|
|
}
|
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
|
void main() {
|
|
main2(gl_LocalInvocationIndex);
|
|
return;
|
|
}
|
|
#version 310 es
|
|
|
|
shared int a;
|
|
shared 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();
|
|
}
|
|
|
|
void main3(uint local_invocation_index) {
|
|
{
|
|
a = 0;
|
|
b = 0;
|
|
}
|
|
barrier();
|
|
outer();
|
|
no_uses();
|
|
}
|
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
|
void main() {
|
|
main3(gl_LocalInvocationIndex);
|
|
return;
|
|
}
|
|
#version 310 es
|
|
|
|
void no_uses() {
|
|
}
|
|
|
|
void main4() {
|
|
no_uses();
|
|
}
|
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
|
void main() {
|
|
main4();
|
|
return;
|
|
}
|