[Mesa-dev] [PATCH] st/mesa: pass through 4th opcode argument in bitmap/pixel visitors

Brian Paul brianp at vmware.com
Mon Aug 24 08:07:24 PDT 2015


On 08/20/2015 06:07 PM, Ilia Mirkin wrote:
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>   src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 76a77f0..eb47685 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -4404,12 +4404,12 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
>       * new visitor. */
>      foreach_in_list(glsl_to_tgsi_instruction, inst, &original->instructions) {
>         glsl_to_tgsi_instruction *newinst;
> -      st_src_reg src_regs[3];
> +      st_src_reg src_regs[4];
>
>         if (inst->dst[0].file == PROGRAM_OUTPUT)
>            prog->OutputsWritten |= BITFIELD64_BIT(inst->dst[0].index);
>
> -      for (int i = 0; i < 3; i++) {
> +      for (int i = 0; i < 4; i++) {
>            src_regs[i] = inst->src[i];
>            if (src_regs[i].file == PROGRAM_INPUT &&
>                src_regs[i].index == VARYING_SLOT_COL0) {
> @@ -4420,7 +4420,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
>               prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
>         }
>
> -      newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
> +      newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2], src_regs[3]);
>         newinst->tex_target = inst->tex_target;
>         newinst->sampler_array_size = inst->sampler_array_size;
>      }
> @@ -4489,18 +4489,18 @@ get_bitmap_visitor(struct st_fragment_program *fp,
>       * new visitor. */
>      foreach_in_list(glsl_to_tgsi_instruction, inst, &original->instructions) {
>         glsl_to_tgsi_instruction *newinst;
> -      st_src_reg src_regs[3];
> +      st_src_reg src_regs[4];
>
>         if (inst->dst[0].file == PROGRAM_OUTPUT)
>            prog->OutputsWritten |= BITFIELD64_BIT(inst->dst[0].index);
>
> -      for (int i = 0; i < 3; i++) {
> +      for (int i = 0; i < 4; i++) {
>            src_regs[i] = inst->src[i];
>            if (src_regs[i].file == PROGRAM_INPUT)
>               prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
>         }
>
> -      newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2]);
> +      newinst = v->emit_asm(NULL, inst->op, inst->dst[0], src_regs[0], src_regs[1], src_regs[2], src_regs[3]);
>         newinst->tex_target = inst->tex_target;
>         newinst->sampler_array_size = inst->sampler_array_size;
>      }
>

It might be nice if there were a TGSI_MAX_SRC_REGS constant instead of 
using 4 everywhere.

-Brian



More information about the mesa-dev mailing list