Mesa (master): i965/gen6: Add support for point min/ max size from ARB_point_parameters.

Eric Anholt anholt at kemper.freedesktop.org
Wed May 18 21:23:49 UTC 2011


Module: Mesa
Branch: master
Commit: 64f8ddaf9b89e99396862fa38af631dd08b8c0c5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=64f8ddaf9b89e99396862fa38af631dd08b8c0c5

Author: Eric Anholt <eric at anholt.net>
Date:   Thu May 12 14:19:51 2011 -0700

i965/gen6: Add support for point min/max size from ARB_point_parameters.

Fixes glean pointAtten.

---

 src/mesa/drivers/dri/i965/gen6_sf_state.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 8c06ff8..84028e4 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -103,6 +103,7 @@ upload_sf_state(struct brw_context *brw)
    int attr = 0;
    int urb_start;
    int two_side_color = (ctx->Light.Enabled && ctx->Light.Model.TwoSide);
+   float point_size;
 
    /* _NEW_TRANSFORM */
    if (ctx->Transform.ClipPlanesEnabled)
@@ -209,8 +210,12 @@ upload_sf_state(struct brw_context *brw)
 	 ctx->Point._Attenuated))
       dw4 |= GEN6_SF_USE_STATE_POINT_WIDTH;
 
-   dw4 |= U_FIXED(CLAMP(ctx->Point.Size, 0.125, 255.875), 3) <<
-      GEN6_SF_POINT_WIDTH_SHIFT;
+   /* Clamp to ARB_point_parameters user limits */
+   point_size = CLAMP(ctx->Point.Size, ctx->Point.MinSize, ctx->Point.MaxSize);
+
+   /* Clamp to the hardware limits and convert to fixed point */
+   dw4 |= U_FIXED(CLAMP(point_size, 0.125, 255.875), 3);
+
    if (ctx->Point.SpriteOrigin == GL_LOWER_LEFT)
       dw1 |= GEN6_SF_POINT_SPRITE_LOWERLEFT;
 




More information about the mesa-commit mailing list