This patch series implements centroid interpolation on i965.  Patch
1 is the only one of interest to non-intel folks--it modifies the
GLSL front-end to record (in struct gl_fragment_program) which
fragment shader inputs need to be centroid interpolated.

The remaining patches implement the i965 back-end.  Patch 2 ensures
that centroid interpolation won't cause problems with our
configuration of the clipper.  Patches 3-4 are the actual
implementation.  Patches 5-6 work around a hardware limitation which
causes centroid values to be computed incorrectly for unlit pixels
(making derivatives wildly inaccurate)--we work around this problem by
replacing unlit pixels' centroid values with non-centroid values
(which gives derivatives the amount of accuracy one would expect when
centroid interpolation is in use).

I believe we are now entering the home stretch for the i965 MSAA
implementation.  If I'm not mistaken, all that's left to do before
we're compliant with the spec is:

- A few bug fixes with integer formats on Ivy Bridge
- Implement sample coverage features (glSampleCoverage() etc)
- Verify that there are no interactions with legacy smoothing features
- Address some corner cases with very large render targets

[PATCH 1/6] glsl: Add IsCentroid bitfield to gl_fragment_program.
[PATCH 2/6] i965/msaa: Adapt clip setup for centroid noperspective 
interpolation.
[PATCH 3/6] i965/fs: Refactor interpolation code to prepare for adding centroid 
support.
[PATCH 4/6] i965/msaa: Add backend support for centroid interpolation.
[PATCH 5/6] i965/fs: Add FS_OPCODE_GET_MASK to fragment shader backend.
[PATCH 6/6] i965/msaa: Fix centroid interpolation of unlit pixels.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to