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