spirv: handle OpUndef as part of the variable parsing pass
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 26 Jan 2017 16:57:25 +0000 (16:57 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 26 Jan 2017 17:29:29 +0000 (17:29 +0000)
commitdf7063cba35ea273827ba60f643596cd80539458
tree328afb5dd81b6a41c5c3a4af34f3ba17b07f4e08
parentc3421106ec332bf3a943ccf9447edf00dc7f3618
spirv: handle OpUndef as part of the variable parsing pass

Looking at the following bit of SPIRV shader :

...
%zero        = OpConstant %i32 0
%ivec3_0     = OpConstantComposite %ivec3 %zero %zero %zero
%vec3_undef  = OpUndef %ivec3
%sc_0        = OpSpecConstant %i32 0
%sc_1        = OpSpecConstant %i32 0
%sc_2        = OpSpecConstant %i32 0
...

Our compiler currently stops parsing variables & types on the OpUndef
and switches to instructions, leaving the following sc_[0-2] variables
untreated.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: "17.0 13.0" <mesa-stable@lists.freedesktop.org>
src/compiler/spirv/spirv_to_nir.c
src/compiler/spirv/vtn_variables.c