mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 16:37:08 +00:00
tint/hlsl+glsl: fix workgroupUniformLoad polyfills
The BuiltinPolyfill transform expects the DirectVariableAccess transform to run after it, but this regressed as part of https://dawn-review.googlesource.com/c/dawn/+/122203 Add unit test along with e2e 1926.wgsl test. Bug: tint:1926 Change-Id: I5107453ce152b12e6f2f36930846e1fffa775708 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/131020 Reviewed-by: James Price <jrprice@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Dawn LUCI CQ
parent
e903396ff2
commit
fa00fe9d41
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
typedef int tint_workgroupUniformLoad_ret[4];
|
||||
tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[4]) {
|
||||
groupshared int v[4];
|
||||
|
||||
typedef int tint_workgroupUniformLoad_v_ret[4];
|
||||
tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result[4] = p;
|
||||
const int result[4] = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[4];
|
||||
|
||||
typedef int foo_ret[4];
|
||||
foo_ret foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
typedef int tint_workgroupUniformLoad_ret[4];
|
||||
tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[4]) {
|
||||
groupshared int v[4];
|
||||
|
||||
typedef int tint_workgroupUniformLoad_v_ret[4];
|
||||
tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result[4] = p;
|
||||
const int result[4] = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[4];
|
||||
|
||||
typedef int foo_ret[4];
|
||||
foo_ret foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
int[4] tint_workgroupUniformLoad(inout int p[4]) {
|
||||
shared int v[4];
|
||||
int[4] tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
int result[4] = p;
|
||||
int result[4] = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared int v[4];
|
||||
int[4] foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
typedef int tint_workgroupUniformLoad_ret[128];
|
||||
tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
|
||||
groupshared int v[128];
|
||||
|
||||
typedef int tint_workgroupUniformLoad_v_ret[128];
|
||||
tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result[128] = p;
|
||||
const int result[128] = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[128];
|
||||
|
||||
int foo() {
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad(v);
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad_v();
|
||||
return tint_symbol[0];
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
typedef int tint_workgroupUniformLoad_ret[128];
|
||||
tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
|
||||
groupshared int v[128];
|
||||
|
||||
typedef int tint_workgroupUniformLoad_v_ret[128];
|
||||
tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result[128] = p;
|
||||
const int result[128] = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[128];
|
||||
|
||||
int foo() {
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad(v);
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad_v();
|
||||
return tint_symbol[0];
|
||||
}
|
||||
|
||||
@@ -4,16 +4,16 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
int[128] tint_workgroupUniformLoad(inout int p[128]) {
|
||||
shared int v[128];
|
||||
int[128] tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
int result[128] = p;
|
||||
int result[128] = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared int v[128];
|
||||
int foo() {
|
||||
int tint_symbol[128] = tint_workgroupUniformLoad(v);
|
||||
int tint_symbol[128] = tint_workgroupUniformLoad_v();
|
||||
return tint_symbol[0];
|
||||
}
|
||||
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
typedef int tint_workgroupUniformLoad_ret[128];
|
||||
tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
|
||||
groupshared int v[128];
|
||||
|
||||
typedef int tint_workgroupUniformLoad_v_ret[128];
|
||||
tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result[128] = p;
|
||||
const int result[128] = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[128];
|
||||
|
||||
int foo() {
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad(v);
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad_v();
|
||||
return tint_symbol[0];
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
typedef int tint_workgroupUniformLoad_ret[128];
|
||||
tint_workgroupUniformLoad_ret tint_workgroupUniformLoad(inout int p[128]) {
|
||||
groupshared int v[128];
|
||||
|
||||
typedef int tint_workgroupUniformLoad_v_ret[128];
|
||||
tint_workgroupUniformLoad_v_ret tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result[128] = p;
|
||||
const int result[128] = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[128];
|
||||
|
||||
int foo() {
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad(v);
|
||||
const int tint_symbol[128] = tint_workgroupUniformLoad_v();
|
||||
return tint_symbol[0];
|
||||
}
|
||||
|
||||
@@ -4,16 +4,16 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
int[128] tint_workgroupUniformLoad(inout int p[128]) {
|
||||
shared int v[128];
|
||||
int[128] tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
int result[128] = p;
|
||||
int result[128] = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared int v[128];
|
||||
int foo() {
|
||||
int tint_symbol[128] = tint_workgroupUniformLoad(v);
|
||||
int tint_symbol[128] = tint_workgroupUniformLoad_v();
|
||||
return tint_symbol[0];
|
||||
}
|
||||
|
||||
|
||||
@@ -3,15 +3,15 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
bool tint_workgroupUniformLoad(inout bool p) {
|
||||
groupshared bool v;
|
||||
|
||||
bool tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const bool result = p;
|
||||
const bool result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared bool v;
|
||||
|
||||
bool foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -3,15 +3,15 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
bool tint_workgroupUniformLoad(inout bool p) {
|
||||
groupshared bool v;
|
||||
|
||||
bool tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const bool result = p;
|
||||
const bool result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared bool v;
|
||||
|
||||
bool foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
bool tint_workgroupUniformLoad(inout bool p) {
|
||||
shared bool v;
|
||||
bool tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
bool result = p;
|
||||
bool result = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared bool v;
|
||||
bool foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,22 +3,30 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
int tint_workgroupUniformLoad(inout int p) {
|
||||
groupshared int a;
|
||||
|
||||
int tint_workgroupUniformLoad_a() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result = p;
|
||||
const int result = a;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int a;
|
||||
groupshared int b;
|
||||
|
||||
int tint_workgroupUniformLoad_b() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result = b;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
void foo() {
|
||||
{
|
||||
int i = 0;
|
||||
while (true) {
|
||||
const int tint_symbol = i;
|
||||
const int tint_symbol_1 = tint_workgroupUniformLoad(a);
|
||||
const int tint_symbol_1 = tint_workgroupUniformLoad_a();
|
||||
if (!((tint_symbol < tint_symbol_1))) {
|
||||
break;
|
||||
}
|
||||
@@ -26,7 +34,7 @@ void foo() {
|
||||
}
|
||||
{
|
||||
const int tint_symbol_2 = i;
|
||||
const int tint_symbol_3 = tint_workgroupUniformLoad(b);
|
||||
const int tint_symbol_3 = tint_workgroupUniformLoad_b();
|
||||
i = (tint_symbol_2 + tint_symbol_3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,22 +3,30 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
int tint_workgroupUniformLoad(inout int p) {
|
||||
groupshared int a;
|
||||
|
||||
int tint_workgroupUniformLoad_a() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result = p;
|
||||
const int result = a;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int a;
|
||||
groupshared int b;
|
||||
|
||||
int tint_workgroupUniformLoad_b() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result = b;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
void foo() {
|
||||
{
|
||||
int i = 0;
|
||||
while (true) {
|
||||
const int tint_symbol = i;
|
||||
const int tint_symbol_1 = tint_workgroupUniformLoad(a);
|
||||
const int tint_symbol_1 = tint_workgroupUniformLoad_a();
|
||||
if (!((tint_symbol < tint_symbol_1))) {
|
||||
break;
|
||||
}
|
||||
@@ -26,7 +34,7 @@ void foo() {
|
||||
}
|
||||
{
|
||||
const int tint_symbol_2 = i;
|
||||
const int tint_symbol_3 = tint_workgroupUniformLoad(b);
|
||||
const int tint_symbol_3 = tint_workgroupUniformLoad_b();
|
||||
i = (tint_symbol_2 + tint_symbol_3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,21 +4,28 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
int tint_workgroupUniformLoad(inout int p) {
|
||||
shared int a;
|
||||
int tint_workgroupUniformLoad_a() {
|
||||
barrier();
|
||||
int result = p;
|
||||
int result = a;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared int a;
|
||||
shared int b;
|
||||
int tint_workgroupUniformLoad_b() {
|
||||
barrier();
|
||||
int result = b;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
void foo() {
|
||||
{
|
||||
int i = 0;
|
||||
while (true) {
|
||||
int tint_symbol = i;
|
||||
int tint_symbol_1 = tint_workgroupUniformLoad(a);
|
||||
int tint_symbol_1 = tint_workgroupUniformLoad_a();
|
||||
if (!((tint_symbol < tint_symbol_1))) {
|
||||
break;
|
||||
}
|
||||
@@ -26,7 +33,7 @@ void foo() {
|
||||
}
|
||||
{
|
||||
int tint_symbol_2 = i;
|
||||
int tint_symbol_3 = tint_workgroupUniformLoad(b);
|
||||
int tint_symbol_3 = tint_workgroupUniformLoad_b();
|
||||
i = (tint_symbol_2 + tint_symbol_3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
bool tint_workgroupUniformLoad(inout bool p) {
|
||||
groupshared bool v;
|
||||
|
||||
bool tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const bool result = p;
|
||||
const bool result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared bool v;
|
||||
|
||||
int foo() {
|
||||
if (tint_workgroupUniformLoad(v)) {
|
||||
if (tint_workgroupUniformLoad_v()) {
|
||||
return 42;
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -3,17 +3,17 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
bool tint_workgroupUniformLoad(inout bool p) {
|
||||
groupshared bool v;
|
||||
|
||||
bool tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const bool result = p;
|
||||
const bool result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared bool v;
|
||||
|
||||
int foo() {
|
||||
if (tint_workgroupUniformLoad(v)) {
|
||||
if (tint_workgroupUniformLoad_v()) {
|
||||
return 42;
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -4,16 +4,16 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
bool tint_workgroupUniformLoad(inout bool p) {
|
||||
shared bool v;
|
||||
bool tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
bool result = p;
|
||||
bool result = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared bool v;
|
||||
int foo() {
|
||||
if (tint_workgroupUniformLoad(v)) {
|
||||
if (tint_workgroupUniformLoad_v()) {
|
||||
return 42;
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -3,15 +3,15 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
float3x3 tint_workgroupUniformLoad(inout float3x3 p) {
|
||||
groupshared float3x3 v;
|
||||
|
||||
float3x3 tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const float3x3 result = p;
|
||||
const float3x3 result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared float3x3 v;
|
||||
|
||||
float3x3 foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -3,15 +3,15 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
float3x3 tint_workgroupUniformLoad(inout float3x3 p) {
|
||||
groupshared float3x3 v;
|
||||
|
||||
float3x3 tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const float3x3 result = p;
|
||||
const float3x3 result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared float3x3 v;
|
||||
|
||||
float3x3 foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
mat3 tint_workgroupUniformLoad(inout mat3 p) {
|
||||
shared mat3 v;
|
||||
mat3 tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
mat3 result = p;
|
||||
mat3 result = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared mat3 v;
|
||||
mat3 foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
|
||||
@@ -12,15 +12,15 @@ struct Outer {
|
||||
Inner a[4];
|
||||
};
|
||||
|
||||
Outer tint_workgroupUniformLoad(inout Outer p) {
|
||||
groupshared Outer v;
|
||||
|
||||
Outer tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const Outer result = p;
|
||||
const Outer result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared Outer v;
|
||||
|
||||
Outer foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -12,15 +12,15 @@ struct Outer {
|
||||
Inner a[4];
|
||||
};
|
||||
|
||||
Outer tint_workgroupUniformLoad(inout Outer p) {
|
||||
groupshared Outer v;
|
||||
|
||||
Outer tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const Outer result = p;
|
||||
const Outer result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared Outer v;
|
||||
|
||||
Outer foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -14,15 +14,15 @@ struct Outer {
|
||||
Inner a[4];
|
||||
};
|
||||
|
||||
Outer tint_workgroupUniformLoad(inout Outer p) {
|
||||
shared Outer v;
|
||||
Outer tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
Outer result = p;
|
||||
Outer result = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared Outer v;
|
||||
Outer foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,15 +3,15 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
float4 tint_workgroupUniformLoad(inout float4 p) {
|
||||
groupshared float4 v;
|
||||
|
||||
float4 tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const float4 result = p;
|
||||
const float4 result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared float4 v;
|
||||
|
||||
float4 foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -3,15 +3,15 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
float4 tint_workgroupUniformLoad(inout float4 p) {
|
||||
groupshared float4 v;
|
||||
|
||||
float4 tint_workgroupUniformLoad_v() {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const float4 result = p;
|
||||
const float4 result = v;
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared float4 v;
|
||||
|
||||
float4 foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
@@ -4,15 +4,15 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
vec4 tint_workgroupUniformLoad(inout vec4 p) {
|
||||
shared vec4 v;
|
||||
vec4 tint_workgroupUniformLoad_v() {
|
||||
barrier();
|
||||
vec4 result = p;
|
||||
vec4 result = v;
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared vec4 v;
|
||||
vec4 foo() {
|
||||
return tint_workgroupUniformLoad(v);
|
||||
return tint_workgroupUniformLoad_v();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,20 +3,21 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
int tint_workgroupUniformLoad(inout int p) {
|
||||
groupshared int v[4];
|
||||
|
||||
int tint_workgroupUniformLoad_v_X(uint p[1]) {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result = p;
|
||||
const int result = v[p[0]];
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[4];
|
||||
|
||||
int foo_v_X(uint p[1]) {
|
||||
return tint_workgroupUniformLoad(v[p[0]]);
|
||||
const uint tint_symbol[1] = {p[0u]};
|
||||
return tint_workgroupUniformLoad_v_X(tint_symbol);
|
||||
}
|
||||
|
||||
int bar() {
|
||||
const uint tint_symbol[1] = (uint[1])0;
|
||||
return foo_v_X(tint_symbol);
|
||||
const uint tint_symbol_1[1] = (uint[1])0;
|
||||
return foo_v_X(tint_symbol_1);
|
||||
}
|
||||
|
||||
@@ -3,20 +3,21 @@ void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
|
||||
int tint_workgroupUniformLoad(inout int p) {
|
||||
groupshared int v[4];
|
||||
|
||||
int tint_workgroupUniformLoad_v_X(uint p[1]) {
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
const int result = p;
|
||||
const int result = v[p[0]];
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
return result;
|
||||
}
|
||||
|
||||
groupshared int v[4];
|
||||
|
||||
int foo_v_X(uint p[1]) {
|
||||
return tint_workgroupUniformLoad(v[p[0]]);
|
||||
const uint tint_symbol[1] = {p[0u]};
|
||||
return tint_workgroupUniformLoad_v_X(tint_symbol);
|
||||
}
|
||||
|
||||
int bar() {
|
||||
const uint tint_symbol[1] = (uint[1])0;
|
||||
return foo_v_X(tint_symbol);
|
||||
const uint tint_symbol_1[1] = (uint[1])0;
|
||||
return foo_v_X(tint_symbol_1);
|
||||
}
|
||||
|
||||
@@ -4,20 +4,21 @@ layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
void unused_entry_point() {
|
||||
return;
|
||||
}
|
||||
int tint_workgroupUniformLoad(inout int p) {
|
||||
shared int v[4];
|
||||
int tint_workgroupUniformLoad_v_X(uint p[1]) {
|
||||
barrier();
|
||||
int result = p;
|
||||
int result = v[p[0]];
|
||||
barrier();
|
||||
return result;
|
||||
}
|
||||
|
||||
shared int v[4];
|
||||
int foo_v_X(uint p[1]) {
|
||||
return tint_workgroupUniformLoad(v[p[0]]);
|
||||
uint tint_symbol[1] = uint[1](p[0u]);
|
||||
return tint_workgroupUniformLoad_v_X(tint_symbol);
|
||||
}
|
||||
|
||||
int bar() {
|
||||
uint tint_symbol[1] = uint[1](0u);
|
||||
return foo_v_X(tint_symbol);
|
||||
uint tint_symbol_1[1] = uint[1](0u);
|
||||
return foo_v_X(tint_symbol_1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user