nir: Make nir_constant a vector rather than a matrix
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 6 Jun 2019 15:51:25 +0000 (10:51 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Wed, 19 Jun 2019 21:05:54 +0000 (21:05 +0000)
commit81e51b412e9fc72000868ebe5bbe2417b1f0486d
tree94f8f7f284fa5e5bb0659863babcec117cb69ee5
parentb019fe8a5b6cba6c6cefe62718b682da451e699e
nir: Make nir_constant a vector rather than a matrix

Most places in NIR, we treat matrices like arrays.  The one annoying
exception to this has been nir_constant where a matrix is a first-class
thing.  This commit changes that so a matrix nir_constant is the same as
an array nir_constant.  This makes matrix nir_constants a tiny bit more
expensive but shrinks all others by 96B.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
src/compiler/glsl/gl_nir_link_uniform_initializers.c
src/compiler/glsl/glsl_to_nir.cpp
src/compiler/nir/nir.h
src/compiler/nir/nir_lower_constant_initializers.c
src/compiler/nir/nir_print.c
src/compiler/spirv/spirv_to_nir.c
src/compiler/spirv/vtn_amd.c
src/compiler/spirv/vtn_private.h