[Mesa-dev] [PATCH] glsl_to_tgsi: don't use the negate modifier in integer ops after bitcast
Ilia Mirkin
imirkin at alum.mit.edu
Mon Jul 11 18:05:09 UTC 2016
On Mon, Jul 11, 2016 at 2:01 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Mon, Jul 11, 2016 at 7:55 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> On Mon, Jul 11, 2016 at 1:48 PM, Marek Olšák <maraeo at gmail.com> wrote:
>>> On Mon, Jul 11, 2016 at 7:31 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>>> On Mon, Jul 11, 2016 at 1:28 PM, Marek Olšák <maraeo at gmail.com> wrote:
>>>>> From: Marek Olšák <marek.olsak at amd.com>
>>>>>
>>>>> This bug is uncovered by glsl/lower_if_to_cond_assign.
>>>>> I don't know if it can be reproduced in any other way.
>>>>>
>>>>> Cc: <mesa-stable at lists.freedesktop.org>
>>>>> ---
>>>>> src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 12 +++++++-----
>>>>> 1 file changed, 7 insertions(+), 5 deletions(-)
>>>>>
>>>>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>>>> index 76656f5..0b7feb7 100644
>>>>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>>>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>>>>> @@ -1958,12 +1958,14 @@ glsl_to_tgsi_visitor::visit_expression(ir_expression* ir, st_src_reg *op)
>>>>> emit_asm(ir, TGSI_OPCODE_TRUNC, result_dst, op[0]);
>>>>> break;
>>>>> case ir_unop_bitcast_f2i:
>>>>> - result_src = op[0];
>>>>> - result_src.type = GLSL_TYPE_INT;
>>>>> - break;
>>>>> case ir_unop_bitcast_f2u:
>>>>> - result_src = op[0];
>>>>> - result_src.type = GLSL_TYPE_UINT;
>>>>> + /* Make sure we don't propagate the negate modifier to integer opcodes. */
>>>>> + if (op[0].negate)
>>>>
>>>> Or abs or saturate, presumably?
>>>
>>> glsl_to_tgsi doesn't use ureg_abs.
>>
>> I'd rather not rely on that... it's pretty cheap to throw in there.
>
> I can't throw abs in there because st_src_reg doesn't have abs. :)
Oh. I see. Then
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
as is :) Sorry for being dense, I should have looked at the code but
was relying on my (obviously poor) memory.
More information about the mesa-dev
mailing list