[Mesa-dev] [PATCH 2/2] i915: fix wrong rendering of gl_PointSize on Pineview

Yuanhan Liu yuanhan.liu at linux.intel.com
Thu Mar 1 18:14:05 PST 2012


On Thu, Mar 01, 2012 at 09:54:46AM -0800, Eric Anholt wrote:
> On Thu, 23 Feb 2012 14:19:19 +0800, Yuanhan Liu <yuanhan.liu at linux.intel.com> wrote:
> > The current code would ignore the point size specified by gl_PointSize
> > builtin variable in vertex shader on Pineview. This patch servers as
> > fixing that.
> > 
> > This patch fixes the following issues on Pineview:
> > webglc: https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/rendering/point-size.html
> > piglit: glsl-vs-point-size
> > 
> > NOTE: This is a candidate for stable release branches.
> > 
> > v2: pick Eric's nice tip for fixing this issue in hardware rendering.
> > 
> > Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
> > ---
> >  src/mesa/drivers/dri/i915/i915_fragprog.c |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c
> > index 4f016a3..2d60523 100644
> > --- a/src/mesa/drivers/dri/i915/i915_fragprog.c
> > +++ b/src/mesa/drivers/dri/i915/i915_fragprog.c
> > @@ -1361,6 +1361,10 @@ i915ValidateFragmentProgram(struct i915_context *i915)
> >        EMIT_ATTR(_TNL_ATTRIB_POS, EMIT_3F_VIEWPORT, S4_VFMT_XYZ, 12);
> >     }
> >  
> > +   /* Handle gl_PointSize builtin var here */
> > +   if (ctx->Point._Attenuated || ctx->VertexProgram.PointSizeEnabled)
> > +      EMIT_ATTR(_TNL_ATTRIB_POINTSIZE, EMIT_1F, S4_VFMT_POINT_WIDTH, 1);
> 
> All the other EMIT_ATTRs specify the number of bytes as the last arg.
> It seems like this code shouldn't have worked.

Actually, it does work ;)

Well, if the last arg specify the size in _bytes_, then this patch was
wrong. 

And here is the updated one:
-----



More information about the mesa-dev mailing list