| #version 450 |
| layout(local_size_x = 1) in; |
| |
| layout(set = 0, binding = 0, std430) writeonly buffer SSBO |
| { |
| mat2 m22; |
| mat2x3 m23; |
| mat2x4 m24; |
| mat3x2 m32; |
| mat3 m33; |
| mat3x4 m34; |
| mat4x2 m42; |
| mat4x3 m43; |
| mat4 m44; |
| }; |
| |
| layout(set = 0, binding = 1, std430) readonly buffer ReadSSBO |
| { |
| vec2 v2; |
| vec3 v3; |
| vec4 v4; |
| }; |
| |
| void main() |
| { |
| m22 = outerProduct(v2, v2); |
| m23 = outerProduct(v3, v2); |
| m24 = outerProduct(v4, v2); |
| |
| m32 = outerProduct(v2, v3); |
| m33 = outerProduct(v3, v3); |
| m34 = outerProduct(v4, v3); |
| |
| m42 = outerProduct(v2, v4); |
| m43 = outerProduct(v3, v4); |
| m44 = outerProduct(v4, v4); |
| } |