radv: always use nir_lower_io_lower_64bit_to_32
authorRhys Perry <pendingchaos02@gmail.com>
Fri, 8 Apr 2022 18:29:22 +0000 (19:29 +0100)
committerMarge Bot <emma+marge@anholt.net>
Sat, 16 Apr 2022 11:19:11 +0000 (11:19 +0000)
commit75e68f44af4889d97454ad84134f8cf4f9def0a8
tree2c01a442ec91e412e69254cbc23fd8488bf6026b
parentab1409010a29c924578792cd6f8720f47af25fd5
radv: always use nir_lower_io_lower_64bit_to_32

Our I/O lowering doesn't handle 64-bit TCS stores and TES loads which use
several slots. Because of the large stride between slots, we have to split
the load so that there's a single load_buffer_amd/store_buffer_amd
intrinsic for each slot.

Our I/O lowering also sometimes creates nir_op_pack_64_2x32 after
nir_lower_alu_to_scalar.

Fixes KHR-GL45.gpu_shader_fp64.fp64.varyings with Zink
(https://gitlab.freedesktop.org/mesa/mesa/-/issues/6276)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15863>
src/amd/vulkan/radv_shader.c
src/gallium/drivers/zink/ci/zink-radv-fails.txt