softpipe: keep input lod for explicite derivatives
[mesa.git] / src / gallium / drivers / softpipe / sp_tex_sample.c
index f8de104bae3377783950d2bc542e44ef8bbc0c6f..41bd57c9241376945353208a7c1eb0f8aad29537 100644 (file)
@@ -1932,10 +1932,12 @@ compute_lod(const struct pipe_sampler_state *sampler,
    switch (control) {
    case TGSI_SAMPLER_LOD_NONE:
    case TGSI_SAMPLER_LOD_ZERO:
-   /* XXX FIXME */
-   case TGSI_SAMPLER_DERIVS_EXPLICIT:
       lod[0] = lod[1] = lod[2] = lod[3] = CLAMP(biased_lambda, min_lod, max_lod);
       break;
+   case TGSI_SAMPLER_DERIVS_EXPLICIT:
+      for (i = 0; i < TGSI_QUAD_SIZE; i++)
+         lod[i] = lod_in[i];
+      break;
    case TGSI_SAMPLER_LOD_BIAS:
       for (i = 0; i < TGSI_QUAD_SIZE; i++) {
          lod[i] = biased_lambda + lod_in[i];