Hi there.
Ok, not really malicious, but you know…
I have an issue when compiling a buggy glsl geometry shader. First of all, the buggy shader code goes like this:
!! BAD CODE !!
// dont mind the names, just for debug reasons
uvec4 abc( uint marker )
{
return uvec4( marker ) >> uvec3(7,6,5,4) & uvec4(1) ;
}
BEFORE seeing the solution, do you see the buggy spot? Awesomely annoying!
!! GOOD CODE !!
Now the fix is simple:
// dont mind the names, just for debug reasons
uvec4 abc( uint marker )
{
return uvec4( marker ) >> uvec4(7,6,5,4) & uvec4(1) ;
}
When I compile the BAD CODE code, I get the pure virtual function exception pretty much between glCompileShader and glGetShaderInfoLog. What a pity. The GOOD CODE, as the name implies, makes the bug disappear!
[ATTACH=CONFIG]473[/ATTACH]
There is even no pure virtual function call handler called. I also tried to set one, but also not called. I checked that in purevirt.c.
That took some time to figure it out! I just thought there is some deeper trouble in the engine or something… I really sweat my pants full! However.
Can someone please check the code I posted above if the same “error” message occurs?
If so, I dont think that this is the right way to respond to the mistakes I made in GLSL code.
Thanks
#Edit#
Im using the latest AMD Driver