From 00bd85e57437d91e227fa768527bc22e3814de1e Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Fri, 5 Feb 2010 15:16:07 +0100 Subject: [PATCH] Revert "softpipe: Implement cylindrical wrapping for linear interpolator." This reverts commit 444cd62ca33a45bd39e8408979a0a01c246c6381. --- src/gallium/drivers/softpipe/sp_setup.c | 46 ++++++++------------------------- 1 file changed, 11 insertions(+), 35 deletions(-) diff --git a/src/gallium/drivers/softpipe/sp_setup.c b/src/gallium/drivers/softpipe/sp_setup.c index b7b52b1..bb1bff5 100644 --- a/src/gallium/drivers/softpipe/sp_setup.c +++ b/src/gallium/drivers/softpipe/sp_setup.c @@ -419,38 +419,19 @@ static void const_coeff( struct setup_context *setup, * Compute a0, dadx and dady for a linearly interpolated coefficient, * for a triangle. */ -static void -tri_linear_coeff(struct setup_context *setup, - struct tgsi_interp_coef *coef, - uint vertSlot, - uint i, - uint cylindrical_wrap) +static void tri_linear_coeff( struct setup_context *setup, + struct tgsi_interp_coef *coef, + uint vertSlot, uint i) { float botda = setup->vmid[vertSlot][i] - setup->vmin[vertSlot][i]; float majda = setup->vmax[vertSlot][i] - setup->vmin[vertSlot][i]; - float a, b; - float dadx, dady; + float a = setup->ebot.dy * majda - botda * setup->emaj.dy; + float b = setup->emaj.dx * botda - majda * setup->ebot.dx; + float dadx = a * setup->oneoverarea; + float dady = b * setup->oneoverarea; assert(i <= 3); - if (cylindrical_wrap) { - if (botda > 0.5f) { - botda -= 1.0f; - } else if (botda < -0.5f) { - botda += 1.0f; - } - if (majda > 0.5f) { - majda -= 1.0f; - } else if (majda < -0.5f) { - majda += 1.0f; - } - } - - a = setup->ebot.dy * majda - botda * setup->emaj.dy; - b = setup->emaj.dx * botda - majda * setup->ebot.dx; - dadx = a * setup->oneoverarea; - dady = b * setup->oneoverarea; - coef->dadx[i] = dadx; coef->dady[i] = dady; @@ -566,8 +547,8 @@ static void setup_tri_coefficients( struct setup_context *setup ) /* z and w are done by linear interpolation: */ - tri_linear_coeff(setup, &setup->posCoef, 0, 2, 0); - tri_linear_coeff(setup, &setup->posCoef, 0, 3, 0); + tri_linear_coeff(setup, &setup->posCoef, 0, 2); + tri_linear_coeff(setup, &setup->posCoef, 0, 3); /* setup interpolation for all the remaining attributes: */ @@ -581,13 +562,8 @@ static void setup_tri_coefficients( struct setup_context *setup ) const_coeff(setup, &setup->coef[fragSlot], vertSlot, j); break; case INTERP_LINEAR: - for (j = 0; j < NUM_CHANNELS; j++) { - tri_linear_coeff(setup, - &setup->coef[fragSlot], - vertSlot, - j, - spfs->info.input_cylindrical_wrap[fragSlot] & (1 << j)); - } + for (j = 0; j < NUM_CHANNELS; j++) + tri_linear_coeff(setup, &setup->coef[fragSlot], vertSlot, j); break; case INTERP_PERSPECTIVE: for (j = 0; j < NUM_CHANNELS; j++) -- 2.7.4