layout(set=0, binding=0) buffer sizes {
    int2[] sizes;  // in1, in2, out
};
layout(set=0, binding=1) readonly buffer inputs1  {
    float data1[];
};
layout(set=0, binding=2) readonly buffer inputs2 {
    float data2[];
};
layout(set=0, binding=3) writeonly buffer result {
    float resultData[];
};

void main() {
    sizes[2] = int2(sizes[0].x, sizes[1].y);

    int2 resultCell = int2(sk_ThreadPosition.x, sk_ThreadPosition.y);
    float result = 0.0;
    for (int i = 0; i < sizes[0].y; ++i) {
      int a = i + resultCell.x * sizes[0].y;
      int b = resultCell.y + i * sizes[1].y;
      result += data1[a] * data2[b];
    }

    int index = resultCell.y + resultCell.x * sizes[1].y;
    resultData[index] = result;
}
