I am trying to do some customized coverage test in fragment shader, and in order to make it work with MSAA, I want to know the sample location within the pixel. So I use glGetMultisamplefv with GL_SAMPLE_POSITION, here are the locactions returned for 4xMSAA:

0.375, 0.875
0.875, 0.625
0.125, 0.375
0.625, 0.125

I try them but see some artifact, then I go ahead and run fragment shader per sample and output the gl_SamplePosition to a buffer and I get:

0.375, 0.125
0.875, 0.375
0.125, 0.625
0.625, 0.875

It seems like all the y-coordinate are flipped. Is this a driver problem?

OS: windows 8
Driver: 334.89
Card: GTX 780