Am 19.02.2014 11:04, schrieb Kenneth Graunke: > 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 <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/gen8_sf_state.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/gen8_sf_state.c > b/src/mesa/drivers/dri/i965/gen8_sf_state.c > index b31b17e..0693fee 100644 > --- a/src/mesa/drivers/dri/i965/gen8_sf_state.c > +++ b/src/mesa/drivers/dri/i965/gen8_sf_state.c > @@ -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, >
Wow your hw can rasterize round points directly? At least ten years too late to be useful but that's a slick feature! In any case the logic looks right to me. I have not much idea about the hw do you need to match the raster bit (GEN8_RASTER_SMOOTH_POINT_ENABLE) for this too? Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev