[Mesa-dev] [PATCH] st/mesa: in ATI fs don't assume TEMP0=REG0

Marek Olšák maraeo at gmail.com
Wed Aug 10 13:07:17 UTC 2016


Pushed, thanks.

Marek

On Mon, Aug 8, 2016 at 12:48 AM, Miklós Máté <mtmkls at gmail.com> wrote:
> The temporaries are allocated dynamically.
>
> Signed-off-by: Miklós Máté <mtmkls at gmail.com>
> ---
>  src/mesa/state_tracker/st_atifs_to_tgsi.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_atifs_to_tgsi.c b/src/mesa/state_tracker/st_atifs_to_tgsi.c
> index 66f442a..ae08796 100644
> --- a/src/mesa/state_tracker/st_atifs_to_tgsi.c
> +++ b/src/mesa/state_tracker/st_atifs_to_tgsi.c
> @@ -691,6 +691,7 @@ transform_inst:
>        struct tgsi_full_instruction inst;
>        unsigned i;
>        int fogc_index = -1;
> +      int reg0_index = current_inst->Src[0].Register.Index;
>
>        /* find FOGC input */
>        for (i = 0; i < ctx->info.num_inputs; i++) {
> @@ -804,11 +805,11 @@ transform_inst:
>        inst.Instruction.Opcode = TGSI_OPCODE_LRP;
>        inst.Instruction.NumDstRegs = 1;
>        inst.Dst[0].Register.File  = TGSI_FILE_TEMPORARY;
> -      inst.Dst[0].Register.Index = 0;
> +      inst.Dst[0].Register.Index = reg0_index;
>        inst.Dst[0].Register.WriteMask = TGSI_WRITEMASK_XYZW;
>        inst.Instruction.NumSrcRegs = 3;
>        SET_SRC(&inst, 0, TGSI_FILE_TEMPORARY, ctx->fog_factor_temp, X, X, X, Y);
> -      SET_SRC(&inst, 1, TGSI_FILE_TEMPORARY, 0, X, Y, Z, W);
> +      SET_SRC(&inst, 1, TGSI_FILE_TEMPORARY, reg0_index, X, Y, Z, W);
>        SET_SRC(&inst, 2, TGSI_FILE_CONSTANT, MAX_NUM_FRAGMENT_CONSTANTS_ATI + 1, X, Y, Z, W);
>        tctx->emit_instruction(tctx, &inst);
>     }
> --
> 2.8.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list