[Mesa-dev] [PATCH 1/2] softpipe: fix texture sampling from 1D texture array

Brian Paul brian.e.paul at gmail.com
Sun Dec 18 19:15:06 PST 2011


On Sun, Dec 18, 2011 at 2:27 PM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> This is the first part of a fix to piglit glsl-fs-shadow1DArray
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/gallium/auxiliary/tgsi/tgsi_exec.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
> index 1fb7f8f..060549f 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
> @@ -1794,9 +1794,22 @@ exec_tex(struct tgsi_exec_machine *mach,
>       break;
>
>    case TGSI_TEXTURE_1D_ARRAY:
> +      FETCH(&r[0], 0, CHAN_X);
> +      FETCH(&r[1], 0, CHAN_Y);
> +
> +      if (modifier == TEX_MODIFIER_PROJECTED) {
> +         micro_div(&r[0], &r[0], &r[3]);
> +      }
> +
> +      fetch_texel(mach->Samplers[unit],
> +                  &r[0], &r[1], &r[2], lod,     /* S, T, P, LOD */
> +                  control,
> +                  &r[0], &r[1], &r[2], &r[3]);  /* outputs */

Where does r[2] come from?  Off hand, I think we want to pass ZeroVec
there instead.

Looks like that was wrong in the original code too.

-Brian


> +      break;
>    case TGSI_TEXTURE_SHADOW1D_ARRAY:
>       FETCH(&r[0], 0, CHAN_X);
>       FETCH(&r[1], 0, CHAN_Y);
> +      FETCH(&r[2], 0, CHAN_Z);
>
>       if (modifier == TEX_MODIFIER_PROJECTED) {
>          micro_div(&r[0], &r[0], &r[3]);
> --
> 1.7.7.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list