From 594760148cb42cdaf568eef63357fac1c1b7f124 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sun, 25 May 2008 11:35:54 -0700 Subject: r5xx: Negation masks for every inst except SWZ. Yay? --- src/mesa/drivers/dri/r300/r500_fragprog.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/mesa/drivers/dri/r300/r500_fragprog.c') diff --git a/src/mesa/drivers/dri/r300/r500_fragprog.c b/src/mesa/drivers/dri/r300/r500_fragprog.c index 2c18c3f6fd..c7b551d4b8 100644 --- a/src/mesa/drivers/dri/r300/r500_fragprog.c +++ b/src/mesa/drivers/dri/r300/r500_fragprog.c @@ -117,8 +117,10 @@ static inline GLuint make_rgb_swizzle(struct prog_src_register src) { temp = GET_SWZ(src.Swizzle, i); /* Fix SWIZZLE_ONE */ if (temp == 5) temp++; - swiz += temp << i*3; + swiz |= temp << i*3; } + if (src.NegateBase) + swiz |= (R500_SWIZ_MOD_NEG << 10); return swiz; } @@ -126,6 +128,10 @@ static inline GLuint make_alpha_swizzle(struct prog_src_register src) { GLuint swiz = GET_SWZ(src.Swizzle, 3); if (swiz == 5) swiz++; + + if (src.NegateBase) + swiz |= (R500_SWIZ_MOD_NEG << 4); + return swiz; } -- cgit v1.2.3