[Mesa-dev] [PATCH] st/mesa: make sure to create a "clean" bool when doing i2b

Ilia Mirkin imirkin at alum.mit.edu
Mon May 11 11:38:55 PDT 2015


Could any of the Gallium folk R-b this? It's been this way since Bryan
Cain introduced it... I don't think that there was a USNE/etc variant
at the time.

Also, what do people think of making b2i do INEG instead of AND? That
should allow implementations to fold the neg into instructions that
support it...

On Thu, May 7, 2015 at 12:44 AM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> I know nothing about TGSI but this looks perfectly reasonable to me.
>
> Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
>
> On Wed, May 6, 2015 at 8:33 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> i2b has to work for all integers, not just 1. INEG would not necessarily
>> result with all bits set, which is something that other operations can
>> rely on by e.g. using AND (or INEG for b2i).
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>
>> Found by observation. Noticed a weird pattern in the generated code,
>> which led up to this.
>>
>>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> index 93671ba..8a591b9 100644
>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> @@ -1941,7 +1941,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir)
>>        break;
>>     case ir_unop_i2b:
>>        if (native_integers)
>> -         emit(ir, TGSI_OPCODE_INEG, result_dst, op[0]);
>> +         emit(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0));
>>        else
>>           emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0));
>>        break;
>> --
>> 2.3.6
>>
>> _______________________________________________
>> 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