mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 17:10:11 +01:00
i965: Enable smooth points when multisampling without point sprites.
According to the "Point Multisample Rasterization" of the OpenGL specification (3.0 or later), smooth points are supposed to be enabled implicitly when multisampling, regardless of the GL_POINT_SMOOTH flag. However, if GL_POINT_SPRITE is enabled, you get square points no matter what. Core contexts always enable point sprites, so this effectively makes smooth points go away, even in the case of multisampling. Fixes Piglit's EXT_framebuffer_multisample/point-smooth tests. (Yes, that's right folks, we actually have Piglit tests for this.) Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
parent
a3d70580b5
commit
51145a24f7
1 changed files with 5 additions and 1 deletions
|
|
@ -139,8 +139,11 @@ upload_sf(struct brw_context *brw)
|
|||
if (!(ctx->VertexProgram.PointSizeEnabled || ctx->Point._Attenuated))
|
||||
dw3 |= GEN6_SF_USE_STATE_POINT_WIDTH;
|
||||
|
||||
if (ctx->Point.SmoothFlag)
|
||||
/* _NEW_POINT | _NEW_MULTISAMPLE */
|
||||
if ((ctx->Point.SmoothFlag || ctx->Multisample._Enabled) &&
|
||||
!ctx->Point.PointSprite) {
|
||||
dw3 |= GEN8_SF_SMOOTH_POINT_ENABLE;
|
||||
}
|
||||
|
||||
dw3 |= GEN6_SF_LINE_AA_MODE_TRUE;
|
||||
|
||||
|
|
@ -166,6 +169,7 @@ const struct brw_tracked_state gen8_sf_state = {
|
|||
.mesa = _NEW_LIGHT |
|
||||
_NEW_PROGRAM |
|
||||
_NEW_LINE |
|
||||
_NEW_MULTISAMPLE |
|
||||
_NEW_POINT,
|
||||
.brw = BRW_NEW_CONTEXT,
|
||||
.cache = 0,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue