radeonsi: Use signed char for color_interp_vgpr_index
authorTimothy Pearson <tpearson@raptorengineering.com>
Mon, 16 Jul 2018 19:20:42 +0000 (14:20 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 18 Jul 2018 17:31:29 +0000 (13:31 -0400)
color_interp_vgpr_index was declared as a generic char value.
Because signed values are used in this variable, the result
was not safe across architectures and crashed on ppc64[el]
and arm.

Declare color_interp_vgpr_index as a signed type.

Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader.h

index ffe13b761d9981fe310f982e4570a25a1817b9a1..a2fb48ab023489afc0e5aec1fec2e1f29b645200 100644 (file)
@@ -502,7 +502,7 @@ union si_shader_part_key {
                unsigned        ancillary_vgpr_index:5;
                unsigned        wqm:1;
                char            color_attr_index[2];
-               char            color_interp_vgpr_index[2]; /* -1 == constant */
+               signed char     color_interp_vgpr_index[2]; /* -1 == constant */
        } ps_prolog;
        struct {
                struct si_ps_epilog_bits states;