diff options
author | Michal Krol <michal@vmware.com> | 2010-02-05 15:16:07 +0100 |
---|---|---|
committer | Michal Krol <michal@vmware.com> | 2010-02-05 17:34:22 +0100 |
commit | ff6829b205317eb63d5ba304409e107d500d9c5d (patch) | |
tree | 5a5aaf4610bcbfc67406eb70c2862be795dc47c0 | |
parent | 8d1d8903cf314d360a946d9e4ccc79657f1953bc (diff) |
Revert "softpipe: Implement cylindrical wrapping for linear interpolator."
This reverts commit 444cd62ca33a45bd39e8408979a0a01c246c6381.
-rw-r--r-- | src/gallium/drivers/softpipe/sp_setup.c | 46 |
1 files changed, 11 insertions, 35 deletions
diff --git a/src/gallium/drivers/softpipe/sp_setup.c b/src/gallium/drivers/softpipe/sp_setup.c index b7b52b1508..bb1bff581c 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++) |