spirv: Handle OpTypeForwardPointer
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 19 Jan 2019 16:21:28 +0000 (10:21 -0600)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 26 Jan 2019 19:41:50 +0000 (13:41 -0600)
commit837ed2ba51b55598ca0d9d1e6b21c6a83fca6833
treec59de35efa58e55edc86a8f212fb68a62fcfa703
parent4602e705e45fce6e69667c7a734ded920991e72b
spirv: Handle OpTypeForwardPointer

We handle forward declarations by creating the pointer type with it's
storage type based on storage class and just waiting to fill out the
actual deref type until we get the OpTypePointer.  Because any
composites using the forward declared type only care about the storage
type (i.e. uint64_t, uvec2, etc.) when creating their glsl_type, this
works fine and we can defer the actual deref_type as far as we need.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
src/compiler/spirv/spirv_to_nir.c