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.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to