[Mesa-dev] [PATCH] i915: Fix gl_Fragcoord interpolation
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Jun 22 14:53:03 UTC 2017
On Thu, Jun 22, 2017 at 03:43:36PM +0300, Ville Syrjälä wrote:
> On Wed, Jun 21, 2017 at 03:13:22PM -0700, Ian Romanick wrote:
> > On 06/21/2017 10:38 AM, ville.syrjala at linux.intel.com wrote:
> > > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > >
> > > gl_FragCoord contains the window coordinates so it seems to me that
> > > we should not use perspective correct interpolation for it. At least
> > > now I get similar output as i965/swrast/llvmpipe produce.
> > >
> > > This fixes dEQP-GLES2.functional.shaders.builtin_variable.fragcoord_w.
> > > dEQP-GLES2.functional.shaders.builtin_variable.fragcoord_xyz was already
> > > passing, though I'm not quite sure how it managed to do that.
> >
> > I suspect all the vertices had the same wrong w value, so the
> > interpolation just worked out.
>
> IIRC the code looked like it was trying to at least have differing Z
> values on the vertices, but I must admit I didn't check what kind
> of projection it was trying to do. Or maybe I wasn't even reading the
> right piece of code. But anyways, the test still passes so I don't
> think I'll bother worrying about it.
>
> >
> > > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > One tiny comment below, but also
> >
> > Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> > Cc: mesa-stable at lists.freedesktop.org
>
> Ta.
>
> <snip>
> > > diff --git a/src/mesa/drivers/dri/i915/intel_reg.h b/src/mesa/drivers/dri/i915/intel_reg.h
> > > index dabbd612ee04..0e482de84281 100644
> > > --- a/src/mesa/drivers/dri/i915/intel_reg.h
> > > +++ b/src/mesa/drivers/dri/i915/intel_reg.h
> > > @@ -93,7 +93,8 @@
> > > #define S2_TEX_COUNT_SHIFT_830 12
> > > #define S2_VERTEX_1_WIDTH_SHIFT_830 0
> > > #define S2_VERTEX_0_WIDTH_SHIFT_830 6
> > > -/* S3 not interesting */
> > > +
> > > +#define S3_TEXCOORD_PERSPECTIVE_DISABLE(unit) (1<<((unit)*4))
> >
> > Might be worth adding the "wrap shortest" bits too in case someone ever
> > cares. I know what they do, but I'm not sure how it's useful. /shrug/
>
> Sure, I can toss them in there for completeness.
Added, and pushed to master.
>
> >
> > >
> > > #define S4_POINT_WIDTH_SHIFT 23
> > > #define S4_POINT_WIDTH_MASK (0x1ff<<23)
> > >
>
> --
> Ville Syrjälä
> Intel OTC
--
Ville Syrjälä
Intel OTC
More information about the mesa-dev
mailing list