If enable antialiasing point by call glEnable(GL_POINT_SMOOTH) and set the point size larger than 1, the drawn point is still a square and Mesa do not computer coverage value.
Created attachment 9960 [details] test case The test case draws a point which size is 3. The result is 3x3 region is colorful with same color. Other pixels are not colored.
Looks OK here w/ 6.5.3 and git/master. You're using the software x11 driver, and not a hardware driver, right? The program prints: size range: 1.000000 20.000000; size step: 0.100000 draw pixel at (0, 0): 0.000000 draw pixel at (0, 1): 0.000000 draw pixel at (0, 2): 0.000000 draw pixel at (0, 3): 0.000000 draw pixel at (0, 4): 0.000000 draw pixel at (1, 0): 0.000000 draw pixel at (1, 1): 0.674510 draw pixel at (1, 2): 0.909804 draw pixel at (1, 3): 0.674510 draw pixel at (1, 4): 0.000000 draw pixel at (2, 0): 0.000000 draw pixel at (2, 1): 0.909804 draw pixel at (2, 2): 1.000000 draw pixel at (2, 3): 0.909804 draw pixel at (2, 4): 0.203922 draw pixel at (3, 0): 0.000000 draw pixel at (3, 1): 0.674510 draw pixel at (3, 2): 0.909804 draw pixel at (3, 3): 0.674510 draw pixel at (3, 4): 0.000000 draw pixel at (4, 0): 0.000000 draw pixel at (4, 1): 0.000000 draw pixel at (4, 2): 0.203922
This bug only exists with 965 driver. Changed component to i965.
The bug also exists with i915 driver now. With i915 driver, the output of the test case is: size range: 1.000000 255.000000; size step: 1.000000 draw pixel at (0, 0): 0.000000 draw pixel at (0, 1): 0.000000 draw pixel at (0, 2): 0.000000 draw pixel at (0, 3): 0.000000 draw pixel at (0, 4): 0.000000 draw pixel at (1, 0): 0.000000 draw pixel at (1, 1): 0.000000 draw pixel at (1, 2): 0.000000 draw pixel at (1, 3): 0.000000 draw pixel at (1, 4): 0.000000 draw pixel at (2, 0): 0.000000 draw pixel at (2, 1): 0.000000 draw pixel at (2, 2): 0.000000 draw pixel at (2, 3): 0.000000 draw pixel at (2, 4): 0.000000 draw pixel at (3, 0): 0.000000 draw pixel at (3, 1): 0.000000 draw pixel at (3, 2): 0.000000 draw pixel at (3, 3): 0.000000 draw pixel at (3, 4): 0.000000 draw pixel at (4, 0): 0.000000 draw pixel at (4, 1): 0.000000 draw pixel at (4, 2): 0.000000 draw pixel at (4, 3): 0.000000 draw pixel at (4, 4): 0.000000
Not speaking directly of i915/i965, but typical hardware just can't support this natively. Solutions would be to try to turn it into a point sprite with a alpha texture attached, decompose the point into several triangles, use swrast or just not announce support for large antialiased point sizes. I'm not sure where the maximum supported size of 3 comes from. Maybe that's the maximum where it's still ok to draw a round point as a square since the error is still in the sub-pixel range?
Set a variable INTEL_STRICT_CONFORMANCE=1 in your environment.
After I set INTEL_STRICT_CONFORMANCE=1, there is nothing to be drawn. All of the pixels are zero. Soft render is OK.
fixed in mesa bff94a91c6852157a8251652cb61dc699cd8e4f1
verified. Thanks.
Mass version move, cvs -> git
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.