layout(local_size_x = 128) in;
layout(std430) buffer;

layout(binding = 0) writeonly buffer Output {
  vec4 elements[];
} output_data;

layout(binding = 1) readonly buffer Input0 {
  int some_int;
  ivec2 fixed_array[3];
  vec4 elements[];
} input_data0;

layout(binding = 2) readonly buffer Input1 {
  uvec2 fixed_array[4];
  vec4 elements[];
} input_data1;

uniform Info {
  uint count;
} info;

void main()
{
  uint ident = gl_GlobalInvocationID.x;
  // TODO(dnfield): https://github.com/flutter/flutter/issues/112683
  // We should be able to use length here instead of an extra arrgument.
  if (ident >= info.count) {
    return;
  }

  output_data.elements[ident] = input_data0.elements[ident] * input_data1.elements[ident];
  output_data.elements[ident].x += input_data0.fixed_array[1].x;
  output_data.elements[ident].y += input_data1.fixed_array[0].y;
  output_data.elements[ident].z += input_data0.some_int;
}
