[Mesa-dev] [PATCH] st_program.c: gl_ClipDistance must be interpolated in 3d space.

Vadim Girlin vadimgirlin at gmail.com
Mon Jul 2 08:04:49 PDT 2012


On Sun, 2012-06-24 at 11:18 +0200, Olivier Galibert wrote:
> That old bug was hidden but the clipper always interpolating in 3d
> space no matter what it should have been doing.  Now that the
> interpolation has been fixed, the bug shows up.
>     
> Fixes bugzilla 51364.
>     
> Signed-off-by: Olivier Galibert <galibert at pobox.com>
> 
> diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
> index e6664fb..9f98298 100644
> --- a/src/mesa/state_tracker/st_program.c
> +++ b/src/mesa/state_tracker/st_program.c
> @@ -569,12 +569,12 @@ st_translate_fragment_program(struct st_context *st,
>           case FRAG_ATTRIB_CLIP_DIST0:
>              input_semantic_name[slot] = TGSI_SEMANTIC_CLIPDIST;
>              input_semantic_index[slot] = 0;
> -            interpMode[slot] = TGSI_INTERPOLATE_LINEAR;
> +            interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE;
>              break;
>           case FRAG_ATTRIB_CLIP_DIST1:
>              input_semantic_name[slot] = TGSI_SEMANTIC_CLIPDIST;
>              input_semantic_index[slot] = 1;
> -            interpMode[slot] = TGSI_INTERPOLATE_LINEAR;
> +            interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE;

At first glance this change doesn't seem correct, GLSL 1.30 spec says
that clip distances are interpolated linearly. Am I missing something?

Vadim

>              break;
>              /* In most cases, there is nothing special about these
>               * inputs, so adopt a convention to use the generic
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev





More information about the mesa-dev mailing list