radeonsi: also print hexadecimal values for register fields in the IB parser
authorMarek Olšák <marek.olsak@amd.com>
Wed, 9 Dec 2015 22:39:45 +0000 (23:39 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 11 Dec 2015 14:25:12 +0000 (15:25 +0100)
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
src/gallium/drivers/radeonsi/si_debug.c

index cce665e85fae554b7bc9e249abb2fdc0bc13b1cc..034acf56508991620135ed8643c56ce88482b877 100644 (file)
@@ -61,13 +61,16 @@ static void print_spaces(FILE *f, unsigned num)
 static void print_value(FILE *file, uint32_t value, int bits)
 {
        /* Guess if it's int or float */
-       if (value <= (1 << 15))
-               fprintf(file, "%u\n", value);
-       else {
+       if (value <= (1 << 15)) {
+               if (value <= 9)
+                       fprintf(file, "%u\n", value);
+               else
+                       fprintf(file, "%u (0x%0*x)\n", value, bits / 4, value);
+       } else {
                float f = uif(value);
 
                if (fabs(f) < 100000 && f*10 == floor(f*10))
-                       fprintf(file, "%.1ff\n", f);
+                       fprintf(file, "%.1ff (0x%0*x)\n", f, bits / 4, value);
                else
                        /* Don't print more leading zeros than there are bits. */
                        fprintf(file, "0x%0*x\n", bits / 4, value);