Sample Independent Blending onto Multisampled Framebuffer

[ul]
[li]I draw a triangle to a Multisample Texture without blending.[/li][li]Then i draw another triangle to the same buffer with alpha blending.[/li][li]Then i extract only subsample 0 to my final image[/li][li]In the results it looks like the subsamples are not blended together independently (see the undesired anti-aliasing for each subsample in the following images)[/li][/ul]

[ATTACH=CONFIG]282[/ATTACH]

Is this expected behavior? Isn’t it said in the documentation that blending should be done independently for every sample?!

I have a GeForce GTX 560 and use the newester driver (301.42) (tried it before with a 29x.xx version)

Edit: Tried it with a Radeon Card and there the blending is correctly done sample-independently.
Does this seem to be a Driver-Bug or is it more likely, that i introduced undefined behaviour anywhere (the provided code that follows this post is almost the whole program code)

(My Code is embeded in a freeglut project using glew with an 4.2 compatibility context)

Initialization of the Framebuffer:


glGenFramebuffers(1,&fbo);
glGenTextures(1, &texMS);
glBindTexture(GL_TEXTURE_2D_MULTISAMPLE,texMS);
glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 2 ,GL_RGBA, windowWidth, windowHeight,true);
	
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,	GL_TEXTURE_2D_MULTISAMPLE, texMS,0);

Drawing of Geometry


glEnable(GL_MULTISAMPLE);

glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glDrawBuffer(GL_COLOR_ATTACHMENT0);

glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1,1,-1,1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glUseProgram(0);
glBegin(GL_TRIANGLES);
 glColor4f(0.0,0.0,1.0,0.5);
 glVertex2f(-1.0,-1.0);
 glColor4f(0.0,1.0,1.0,0.5);
 glVertex2f(1.0,-0.7);
 glColor4f(1.0,1.0,1.0,0.5);
 glVertex2f(0.5,1.0);
glEnd();

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.1,0.05,0.0);

glUseProgram(0);

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glBegin(GL_TRIANGLES);
 glColor4f(1.0,0.0,0.0,0.5);
 glVertex2f(-1.0,-1.0);
 glColor4f(1.0,1.0,0.0,0.5);
 glVertex2f(1.0,-0.7);
 glColor4f(1.0,0.0,1.0,0.5);
 glVertex2f(0.5,1.0);
glEnd();

glDisable(GL_BLEND);

Fragment Shader that extracts sample 0 (drawn as a fullscreen quad)


#version 330																		
out vec4 myPixelColor;																
uniform sampler2DMS tex;																													
                     																
void main()											
{														
 myPixelColor.rgb = texelFetch(tex, ivec2(gl_FragCoord.xy), 0).rgb;		
 myPixelColor.a   = 1.0;    												
}		

Am i missing something?

OK, i tried the NVidia 306.02 Beta Driver and my minimal-Example (that i posted above) now works.
So i guess it’s just a Bug in the NVidia drivers.

However if i change the Multisample-Texture’s internal format to SRGB8_ALPHA8, the bug still persists.
Strange…