mesa/st: gl_ClipDistance must be interpolated in 3d space.
authorOlivier Galibert <galibert@pobox.com>
Sun, 24 Jun 2012 09:18:18 +0000 (11:18 +0200)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 4 Jul 2012 09:47:14 +0000 (10:47 +0100)
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 fdo 51364.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
src/mesa/state_tracker/st_program.c

index e6664fb7cc271a041c01739d0c6712e4c4c2d480..9f98298b4a099bd68cd111d05786427ec86dd7e2 100644 (file)
@@ -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;
             break;
             /* In most cases, there is nothing special about these
              * inputs, so adopt a convention to use the generic