I have similar code as in this question: some opengl and glm explanation
I have a combined matrix that I pass as a single uniform
//C++
mat4 combinedMatrix = projection * view * model;
//GLSL doesn't work
out_position = combinedMatrix * vec4(vertex, 1.0);
It doesn't work. But if I do all the multiplication in the shader so I pass in each individual matrix and get
//GLSL works
out_position = projection * view * model * vec4(vertex, 1.0);
It works. I can't see anything wrong with my matrices in the C++ code.
The following works too
//C++
mat4 combinedMatrix = projection * view * model;
vec4 p = combinedMatrix * v;
//pass in vertex p as a vec4
//GLSL works
out_position = vertex