Mesa (main): radv: Convert lower_intrinsics to a switch statement

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 18 22:42:31 UTC 2021


Module: Mesa
Branch: main
Commit: 85e39cb325abfe09cb4d59e7a2de1976675ec94d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=85e39cb325abfe09cb4d59e7a2de1976675ec94d

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Mon Apr  5 11:42:37 2021 +0200

radv: Convert lower_intrinsics to a switch statement

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11078>

---

 src/amd/vulkan/radv_shader.c | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 6d1cb023cca..329977229e8 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -282,10 +282,12 @@ lower_intrinsics(nir_shader *nir, const struct radv_pipeline_key *key,
          b.cursor = nir_before_instr(&intrin->instr);
 
          nir_ssa_def *def = NULL;
-         if (intrin->intrinsic == nir_intrinsic_load_vulkan_descriptor) {
+         switch (intrin->intrinsic) {
+         case nir_intrinsic_load_vulkan_descriptor:
             def = nir_vec3(&b, nir_channel(&b, intrin->src[0].ssa, 0),
                            nir_channel(&b, intrin->src[0].ssa, 1), nir_imm_int(&b, 0));
-         } else if (intrin->intrinsic == nir_intrinsic_vulkan_resource_index) {
+            break;
+         case nir_intrinsic_vulkan_resource_index: {
             unsigned desc_set = nir_intrinsic_desc_set(intrin);
             unsigned binding = nir_intrinsic_binding(intrin);
             struct radv_descriptor_set_layout *desc_layout = layout->set[desc_set].layout;
@@ -304,20 +306,28 @@ lower_intrinsics(nir_shader *nir, const struct radv_pipeline_key *key,
                stride = nir_imm_int(&b, desc_layout->binding[binding].size);
             }
             def = nir_vec3(&b, set_ptr, binding_ptr, stride);
-         } else if (intrin->intrinsic == nir_intrinsic_vulkan_resource_reindex) {
+            break;
+         }
+         case nir_intrinsic_vulkan_resource_reindex: {
             nir_ssa_def *set_ptr = nir_channel(&b, intrin->src[0].ssa, 0);
             nir_ssa_def *binding_ptr = nir_channel(&b, intrin->src[0].ssa, 1);
             nir_ssa_def *stride = nir_channel(&b, intrin->src[0].ssa, 2);
             binding_ptr = nir_iadd(&b, binding_ptr, nir_imul(&b, intrin->src[1].ssa, stride));
             def = nir_vec3(&b, set_ptr, binding_ptr, stride);
-         } else if (intrin->intrinsic == nir_intrinsic_is_sparse_texels_resident) {
+            break;
+         }
+         case nir_intrinsic_is_sparse_texels_resident:
             def = nir_ieq_imm(&b, intrin->src[0].ssa, 0);
-         } else if (intrin->intrinsic == nir_intrinsic_sparse_residency_code_and) {
+            break;
+         case nir_intrinsic_sparse_residency_code_and:
             def = nir_ior(&b, intrin->src[0].ssa, intrin->src[1].ssa);
-         } else if (intrin->intrinsic == nir_intrinsic_load_view_index &&
-                    !key->has_multiview_view_index) {
+            break;
+         case nir_intrinsic_load_view_index:
+            if (key->has_multiview_view_index)
+               continue;
             def = nir_imm_zero(&b, 1, 32);
-         } else {
+            break;
+         default:
             continue;
          }
 



More information about the mesa-commit mailing list