mesa/src/compiler
Caio Marcelo de Oliveira Filho 10b3eecd36 spirv: Don't remove variables used by resource indexing intrinsics
In Vulkan, for some variable modes, the generated NIR will have derefs
pointing to resource index intrinsics instead of the variable.  This
was letting nir_remove_dead_variables pass remove those variables,
which would lose information relevant for later passes after
spirv2nir.

Add a set to keep track of such variables and prevent them to be
removed when producing the NIR output.

Issue reported by Rhys.

Fixes: c4c9c780b1 ("spirv: Remove more dead variables")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8706>
2021-01-26 05:58:34 +00:00
..
glsl nir: Add a data pointer to the callback in nir_remove_dead_variables 2021-01-26 05:58:34 +00:00
nir nir: Add a data pointer to the callback in nir_remove_dead_variables 2021-01-26 05:58:34 +00:00
spirv spirv: Don't remove variables used by resource indexing intrinsics 2021-01-26 05:58:34 +00:00
Android.glsl.gen.mk android: util: Move xxd.py to util 2020-10-11 23:22:34 +02:00
Android.glsl.mk
Android.mk
Android.nir.gen.mk android: spirv: fix '::' typo in gen rules 2020-12-08 22:44:23 +01:00
Android.nir.mk android: fix libmesa_nir build 2017-07-21 08:47:56 +03:00
builtin_type_macros.h compiler/types: Add 64-bit image types 2020-11-09 17:17:39 +00:00
glsl_types.cpp glsl: Initialize glsl_type member name. 2020-12-16 19:31:25 -08:00
glsl_types.h glsl: Fix typos in comments. 2020-12-16 02:19:56 +00:00
Makefile.sources compiler/nir: add texcoord replace lowering pass 2021-01-25 17:32:33 +00:00
meson.build spirv: add some tests for volatile/available/visible 2020-09-01 17:15:22 +00:00
nir_types.cpp nir: Add a size_align helper function for aligning elements to 16 bytes. 2020-11-16 13:54:22 -08:00
nir_types.h nir: Add a size_align helper function for aligning elements to 16 bytes. 2020-11-16 13:54:22 -08:00
SConscript spirv: Fix building with SCons 2018-03-30 14:33:03 -06:00
SConscript.glsl util: Move xxd.py to util 2020-10-07 21:52:04 +00:00
SConscript.nir nir: use a single canonical list of intrinsic indices 2020-11-26 17:50:38 +00:00
SConscript.spirv scons: fix SPIR-V -> NIR build 2020-10-13 16:53:10 +01:00
shader_enums.c compiler/nir: introduce a new helper to get varying name 2020-12-01 08:20:38 +00:00
shader_enums.h compiler: update gl_access_qualifier comments 2020-12-09 14:41:38 +00:00
shader_info.h nir: gather whether a compute shader uses non-quad subgroup intrinsics 2021-01-07 15:01:02 +00:00