spirv: Sort out the mess that is sampled image
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 26 Sep 2019 16:56:48 +0000 (11:56 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Sat, 9 Nov 2019 15:29:01 +0000 (15:29 +0000)
commit9e440b8d0b982933650c7b600de1e4b6e33f9c7d
treeaace3a789f21c83811d6e03c0cf94c5d3060d20f
parent9cc4c2c91649be6eb0b0a3f56eeb4ce3696a79a3
spirv: Sort out the mess that is sampled image

This commit makes two major changes.  First, we add a second case to
OpLoad for sampled images which constructs a vtn_sampled_image and
stashes that rather than stashing a pointer to the combined image
sampler like we do for bare samplers and images.  This should be more in
line with how SPIR-V is intended to work and hopefully doesn't cause any
weird problems.  The second is a rework of vtn_handle_texture to assume
that everything has an image but not everything has a sampler.  We also
add a vtn_fail_if for the case where a texture instructions require a
sampler but none is provided.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/compiler/spirv/spirv_to_nir.c
src/compiler/spirv/vtn_variables.c