 struct Uniforms {
    aShape : vec2<u32>,
    bShape : vec2<u32>,
    outShape : vec2<u32>,
};
 struct Matrix {
    numbers: array<u32>,
};

@group(0) @binding(0) var<storage, read> firstMatrix : Matrix;
@group(0) @binding(1) var<storage, read> secondMatrix : Matrix;
@group(0) @binding(2) var<storage, write> resultMatrix : Matrix;
@group(0) @binding(3) var<uniform> uniforms : Uniforms;

@compute @workgroup_size(2,2,1)
fn main(@builtin(global_invocation_id) global_id  : vec3<u32>) {
    let resultCell : vec2<u32> = vec2<u32>(global_id.y, global_id.x);
    let dimInner : u32 = uniforms.aShape.y;
    let dimOutter: u32 = uniforms.outShape.y;
    var result : u32 = 0u;
    for (var i : u32 = 0u; i < dimInner; i = i + 1u) {
        let a : u32 = i + resultCell.x * dimInner;
        let b : u32 = resultCell.y + i * dimOutter;
        result = result + firstMatrix.numbers[a] * secondMatrix.numbers[b];
    }

    let index : u32 = resultCell.y + resultCell.x * dimOutter;
    resultMatrix.numbers[index] = result;
}
