
1. Re: GLSL driver bug: mat4x3 * vec4 = vec4?!
Fred_Intel Apr 3, 2013 12:30 PM (in response to Daniel)Hi Daniel,
Thanks for sharing this information with us. I will forward it to the appropriate support group so they can take it in consideration.

2. Re: GLSL driver bug: mat4x3 * vec4 = vec4?!
Daniel Apr 3, 2013 12:33 PM (in response to Fred_Intel)Thank you!

3. Re: GLSL driver bug: mat4x3 * vec4 = vec4?!
Hiep Jun 29, 2014 6:58 AM (in response to Fred_Intel)Hi,
I have a similar problem with Intel HD Graphics 3000, driver version: 9.17.10.3347
mat3x4 M;
vec3 x;
then the multiplication : M*x is valid and the result should be of type vec4, however if I write: vec4 y = M*x then I have the message:
" '=' : cannot convert from '3component vector of float' to '4component vector of float'".
It means "mat3x4 * vec3" is considered having the vec3 type : mat3x4*vec3 = vec3 ?!
I do not have this error with Nvidia cards.
Thanks to fix this issue.

4. Re: GLSL driver bug: mat4x3 * vec4 = vec4?!
kevin_intel Jun 30, 2014 8:54 AM (in response to Hiep)I am sorry you are having this problem.
Have you tried with the latest driver version?
Here you can get it:
https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3319&DwnldID=23764

5. Re: GLSL driver bug: mat4x3 * vec4 = vec4?!
CapnSlipp Sep 17, 2014 5:13 PM (in response to Daniel)In GLSL, the type
mat4x3
represents a matrix that is 4 columns wide (rowlengths of 4) and 3 rows tall (columnlengths of 3) _{[source]}. The products of a matrix and a vector in GLSL requires the vector's length be the same as the matrix's columnlength/rowcount _{[source]}.What you're seeing — that a matrix with columnlengths of 3 requires the vector to be a
vec3
— is the correct behavior for GLSL on every platform. It's much more common to use matrices of sizemat4x4
(AKAmat4
) when transforming thegl_Vertex
to agl_Position
. Correct solutions to your problem would be to: Strip off the
.w
component off ofgl_Vertex
as you've done, or  To initialize a 4th row of the matrix (as a
mat4
) to0,0,0,1
(from bottomleft to bottomright).
Much more information about how GL/GLSL perform standard matrix transformation can be found in this useful post: http://www.songho.ca/opengl/gl_transform.html#modelview
The best part about this is the two official Intel reps didn't bother to point out your mistake, they both blindly handed you apologies and courtesies claiming that they're sending the problem off to be fixed. TL;DR: Intel has some pretty ****** support reps.
 Strip off the

6. Re: GLSL driver bug: mat4x3 * vec4 = vec4?!
kevin_intel Sep 18, 2014 10:26 AM (in response to CapnSlipp)CapnSlipp,
Thank you for the information. This will be helpful for other users.
Kevin M