#version 310 es

struct UBO {
  int dynamic_idx;
  uint pad;
  uint pad_1;
  uint pad_2;
};

layout(binding = 0, std140) uniform ubo_block_ubo {
  UBO inner;
} ubo;

struct S {
  int data[64];
};

struct Result {
  int tint_symbol;
};

layout(binding = 1, std430) buffer result_block_ssbo {
  Result inner;
} result;

shared S s;
void f(uint local_invocation_index) {
  {
    for(uint idx = local_invocation_index; (idx < 64u); idx = (idx + 1u)) {
      uint i = idx;
      s.data[i] = 0;
    }
  }
  barrier();
  result.inner.tint_symbol = s.data[ubo.inner.dynamic_idx];
}

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
  f(gl_LocalInvocationIndex);
  return;
}
