nir/spirv: Fix handling of vector component selects via OpAccessChain
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 16 Oct 2015 04:16:41 +0000 (21:16 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 16 Oct 2015 04:18:57 +0000 (21:18 -0700)
commit8ed23654c9f7fed77bc706fbfd1d25edf0d7020e
treee757ba564f861f2ec6cdd75a9ade3643f6476f72
parent2552df41a1678785fb52529b80623b3b07bfa1c4
nir/spirv: Fix handling of vector component selects via OpAccessChain

When we get to the end of the _vtn_load/store_varaible recursion, we may
have one link left in the deref chain if there is a vector component select
on the end.  In this case, we need to truncate the deref chain early so
that, when we make the copy for the load, we don't get the extra deref.
The final deref will be handled by the vector extract/insert that comes
later.
src/glsl/nir/spirv_to_nir.c