I just upgraded my Nvidia drivers and now I'm getting this error: ARB_separate_shader_objects requires built-in block gl_PerVertex to be redeclared before accesing its members
How do I fix this? I don't use gl_PerVertex in my code...
// frag
#version 420 core
#define POSITION 0
#define GEOMUV 1
#define INDEX 2
#define FRAG_COLOR 0
uniform sampler2DArray freetype;
layout(location = FRAG_COLOR, index = 0) out vec4 out_Color;
in Data
{
vec2 UV;
flat int Index;
} gdata;
void main(void)
{
out_Color = texture(freetype, vec3(gdata.UV, gdata.Index)).rgba;
}
//geom
#version 420 core
#define POSITION 0
#define GEOMUV 1
#define INDEX 2
#define FRAG_COLOR 0
layout(points) in; // x, y, width, height
layout(triangle_strip, max_vertices = 4) out;
uniform mat4 MVP;
in Data
{
ivec4 pos; // x, y, width, height
vec2 UV;
flat int Index;
} vdata[1];
out Data
{
vec2 UV;
flat int Index;
} gdata;
void main()
{
int x = vdata[0].pos.x;
int y = vdata[0].pos.y;
int widthx = vdata[0].pos.z + vdata[0].pos.x;
int heighty = vdata[0].pos.w + vdata[0].pos.y;
// bottom left quad
gl_Position = MVP * vec4(x, heighty, 0, 1);
gdata.UV = vec2(0.0, 0.0);
gdata.Index = vdata[0].Index;
EmitVertex();
// bottom right quad
gl_Position = MVP * vec4(widthx, heighty, 0, 1);
gdata.UV = vec2(1.0, 0.0);
gdata.Index = vdata[0].Index;
EmitVertex();
// top right quad
gl_Position = MVP * vec4(x, y, 0, 1);
gdata.UV = vec2(0.0, 1.0);
gdata.Index = vdata[0].Index;
EmitVertex();
// top left quad
gl_Position = MVP * vec4(widthx, y, 0, 1);
gdata.UV = vec2(1.0, 1.0);
gdata.Index = vdata[0].Index;
EmitVertex();
EndPrimitive();
}
// vert file
#version 420 core
#define POSITION 0
#define GEOMUV 1
#define INDEX 2
#define FRAG_COLOR 0
layout(location = POSITION) in ivec4 in_Position;
layout(location = GEOMUV) in vec2 in_UV;
layout(location = INDEX) flat in int in_Index;
out Data
{
ivec4 pos;
vec2 UV;
flat int Index;
} vdata;
void main(void)
{
vdata.pos = in_Position;
vdata.UV = in_UV;
vdata.Index = in_Index;
}