softpipe: keep input lod for explicite derivatives
authorGert Wollny <gert.wollny@collabora.com>
Fri, 19 Apr 2019 08:41:51 +0000 (10:41 +0200)
committerGert Wollny <gert.wollny@collabora.com>
Wed, 1 May 2019 06:23:19 +0000 (08:23 +0200)
This only affects anisotropic interpolation.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
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];