[Mesa-dev] [PATCH] tgsi: don't forget interp for BCOLOR inputs

Rob Clark robdclark at gmail.com
Fri Feb 27 06:05:00 PST 2015


From: Rob Clark <robclark at freedesktop.org>

To lower two sided color, tgsi_lowering creates additional BCOLOR inputs
(matching up to the BCOLOR outputs on the vert shader).  These inputs
should copy the interpolation state of their matching COLOR input.

Signed-off-by: Rob Clark <robclark at freedesktop.org>
---
 src/gallium/auxiliary/tgsi/tgsi_lowering.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_lowering.c b/src/gallium/auxiliary/tgsi/tgsi_lowering.c
index dee6c41..4954c11 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_lowering.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_lowering.c
@@ -1152,7 +1152,7 @@ transform_samp(struct tgsi_transform_context *tctx,
  */
 #define TWOSIDE_GROW(n)  (                      \
       2 +         /* FACE */                    \
-      ((n) * 2) + /* IN[] BCOLOR[n] */          \
+      ((n) * 3) + /* IN[], BCOLOR[n], <intrp> */\
       ((n) * 1) + /* TEMP[] */                  \
       ((n) * NINST(3))   /* CMP instr */        \
       )
@@ -1172,13 +1172,17 @@ emit_twoside(struct tgsi_transform_context *tctx)
 
    /* additional inputs for BCOLOR's */
    for (i = 0; i < ctx->two_side_colors; i++) {
+      unsigned in_idx = ctx->two_side_idx[i];
       decl = tgsi_default_full_declaration();
       decl.Declaration.File = TGSI_FILE_INPUT;
       decl.Declaration.Semantic = true;
       decl.Range.First = decl.Range.Last = inbase + i;
       decl.Semantic.Name = TGSI_SEMANTIC_BCOLOR;
-      decl.Semantic.Index =
-         info->input_semantic_index[ctx->two_side_idx[i]];
+      decl.Semantic.Index = info->input_semantic_index[in_idx];
+      decl.Declaration.Interpolate = true;
+      decl.Interp.Interpolate = info->input_interpolate[in_idx];
+      decl.Interp.Location = info->input_interpolate_loc[in_idx];
+      decl.Interp.CylindricalWrap = info->input_cylindrical_wrap[in_idx];
       tctx->emit_declaration(tctx, &decl);
    }
 
-- 
2.1.0



More information about the mesa-dev mailing list