Mesa (main): radv: always use nir_lower_io_lower_64bit_to_32
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Apr 16 11:40:44 UTC 2022
Module: Mesa
Branch: main
Commit: 75e68f44af4889d97454ad84134f8cf4f9def0a8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=75e68f44af4889d97454ad84134f8cf4f9def0a8
Author: Rhys Perry <pendingchaos02 at gmail.com>
Date: Fri Apr 8 19:29:22 2022 +0100
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 at gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15863>
---
src/amd/vulkan/radv_shader.c | 7 ++-----
src/gallium/drivers/zink/ci/zink-radv-fails.txt | 1 -
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 0be40340d7b..245a1643c78 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -986,11 +986,8 @@ radv_lower_io(struct radv_device *device, nir_shader *nir)
nir_assign_io_var_locations(nir, nir_var_shader_in, &nir->num_inputs, MESA_SHADER_FRAGMENT);
}
- /* The RADV/LLVM backend expects 64-bit IO to be lowered. */
- nir_lower_io_options options =
- radv_use_llvm_for_stage(device, nir->info.stage) ? nir_lower_io_lower_64bit_to_32 : 0;
-
- NIR_PASS_V(nir, nir_lower_io, nir_var_shader_in | nir_var_shader_out, type_size_vec4, options);
+ NIR_PASS_V(nir, nir_lower_io, nir_var_shader_in | nir_var_shader_out, type_size_vec4,
+ nir_lower_io_lower_64bit_to_32);
/* This pass needs actual constants */
nir_opt_constant_folding(nir);
diff --git a/src/gallium/drivers/zink/ci/zink-radv-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-fails.txt
index 5ca89507b28..ff41136f2ad 100644
--- a/src/gallium/drivers/zink/ci/zink-radv-fails.txt
+++ b/src/gallium/drivers/zink/ci/zink-radv-fails.txt
@@ -1,5 +1,4 @@
# probable ACO bug: #6276
-KHR-GL46.gpu_shader_fp64.fp64.varyings,Fail
KHR-GL46.shader_image_load_store.basic-allTargets-atomicCS,Fail
KHR-GL46.shader_image_load_store.basic-allTargets-atomicGS,Fail
KHR-GL46.shader_image_load_store.basic-allTargets-atomicVS,Fail
More information about the mesa-commit
mailing list