[Mesa-dev] [PATCH] st/mesa: in ATI fs don't assume TEMP0=REG0
Miklós Máté
mtmkls at gmail.com
Wed Aug 10 18:40:48 UTC 2016
Thanks. I forgot to add that this should also be applied to the 12.0
stable branch.
MM
On 08/10/2016 03:07 PM, Marek Olšák wrote:
> 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