#version 310 es

struct UBO {
  int dynamic_idx;
};

layout(binding = 0) uniform UBO_1 {
  int dynamic_idx;
} ubo;

struct Result {
  int tint_symbol;
};

layout(binding = 2, std430) buffer Result_1 {
  int tint_symbol;
} result;
struct SSBO {
  int data[4];
};

layout(binding = 1, std430) buffer SSBO_1 {
  int data[4];
} ssbo;
void f() {
  ssbo.data[ubo.dynamic_idx] = 1;
  result.tint_symbol = ssbo.data[3];
}

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