[Mesa-dev] [PATCH 2/2] glsl_to_tgsi: use UARL instead of I2F and ARL

Bryan Cain bryancain3 at gmail.com
Sat Sep 10 09:43:10 PDT 2011


Can one of the Gallium interface maintainers please review this patch so
I can push it?

Bryan

On 09/02/2011 11:09 AM, Bryan Cain wrote:
> ---
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   18 +++++++-----------
>  1 files changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index e2857ed..05d4d33 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -512,7 +512,7 @@ glsl_to_tgsi_visitor::emit(ir_instruction *ir, unsigned op,
>  
>     inst->function = NULL;
>     
> -   if (op == TGSI_OPCODE_ARL)
> +   if (op == TGSI_OPCODE_ARL || op == TGSI_OPCODE_UARL)
>        this->num_address_regs = 1;
>     
>     /* Update indirect addressing status used by TGSI */
> @@ -724,16 +724,12 @@ void
>  glsl_to_tgsi_visitor::emit_arl(ir_instruction *ir,
>          		        st_dst_reg dst, st_src_reg src0)
>  {
> -   st_src_reg tmp = get_temp(glsl_type::float_type);
> +   int op = TGSI_OPCODE_ARL;
>  
> -   if (src0.type == GLSL_TYPE_INT)
> -      emit(NULL, TGSI_OPCODE_I2F, st_dst_reg(tmp), src0);
> -   else if (src0.type == GLSL_TYPE_UINT)
> -      emit(NULL, TGSI_OPCODE_U2F, st_dst_reg(tmp), src0);
> -   else
> -      tmp = src0;
> -   
> -   emit(NULL, TGSI_OPCODE_ARL, dst, tmp);
> +   if (src0.type == GLSL_TYPE_INT || src0.type == GLSL_TYPE_UINT)
> +      op = TGSI_OPCODE_UARL;
> +
> +   emit(NULL, op, dst, src0);
>  }
>  
>  /**


More information about the mesa-dev mailing list