spirv: Change spirv_to_nir() to return a nir_shader
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Sun, 19 May 2019 07:22:17 +0000 (00:22 -0700)
committerCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Wed, 29 May 2019 17:34:35 +0000 (10:34 -0700)
commite45bf01940fa6692d4f1d9385c2d6466da06a9bb
tree4e8c8694747bb1d65374f878434c03020f8aec65
parenta3bfdacb6c9f992dd1933c163c2580049ffea11e
spirv: Change spirv_to_nir() to return a nir_shader

spirv_to_nir() returned the nir_function corresponding to the
entrypoint, as a way to identify it.  There's now a bool is_entrypoint
in nir_function and also a helper function to get the entry_point from
a nir_shader.

The return type reflects better what the function name suggests.  It
also helps drivers avoid the mistake of reusing internal shader
references after running NIR_PASS on it.  When using NIR_TEST_CLONE or
NIR_TEST_SERIALIZE, those would be invalidated right in the first pass
executed.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_shader.c
src/compiler/spirv/nir_spirv.h
src/compiler/spirv/spirv2nir.c
src/compiler/spirv/spirv_to_nir.c
src/freedreno/vulkan/tu_shader.c
src/gallium/drivers/freedreno/ir3/ir3_cmdline.c
src/intel/vulkan/anv_pipeline.c
src/mesa/main/glspirv.c