[Mesa-dev] [PATCH v2 0/8] Interpolation qualifier support for i965

Paul Berry stereotype441 at gmail.com
Tue Oct 25 20:38:18 PDT 2011


Here is try #2 at support for GLSL 1.30 interpolation qualifiers for
i965 Gen6+.

Based on comments from Brian Paul, I got rid of the bitfields
InterpOverridesFlat, InterpOverridesSmooth, and
InterpOverridesNoperspective, and replaced them with an array,
InterpQualifier, that specifies the interpolation qualifier for each
fragment shader input.  This simplifies the core mesa code a lot (at
the expense of complicating i965 code only slightly), and it carries
the added bonuses that (a) there's no danger of the bitfields falling
out of sync and resulting in nonsensical combinations, and (b) the
code won't break if we ever increase the number of fragment shader
inputs beyond 64.

The most substantial differences from v1 are in patch 1/8 (which
creates the InterpQualifier array) and patch 8/8 (which took on a bit
of added complexity in brw_compute_barycentric_interp_modes() due to
not having access to interpolation mode bitfields).

[PATCH v2 1/8] mesa: Expose GLSL interpolation qualifiers in gl_fragment_program.
[PATCH v2 2/8] glsl: Distinguish between no interpolation qualifier and 'smooth'
[PATCH v2 3/8] glsl: add ir_variable::determine_interpolation_mode() function.
[PATCH v2 4/8] i965/fs: Fix split_virtual_grfs() when delta_xy not in a virtual register.
[PATCH v2 5/8] i965/gen6+: Parameterize barycentric interpolation modes.
[PATCH v2 6/8] i965/fs: use determine_interpolation_mode().
[PATCH v2 7/8] i965/gen6+: Rename GEN6_CLIP_BARYCENTRIC_ENABLE.
[PATCH v2 8/8] i965/gen6+: Add support for noperspective interpolation.


More information about the mesa-dev mailing list