[Mesa-dev] [PATCH 1/2] r600g: texture offsets for non-TXF instructions

Marek Olšák maraeo at gmail.com
Fri Oct 4 13:57:39 PDT 2013


I've pushed this patch. I'll let somebody else review the other one.

Marek

On Thu, Oct 3, 2013 at 12:12 AM, Grigori Goronzy <greg at chown.ath.cx> wrote:
> All texture instructions can use offsets, not just TXF. Offsets into
> the literals array were wrong, too.
> ---
>  src/gallium/drivers/r600/r600_shader.c | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
> index 80cdcd5..6289d97 100644
> --- a/src/gallium/drivers/r600/r600_shader.c
> +++ b/src/gallium/drivers/r600/r600_shader.c
> @@ -3779,16 +3779,16 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
>                 }
>         }
>
> -       if (inst->Instruction.Opcode == TGSI_OPCODE_TXF) {
> -               /* get offset values */
> -               if (inst->Texture.NumOffsets) {
> -                       assert(inst->Texture.NumOffsets == 1);
> -
> -                       offset_x = ctx->literals[inst->TexOffsets[0].Index + inst->TexOffsets[0].SwizzleX] << 1;
> -                       offset_y = ctx->literals[inst->TexOffsets[0].Index + inst->TexOffsets[0].SwizzleY] << 1;
> -                       offset_z = ctx->literals[inst->TexOffsets[0].Index + inst->TexOffsets[0].SwizzleZ] << 1;
> -               }
> -       } else if (inst->Instruction.Opcode == TGSI_OPCODE_TXD) {
> +       /* get offset values */
> +       if (inst->Texture.NumOffsets) {
> +               assert(inst->Texture.NumOffsets == 1);
> +
> +               offset_x = ctx->literals[4 * inst->TexOffsets[0].Index + inst->TexOffsets[0].SwizzleX] << 1;
> +               offset_y = ctx->literals[4 * inst->TexOffsets[0].Index + inst->TexOffsets[0].SwizzleY] << 1;
> +               offset_z = ctx->literals[4 * inst->TexOffsets[0].Index + inst->TexOffsets[0].SwizzleZ] << 1;
> +       }
> +
> +       if (inst->Instruction.Opcode == TGSI_OPCODE_TXD) {
>                 /* TGSI moves the sampler to src reg 3 for TXD */
>                 sampler_src_reg = 3;
>
> --
> 1.8.1.2
>
> _______________________________________________
> 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