spirv: Use nir_type_convert instead of nir_type_conversion_op
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 2 Nov 2022 01:12:43 +0000 (18:12 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 14 Dec 2022 06:23:21 +0000 (06:23 +0000)
commit58164794f4fdaec6839296cb49c79b46acdd60a3
treee84947f345eb6207868b191a9082c5396cb5736a
parentded35729475b91685b66b2e0efb27c95a9ae2f0e
spirv: Use nir_type_convert instead of nir_type_conversion_op

In a future commit, nit_type_conversion_op won't be able to handle i2b
(and in a much later commit f2b), so switch many users to the fully
featured function.

No shader-db or fossil-db changes on any Intel platform.

v2: Use the actual bit size of the source to determine the conversion
op.  With mediump, the "planned" bit size and the actual bit size might
be different.  Fixes many, many Vulkan CTS assertion failures on any
platform that sets mediump_16bit_alu (e.g., Freedreno).

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15121>
src/compiler/spirv/vtn_alu.c
src/compiler/spirv/vtn_glsl450.c