[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