[Nouveau] [PATCH] nouveau/codegen: dump tgsi floats as hex values

Tobias Klausmann tobias.johannes.klausmann at mni.thm.de
Wed Nov 15 21:52:28 UTC 2017


Hi,

yeah in the long run showing both in an ordered manner would be a nice 
thing to have! That would include patching the output and the tgsi 
parser (who wants to delete half the output to parse it again e.g. with 
nouveau_compiler).

I can image an output similar to the one below:

IMM[5] FLT32 {    0.0000,     0.0000,     0.0000,     0.0000} ^ IMM[5] FLT32 {0x00000019, 0x0000000f, 0x00000005, 0x0000001e}
IMM[6] FLT32 {    0.0000,     0.0000,     0.0000,     0.0000} = IMM[6] FLT32 {0x0000001e, 0x00000005, 0x0000000a, 0x00000014}
IMM[7] FLT32 {    0.0000,     0.0000,     0.0000,     0.0000}   IMM[7] FLT32 {0x00000014, 0x0000000a, 0x0000000f, 0x00000019}

Greetings,

Tobias


PS: I have no push rights to commit this!


On 11/15/17 10:44 PM, Pierre Moreau wrote:
> This looks like the saner approach, compared to changing tgsi_dump.c to display
> more fractional digits. Maybe there could be a second option to display as both
> float and hex?
>
> Reviewed-by: Pierre Moreau <pierre.morrow at free.fr>
>
> On 2017-11-14 — 15:11, Tobias Klausmann wrote:
>> Printing without this could lead to the following output, while the values are
>> not exactly zero:
>> IMM[5] FLT32 {    0.0000,     0.0000,     0.0000,     0.0000}
>> IMM[6] FLT32 {    0.0000,     0.0000,     0.0000,     0.0000}
>> IMM[7] FLT32 {    0.0000,     0.0000,     0.0000,     0.0000}
>>
>> when printing the values as hex, we can now see the differences:
>> IMM[5] FLT32 {0x00000019, 0x0000000f, 0x00000005, 0x0000001e}
>> IMM[6] FLT32 {0x0000001e, 0x00000005, 0x0000000a, 0x00000014}
>> IMM[7] FLT32 {0x00000014, 0x0000000a, 0x0000000f, 0x00000019}
>>
>> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
>> ---
>>   src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
>> index 34351dab51..898031811d 100644
>> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
>> @@ -1095,7 +1095,7 @@ Source::Source(struct nv50_ir_prog_info *prog) : info(prog)
>>      tokens = (const struct tgsi_token *)info->bin.source;
>>   
>>      if (prog->dbgFlags & NV50_IR_DEBUG_BASIC)
>> -      tgsi_dump(tokens, 0);
>> +      tgsi_dump(tokens, TGSI_DUMP_FLOAT_AS_HEX);
>>   }
>>   
>>   Source::~Source()
>> -- 
>> 2.15.0
>>
>> _______________________________________________
>> Nouveau mailing list
>> Nouveau at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/nouveau


More information about the Nouveau mailing list