#version 120 attribute vec3 v3; uniform mat3x2 m32; const mat2x4 m24 = mat2x4(1.0, 2.0, 3.0, 4.0, 3.0, 4.0, 3.0, 4.0, 5.0); // ERROR, too many arguments void main() { mat2x3 m23; vec3 a, b; a = v3 * m23; // ERROR, type mismatch b = m32 * v3; // ERROR, type mismatch m23.xy; // ERROR, can't use . gl_Position = vec4(m23 * m32 * v3, m24[2][4]); // ERROR, 2 and 4 are out of range }