OpenGL3+ out/in mat4 broken on many Nvidia videocards in Vertex shader, shader code included

This bug was found using Godot, but it work even in minimal OpenGL3+ engine

Bug confirmed on Nvidia 750, Nvidia 960, Nvidia 1080 series, have not other test results
Windows and Linux, bug work

fastest way is launching Web-browser version with ANGLE disabled
chrome.exe --use-angle=gl
then open this link Web Bug Test link

(AMD do not have this bug, and Nvidia with ANGLE enabled on WIndows in DX11 mode also do not have this bug)

Bug result:

Correct result:

Shader code:
(this code is right quad on screenshot)


#version 300 es
in vec4 position;

out mat4 mtx;
out mat4 tmtx;

void translate(inout mat4 m, vec3 d){
    m[3][0] = d.x;
    m[3][1] = d.y;
    m[3][2] = d.z;

    m[3].xyz=d; //does not matter, both does not work

void main() {
    gl_Position = vec4(,1.);

    vec3 a=vec3(1.,0.,0.);
    vec3 b=vec3(0.,1.,0.);

    //tmtx[3].xyz=a; //fix



#version 300 es
#ifdef GL_ES
precision highp float;
uniform vec2 u_resolution;

out vec4 glFragColor;

in mat4 mtx;
in mat4 tmtx;

void main() {
    vec2 uv = gl_FragCoord.xy/u_resolution.xy;
    vec3 col = vec3(0.);
    if(uv.x<0.5)col = mtx[3].xyz;
    else col = tmtx[3].xyz;
    glFragColor = vec4(col,1.);

This bug very big and ruin lots of mat4 logic if mat4 calculated in the Vertex shader, this is an only minimal example, in large code this bug very unpredictable

original Godot bug report link
there more shader code for all test shaders

this bug “not this lines bug” that can be obviously fixed as I write

    //tmtx[3].xyz=a; //fix

both of this mat4 mtx and tmtx are broken and more operation broke it even more, that I display in other shaders, in “real shaders” with real usage this bug ruin everything in my shader logic

still valid on latest Nvidia drivers Linux 460.39 Windows 461.40
and also there is way to reproduce it in fragment shader

this matX logic bug is Nvidia OpenGL GLSL driver compiler, it does not happen in glslang compiler