#version 450 #extension GL_EXT_scalar_block_layout : require layout(local_size_x = 1) in; layout(scalar, row_major, set = 0, binding = 0) buffer SSBO { mat3 m0; mat3 m1; vec3 v0; vec3 v1; }; void main() { v0 = (m0 * m1) * v1; v0 = m0 * (m1 * v1); v0 = (v1 * m0) * m1; v0 = v1 * (m0 * m1); }