gallium: initialize ureg_dst::Invariant bit
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Wed, 25 Jul 2018 15:20:34 +0000 (17:20 +0200)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Thu, 26 Jul 2018 07:01:33 +0000 (09:01 +0200)
When this bit was added, it seems the some initialization code
was omitted by mistake.

Since stack-variables have kinda random contents, and we don't
zero initialize the whole struct in these code-paths, we end up
getting random-ish values for this bit.

Spotted by Coverity in the following CIDs:
1438115
1438123
1438130

Fixes: 70425bcfe63c4e9191809659d019ec4af923595d ("gallium: plumb
invariant output attrib thru TGSI")

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jakob Bornecrantz <jakob@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/gallium/auxiliary/tgsi/tgsi_ureg.h

index 4d4a954529b6678dfa38ef25b56f2999f7bd9c70..c974ed0206946120839397696b437cc2a2bdc8a0 100644 (file)
@@ -1019,6 +1019,7 @@ ureg_dst_array_register(unsigned file,
    dst.DimIndIndex = 0;
    dst.DimIndSwizzle = 0;
    dst.ArrayID = array_id;
+   dst.Invariant = 0;
 
    return dst;
 }
@@ -1050,6 +1051,7 @@ ureg_dst( struct ureg_src src )
    dst.DimIndIndex = src.DimIndIndex;
    dst.DimIndSwizzle = src.DimIndSwizzle;
    dst.ArrayID = src.ArrayID;
+   dst.Invariant = 0;
 
    return dst;
 }
@@ -1141,6 +1143,7 @@ ureg_dst_undef( void )
    dst.DimIndIndex = 0;
    dst.DimIndSwizzle = 0;
    dst.ArrayID = 0;
+   dst.Invariant = 0;
 
    return dst;
 }