I have a multisample pbuffer with destination alpha. I clear it to colour (1, 0, 0, 0), and draw a triangle of colour (0, 0, 1, 1) covering half of a square viewport (i.e. one edge is at 45 degrees).
I am a surprised by the colour of the antialiased pixels along the 45 degree edge.
I would expect them to be (0, 0, 1, n).
But in fact they are (1-n, 0, n, n), so I see a nasty purple line down the edge of my nice blue triangle.
It is as if the destination alpha value is being ignored.
Does anyone know if this is the correct behaviour, or if there is a way to fix it?
Normal semi-transparent fragments blend fine; if I blend (0, 0, 1, 0.5) onto (1, 0, 0, 0) in a non-multisample pbuffer, I get (0, 0, 1, 0.5). I expected the same results from anti-aliased fragments.
I am using a GeForce FX 5200 with the latest (71.89) driver on WinXP. I get the same results using Direct3D.