GLSL: fix barriers.
Bug: tint:1416 Change-Id: I138932cc0d702289684c4db80b4640df43b41833 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/79420 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: David Neto <dneto@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
parent
b79f51ece3
commit
deec53332f
|
@ -1165,9 +1165,9 @@ bool GeneratorImpl::EmitBarrierCall(std::ostream& out,
|
||||||
// TODO(crbug.com/tint/661): Combine sequential barriers to a single
|
// TODO(crbug.com/tint/661): Combine sequential barriers to a single
|
||||||
// instruction.
|
// instruction.
|
||||||
if (builtin->Type() == sem::BuiltinType::kWorkgroupBarrier) {
|
if (builtin->Type() == sem::BuiltinType::kWorkgroupBarrier) {
|
||||||
out << "memoryBarrierShared()";
|
out << "barrier()";
|
||||||
} else if (builtin->Type() == sem::BuiltinType::kStorageBarrier) {
|
} else if (builtin->Type() == sem::BuiltinType::kStorageBarrier) {
|
||||||
out << "memoryBarrierBuffer()";
|
out << "{ barrier(); memoryBarrierBuffer(); }";
|
||||||
} else {
|
} else {
|
||||||
TINT_UNREACHABLE(Writer, diagnostics_)
|
TINT_UNREACHABLE(Writer, diagnostics_)
|
||||||
<< "unexpected barrier builtin type " << sem::str(builtin->Type());
|
<< "unexpected barrier builtin type " << sem::str(builtin->Type());
|
||||||
|
|
|
@ -645,6 +645,8 @@ TEST_F(GlslGeneratorImplTest_Builtin, Unpack2x16Float) {
|
||||||
HasSubstr("f16tof32(uint2(tint_tmp & 0xffff, tint_tmp >> 16))"));
|
HasSubstr("f16tof32(uint2(tint_tmp & 0xffff, tint_tmp >> 16))"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
TEST_F(GlslGeneratorImplTest_Builtin, StorageBarrier) {
|
TEST_F(GlslGeneratorImplTest_Builtin, StorageBarrier) {
|
||||||
Func("main", {}, ty.void_(),
|
Func("main", {}, ty.void_(),
|
||||||
{CallStmt(Call("storageBarrier"))},
|
{CallStmt(Call("storageBarrier"))},
|
||||||
|
@ -656,9 +658,12 @@ TEST_F(GlslGeneratorImplTest_Builtin, StorageBarrier) {
|
||||||
GeneratorImpl& gen = Build();
|
GeneratorImpl& gen = Build();
|
||||||
|
|
||||||
ASSERT_TRUE(gen.Generate()) << gen.error();
|
ASSERT_TRUE(gen.Generate()) << gen.error();
|
||||||
EXPECT_EQ(gen.result(), R"(layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
EXPECT_EQ(gen.result(), R"(#version 310 es
|
||||||
|
precision mediump float;
|
||||||
|
|
||||||
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
void main() {
|
void main() {
|
||||||
DeviceMemoryBarrierWithGroupSync();
|
{ barrier(); memoryBarrierBuffer(); };
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
|
@ -675,16 +680,17 @@ TEST_F(GlslGeneratorImplTest_Builtin, WorkgroupBarrier) {
|
||||||
GeneratorImpl& gen = Build();
|
GeneratorImpl& gen = Build();
|
||||||
|
|
||||||
ASSERT_TRUE(gen.Generate()) << gen.error();
|
ASSERT_TRUE(gen.Generate()) << gen.error();
|
||||||
EXPECT_EQ(gen.result(), R"(layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
EXPECT_EQ(gen.result(), R"(#version 310 es
|
||||||
|
precision mediump float;
|
||||||
|
|
||||||
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
void main() {
|
void main() {
|
||||||
GroupMemoryBarrierWithGroupSync();
|
barrier();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
TEST_F(GlslGeneratorImplTest_Builtin, DotI32) {
|
TEST_F(GlslGeneratorImplTest_Builtin, DotI32) {
|
||||||
Global("v", ty.vec3<i32>(), ast::StorageClass::kPrivate);
|
Global("v", ty.vec3<i32>(), ast::StorageClass::kPrivate);
|
||||||
WrapInFunction(CallStmt(Call("dot", "v", "v")));
|
WrapInFunction(CallStmt(Call("dot", "v", "v")));
|
||||||
|
|
|
@ -28,7 +28,7 @@ void f(uint local_invocation_index) {
|
||||||
s.data[i] = 0;
|
s.data[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
result.tint_symbol = s.data[ubo.dynamic_idx];
|
result.tint_symbol = s.data[ubo.dynamic_idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ void f(uint local_invocation_index) {
|
||||||
s.data[i] = 0;
|
s.data[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
s.data[ubo.dynamic_idx] = 1;
|
s.data[ubo.dynamic_idx] = 1;
|
||||||
result.tint_symbol = s.data[3];
|
result.tint_symbol = s.data[3];
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ void tint_symbol(uvec3 local_id, uvec3 global_id, uint local_invocation_index) {
|
||||||
mm_Bsub[i][i_1] = 0.0f;
|
mm_Bsub[i][i_1] = 0.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
uint tileRow = (local_id.y * RowPerThread);
|
uint tileRow = (local_id.y * RowPerThread);
|
||||||
uint tileCol = (local_id.x * ColPerThread);
|
uint tileCol = (local_id.x * ColPerThread);
|
||||||
uint globalRow = (global_id.y * RowPerThread);
|
uint globalRow = (global_id.y * RowPerThread);
|
||||||
|
@ -113,7 +113,7 @@ void tint_symbol(uvec3 local_id, uvec3 global_id, uint local_invocation_index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
{
|
{
|
||||||
for(uint k = 0u; (k < TileInner); k = (k + 1u)) {
|
for(uint k = 0u; (k < TileInner); k = (k + 1u)) {
|
||||||
{
|
{
|
||||||
|
@ -134,7 +134,7 @@ void tint_symbol(uvec3 local_id, uvec3 global_id, uint local_invocation_index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,7 +32,7 @@ void tint_symbol(uvec3 WorkGroupID, uvec3 LocalInvocationID, uint local_invocati
|
||||||
tile[i_1][i_2] = vec3(0.0f, 0.0f, 0.0f);
|
tile[i_1][i_2] = vec3(0.0f, 0.0f, 0.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
uint filterOffset = ((params.filterDim - 1u) / 2u);
|
uint filterOffset = ((params.filterDim - 1u) / 2u);
|
||||||
ivec2 dims = textureSize(inputTex_1, 0);
|
ivec2 dims = textureSize(inputTex_1, 0);
|
||||||
ivec2 baseIndex = (ivec2(((WorkGroupID.xy * uvec2(params.blockDim, 4u)) + (LocalInvocationID.xy * uvec2(4u, 1u)))) - ivec2(int(filterOffset), 0));
|
ivec2 baseIndex = (ivec2(((WorkGroupID.xy * uvec2(params.blockDim, 4u)) + (LocalInvocationID.xy * uvec2(4u, 1u)))) - ivec2(int(filterOffset), 0));
|
||||||
|
@ -49,7 +49,7 @@ void tint_symbol(uvec3 WorkGroupID, uvec3 LocalInvocationID, uint local_invocati
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
{
|
{
|
||||||
for(uint r = 0u; (r < 4u); r = (r + 1u)) {
|
for(uint r = 0u; (r < 4u); r = (r + 1u)) {
|
||||||
{
|
{
|
||||||
|
|
|
@ -277,7 +277,7 @@ void mm_matMul_i1_i1_i1_(inout int dimAOuter, inout int dimInner, inout int dimB
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
k = 0;
|
k = 0;
|
||||||
{
|
{
|
||||||
for(; (k < 64); k = (k + 1)) {
|
for(; (k < 64); k = (k + 1)) {
|
||||||
|
@ -309,7 +309,7 @@ void mm_matMul_i1_i1_i1_(inout int dimAOuter, inout int dimInner, inout int dimB
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
innerRow_4 = 0;
|
innerRow_4 = 0;
|
||||||
|
@ -387,7 +387,7 @@ void tint_symbol_2(uvec3 tint_symbol_3, uvec3 tint_symbol_4, uint local_invocati
|
||||||
mm_Asub[i][i_1] = 0.0f;
|
mm_Asub[i][i_1] = 0.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
tint_symbol = tint_symbol_3;
|
tint_symbol = tint_symbol_3;
|
||||||
tint_symbol_1 = tint_symbol_4;
|
tint_symbol_1 = tint_symbol_4;
|
||||||
main_1();
|
main_1();
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicAdd_794055();
|
atomicAdd_794055();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicAdd_d5db1d();
|
atomicAdd_d5db1d();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicAnd_34edd3();
|
atomicAnd_34edd3();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicAnd_45a819();
|
atomicAnd_45a819();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicCompareExchangeWeak_89ea3b();
|
atomicCompareExchangeWeak_89ea3b();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicCompareExchangeWeak_b2ab2c();
|
atomicCompareExchangeWeak_b2ab2c();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicExchange_0a5dca();
|
atomicExchange_0a5dca();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicExchange_e114ba();
|
atomicExchange_e114ba();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicLoad_361bf1();
|
atomicLoad_361bf1();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicLoad_afcc03();
|
atomicLoad_afcc03();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicMax_a89cc3();
|
atomicMax_a89cc3();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicMax_beccfc();
|
atomicMax_beccfc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicMin_278235();
|
atomicMin_278235();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicMin_69d383();
|
atomicMin_69d383();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicOr_5e3d61();
|
atomicOr_5e3d61();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicOr_d09248();
|
atomicOr_d09248();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicStore_726882();
|
atomicStore_726882();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicStore_8bea94();
|
atomicStore_8bea94();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicSub_0d26c2();
|
atomicSub_0d26c2();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicSub_77883a();
|
atomicSub_77883a();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0);
|
atomicExchange(arg_0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicXor_75dc95();
|
atomicXor_75dc95();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ void compute_main(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
atomicExchange(arg_0, 0u);
|
atomicExchange(arg_0, 0u);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
atomicXor_c8e6be();
|
atomicXor_c8e6be();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
precision mediump float;
|
precision mediump float;
|
||||||
|
|
||||||
void storageBarrier_d87211() {
|
void storageBarrier_d87211() {
|
||||||
memoryBarrierBuffer();
|
{ barrier(); memoryBarrierBuffer(); };
|
||||||
}
|
}
|
||||||
|
|
||||||
void compute_main() {
|
void compute_main() {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
precision mediump float;
|
precision mediump float;
|
||||||
|
|
||||||
void workgroupBarrier_a17f7f() {
|
void workgroupBarrier_a17f7f() {
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
void compute_main() {
|
void compute_main() {
|
||||||
|
|
|
@ -6,7 +6,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
i = 123;
|
i = 123;
|
||||||
int use = (i + 1);
|
int use = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
v[i] = 0;
|
v[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -6,7 +6,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -6,7 +6,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
v = 0;
|
v = 0;
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -12,7 +12,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
S tint_symbol_1 = S(0, 0.0f);
|
S tint_symbol_1 = S(0, 0.0f);
|
||||||
v = tint_symbol_1;
|
v = tint_symbol_1;
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -6,7 +6,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
v = ivec3(0, 0, 0);
|
v = ivec3(0, 0, 0);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -204,7 +204,7 @@ void tint_symbol(uint idx) {
|
||||||
m98 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
|
m98 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
m99 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
|
m99 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
m00[0][0] = 1.0f;
|
m00[0][0] = 1.0f;
|
||||||
m01[0][0] = 1.0f;
|
m01[0][0] = 1.0f;
|
||||||
m02[0][0] = 1.0f;
|
m02[0][0] = 1.0f;
|
||||||
|
|
|
@ -10,7 +10,7 @@ void main1(uint local_invocation_index) {
|
||||||
{
|
{
|
||||||
a = 0;
|
a = 0;
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
a = 42;
|
a = 42;
|
||||||
uses_a();
|
uses_a();
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ void main2(uint local_invocation_index_1) {
|
||||||
{
|
{
|
||||||
b = 0;
|
b = 0;
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
b = 7;
|
b = 7;
|
||||||
uses_b();
|
uses_b();
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ void main3(uint local_invocation_index_2) {
|
||||||
a = 0;
|
a = 0;
|
||||||
b = 0;
|
b = 0;
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
outer();
|
outer();
|
||||||
no_uses();
|
no_uses();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ void main_1() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((lid == 0)) {
|
if ((lid == 0)) {
|
||||||
|
|
|
@ -44,7 +44,7 @@ void main_1() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((lid == 0)) {
|
if ((lid == 0)) {
|
||||||
|
|
|
@ -37,7 +37,7 @@ void main_1() {
|
||||||
float x_13 = GLF_live2gl_FragCoord.x;
|
float x_13 = GLF_live2gl_FragCoord.x;
|
||||||
if ((int(x_13) < 120)) {
|
if ((int(x_13) < 120)) {
|
||||||
} else {
|
} else {
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ void main_1() {
|
||||||
}
|
}
|
||||||
float x_16 = GLF_live2gl_FragCoord.x;
|
float x_16 = GLF_live2gl_FragCoord.x;
|
||||||
GLF_dead3x = x_16;
|
GLF_dead3x = x_16;
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
x_12.x_compute_data[0] = 42u;
|
x_12.x_compute_data[0] = 42u;
|
||||||
|
|
|
@ -41,7 +41,7 @@ void main_1() {
|
||||||
float x_13 = GLF_live2gl_FragCoord.x;
|
float x_13 = GLF_live2gl_FragCoord.x;
|
||||||
if ((int(x_13) < 120)) {
|
if ((int(x_13) < 120)) {
|
||||||
} else {
|
} else {
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ void main_1() {
|
||||||
}
|
}
|
||||||
float x_16 = GLF_live2gl_FragCoord.x;
|
float x_16 = GLF_live2gl_FragCoord.x;
|
||||||
GLF_dead3x = x_16;
|
GLF_dead3x = x_16;
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
x_12.x_compute_data[0] = 42u;
|
x_12.x_compute_data[0] = 42u;
|
||||||
|
|
|
@ -70,7 +70,7 @@ void main_1() {
|
||||||
float x_118 = x_10.injectionSwitch.x;
|
float x_118 = x_10.injectionSwitch.x;
|
||||||
float x_120 = x_10.injectionSwitch.y;
|
float x_120 = x_10.injectionSwitch.y;
|
||||||
if ((x_118 > x_120)) {
|
if ((x_118 > x_120)) {
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@ void main_1() {
|
||||||
float x_118 = x_10.injectionSwitch.x;
|
float x_118 = x_10.injectionSwitch.x;
|
||||||
float x_120 = x_10.injectionSwitch.y;
|
float x_120 = x_10.injectionSwitch.y;
|
||||||
if ((x_118 > x_120)) {
|
if ((x_118 > x_120)) {
|
||||||
memoryBarrierShared();
|
barrier();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue