[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