PDA

View Full Version : Interpolation qualifiers in interface blocks



RicarDog
09-18-2010, 09:06 PM
Hello,

I'm having problems when using interpolation qualifiers (flat/smooth) inside interface blocks.

The following works as expected with AMD and NVIDIA:

Vertex program:

flat out vec4 color;
Fragment program:

flat in vec4 color;
However, when using an interface block such as:

out Vertex
{
flat vec4 color;
};

in Vertex
{
flat vec4 color;
};
I get a compile error in NVIDIA ("error C7561: OpenGL requires 'in/out' with 'flat'"), while in AMD the 'flat' keyword is just ignored and a linear interpolation is done instead.

From what I understand, it should work according to GLSL 3.30 spec (4.3.7).

I am using shader #version 330, ATI Radeon 5850 with Catalyst 10.9, NVIDIA GeForce 9300M GS with 258.96, on Windows 7 x64.

Thanks,
Ricardo.

frank li
09-18-2010, 11:01 PM
It's a known issue for AMD driver and is fixed recently. You'd better wait for an upcoming driver to have a try.