[Mesa-dev] [PATCH 5/6] Bitwise conversion operator support in the software renderers.

Jose Fonseca jfonseca at vmware.com
Sat May 19 11:58:37 PDT 2012


----- Original Message -----
> TGSI doesn't need an opcode, since registers are untyped (but beware
> once doubles come into the scene).  

That's correct. This patch looks good.

Doubles will likely be handled similarly, with the difference that will. BTW, I believe there were some patches for doubles long time ago, which I never had opportunity to merge.

Jose

> Mesa IR doesn't handle native
> integers, so trying to handle them there is worthless, the case
> entries are only added for warning reasons.
> 
> It was only tested with softpipe, since llvmpipe doesn't support glsl
> 1.3 yet.
> 
> Signed-off-by: Olivier Galibert <galibert at pobox.com>
> ---
>  src/mesa/program/ir_to_mesa.cpp            |    5 +++++
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    6 ++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/src/mesa/program/ir_to_mesa.cpp
> b/src/mesa/program/ir_to_mesa.cpp
> index 840648e..c7f2ec0 100644
> --- a/src/mesa/program/ir_to_mesa.cpp
> +++ b/src/mesa/program/ir_to_mesa.cpp
> @@ -1407,6 +1407,11 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
>        emit(ir, OPCODE_SNE, result_dst,
>  			  op[0], src_reg_for_float(0.0));
>        break;
> +   case ir_unop_bitcast_f2i: // Ignore these 4, they can't happen
> here anyway
> +   case ir_unop_bitcast_f2u:
> +   case ir_unop_bitcast_i2f:
> +   case ir_unop_bitcast_u2f:
> +      break;
>     case ir_unop_trunc:
>        emit(ir, OPCODE_TRUNC, result_dst, op[0]);
>        break;
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 9e68deb..2688276 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -1762,6 +1762,12 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
>        else
>           emit(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
>        break;
> +   case ir_unop_bitcast_f2i:
> +   case ir_unop_bitcast_f2u:
> +   case ir_unop_bitcast_i2f:
> +   case ir_unop_bitcast_u2f:
> +      result_src = op[0];
> +      break;
>     case ir_unop_f2b:
>        emit(ir, TGSI_OPCODE_SNE, result_dst, op[0],
>        st_src_reg_for_float(0.0));
>        break;
> --
> 1.7.10.rc3.1.gb306
> 
> _______________________________________________
> 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