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