The vertex shader:
in vec3 a_Position;
in vec4 a_Color;
in float a_Width;
in vec4 a_JointProduct;
in int a_EntityID;
layout(location=0) out vec3 pos;
layout(location=1) out vec4 color;
layout(location=2) out float v_stroke_width;
layout(location=3) out flat int v_EntityID;
layout(location=4) out vec4 v_joint_product;
layout(std140, binding = 0) uniform Camera
{
mat4 u_ViewProjection;
};
void main(){
gl_Position = u_ViewProjection * vec4(a_Position, 1.0);
pos = vec3(1.0, 1.0, 1.0);
color = vec4(1.0);
v_stroke_width = a_Width;
//v_joint_product = a_JointProduct;
//v_EntityID = a_EntityID;
}
The fragment shader:
layout(location = 0) out vec4 frag_color;
layout(location=0) in vec3 pos;
layout(location=1) in vec4 v_color;
layout(location=2) in float v_stroke_width;
layout(location=3) in flat int v_EntityID;
layout(location=4) in vec4 v_joint_product;
void main() {
frag_color = vec4(1.0);
}
With the above code (and some test data), the follwing is rendered:
Now, if I change the fragment shader //v_joint_product = a_JointProduct; -> v_joint_product = a_JointProduct; (Remove the comment on either of the two commented lines), I get a completely empty result, no triangles, nothing.
I'm running this with the follwing specs, since it may be a driver issue:
Vendor: ATI Technologies Inc.
Renderer: AMD Radeon(TM) Graphics
Version: 4.5.14802 Core Profile/Debug Context 21.40.18.15 30.0.14018.15002
I am incredibly confused as to why this is happening, the shader compiles and links and I get 0 errors, it simply stops working, sorry if it's an obvious question but I really can't figure it out, any help is much appreciated.
Also, this is most definetly driver related, because I tried it on the discrete gpu instead of the integrated one and it works completely fine, it also works fine on linux on the integrated and discrete gpus, if anyone knows how to change this so it works on shitty drivers please help.

glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,⋯)return?