Mesa (main): radv: Replace magic constants with enum values

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Apr 3 13:00:09 UTC 2022


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

Author: Konstantin Seurer <konstantin.seurer at gmail.com>
Date:   Sun Apr  3 11:24:29 2022 +0200

radv: Replace magic constants with enum values

Signed-off-by: Konstantin Seurer <konstantin.seurer at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15722>

---

 src/amd/vulkan/radv_nir_lower_ray_queries.c | 32 ++++++++++++++---------------
 src/amd/vulkan/radv_pipeline_rt.c           | 24 ++++++++++++----------
 src/amd/vulkan/radv_rt_common.c             | 10 ++++-----
 src/amd/vulkan/radv_rt_common.h             |  2 ++
 4 files changed, 36 insertions(+), 32 deletions(-)

diff --git a/src/amd/vulkan/radv_nir_lower_ray_queries.c b/src/amd/vulkan/radv_nir_lower_ray_queries.c
index 894abcc25ca..6284cb61492 100644
--- a/src/amd/vulkan/radv_nir_lower_ray_queries.c
+++ b/src/amd/vulkan/radv_nir_lower_ray_queries.c
@@ -302,7 +302,7 @@ insert_terminate_on_first_hit(nir_builder *b, nir_ssa_def *index, struct ray_que
    nir_ssa_def *terminate_on_first_hit =
       nir_ine(b,
               nir_iand(b, rq_load_var(b, index, vars->flags),
-                       nir_imm_int(b, 4 /* TerminateOnFirstHitKHR */)),
+                       nir_imm_int(b, SpvRayFlagsTerminateOnFirstHitKHRMask)),
               nir_imm_int(b, 0));
    nir_push_if(b, terminate_on_first_hit);
    {
@@ -519,34 +519,32 @@ insert_traversal_triangle_case(struct radv_device *device, nir_builder *b, nir_s
    nir_ssa_def *frontface = nir_flt(b, nir_imm_float(b, 0), div);
    nir_ssa_def *switch_ccw = nir_ine(
       b,
-      nir_iand(
-         b, rq_load_var(b, index, vars->candidate.sbt_offset_and_flags),
-         nir_imm_int(b, 2 << 24 /* VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT */)),
+      nir_iand(b, rq_load_var(b, index, vars->candidate.sbt_offset_and_flags),
+               nir_imm_int(b, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR << 24)),
       nir_imm_int(b, 0));
    frontface = nir_ixor(b, frontface, switch_ccw);
    rq_store_var(b, index, vars->candidate.frontface, frontface, 0x1);
 
    nir_ssa_def *not_cull = nir_ieq(b,
                                    nir_iand(b, rq_load_var(b, index, vars->flags),
-                                            nir_imm_int(b, 256 /* RayFlagsSkipTriangles */)),
+                                            nir_imm_int(b, SpvRayFlagsSkipTrianglesKHRMask)),
                                    nir_imm_int(b, 0));
    nir_ssa_def *not_facing_cull = nir_ieq(
       b,
       nir_iand(b, rq_load_var(b, index, vars->flags),
-               nir_bcsel(b, frontface, nir_imm_int(b, 32 /* RayFlagsCullFrontFacingTriangles */),
-                         nir_imm_int(b, 16 /* RayFlagsCullBackFacingTriangles */))),
+               nir_bcsel(b, frontface, nir_imm_int(b, SpvRayFlagsCullFrontFacingTrianglesKHRMask),
+                         nir_imm_int(b, SpvRayFlagsCullBackFacingTrianglesKHRMask))),
       nir_imm_int(b, 0));
 
    not_cull = nir_iand(
       b, not_cull,
       nir_ior(
          b, not_facing_cull,
-         nir_ine(
-            b,
-            nir_iand(
-               b, rq_load_var(b, index, vars->candidate.sbt_offset_and_flags),
-               nir_imm_int(b, 1 << 24 /* VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT */)),
-            nir_imm_int(b, 0))));
+         nir_ine(b,
+                 nir_iand(b, rq_load_var(b, index, vars->candidate.sbt_offset_and_flags),
+                          nir_imm_int(
+                             b, VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR << 24)),
+                 nir_imm_int(b, 0))));
 
    nir_push_if(b, nir_iand(b,
                            nir_iand(b, nir_flt(b, dist, rq_load_var(b, index, vars->closest.t)),
@@ -567,7 +565,8 @@ insert_traversal_triangle_case(struct radv_device *device, nir_builder *b, nir_s
       not_cull =
          nir_ieq(b,
                  nir_iand(b, rq_load_var(b, index, vars->flags),
-                          nir_bcsel(b, is_opaque, nir_imm_int(b, 0x40), nir_imm_int(b, 0x80))),
+                          nir_bcsel(b, is_opaque, nir_imm_int(b, SpvRayFlagsCullOpaqueKHRMask),
+                                    nir_imm_int(b, SpvRayFlagsCullNoOpaqueKHRMask))),
                  nir_imm_int(b, 0));
       nir_push_if(b, not_cull);
       {
@@ -613,13 +612,14 @@ insert_traversal_aabb_case(struct radv_device *device, nir_builder *b, nir_ssa_d
 
    nir_ssa_def *not_skip_aabb = nir_ieq(
       b,
-      nir_iand(b, rq_load_var(b, index, vars->flags), nir_imm_int(b, 512 /* RayFlagsSkipAABB */)),
+      nir_iand(b, rq_load_var(b, index, vars->flags), nir_imm_int(b, SpvRayFlagsSkipAABBsKHRMask)),
       nir_imm_int(b, 0));
    nir_ssa_def *not_cull = nir_iand(
       b, not_skip_aabb,
       nir_ieq(b,
               nir_iand(b, rq_load_var(b, index, vars->flags),
-                       nir_bcsel(b, is_opaque, nir_imm_int(b, 0x40), nir_imm_int(b, 0x80))),
+                       nir_bcsel(b, is_opaque, nir_imm_int(b, SpvRayFlagsCullOpaqueKHRMask),
+                                 nir_imm_int(b, SpvRayFlagsCullNoOpaqueKHRMask))),
               nir_imm_int(b, 0)));
    nir_push_if(b, not_cull);
    {
diff --git a/src/amd/vulkan/radv_pipeline_rt.c b/src/amd/vulkan/radv_pipeline_rt.c
index 439839d467a..57a369750c3 100644
--- a/src/amd/vulkan/radv_pipeline_rt.c
+++ b/src/amd/vulkan/radv_pipeline_rt.c
@@ -1129,18 +1129,18 @@ insert_traversal_triangle_case(struct radv_device *device,
       b,
       nir_iand(
          b, nir_load_var(b, trav_vars->sbt_offset_and_flags),
-         nir_imm_int(b, 2 << 24 /* VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT */)),
+         nir_imm_int(b, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR << 24)),
       nir_imm_int(b, 0));
    frontface = nir_ixor(b, frontface, switch_ccw);
 
    nir_ssa_def *not_cull = nir_ieq(
-      b, nir_iand(b, nir_load_var(b, vars->flags), nir_imm_int(b, 256 /* RayFlagsSkipTriangles */)),
+      b, nir_iand(b, nir_load_var(b, vars->flags), nir_imm_int(b, SpvRayFlagsSkipTrianglesKHRMask)),
       nir_imm_int(b, 0));
    nir_ssa_def *not_facing_cull = nir_ieq(
       b,
       nir_iand(b, nir_load_var(b, vars->flags),
-               nir_bcsel(b, frontface, nir_imm_int(b, 32 /* RayFlagsCullFrontFacingTriangles */),
-                         nir_imm_int(b, 16 /* RayFlagsCullBackFacingTriangles */))),
+               nir_bcsel(b, frontface, nir_imm_int(b, SpvRayFlagsCullFrontFacingTrianglesKHRMask),
+                         nir_imm_int(b, SpvRayFlagsCullBackFacingTrianglesKHRMask))),
       nir_imm_int(b, 0));
 
    not_cull = nir_iand(
@@ -1151,7 +1151,7 @@ insert_traversal_triangle_case(struct radv_device *device,
             b,
             nir_iand(
                b, nir_load_var(b, trav_vars->sbt_offset_and_flags),
-               nir_imm_int(b, 1 << 24 /* VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT */)),
+               nir_imm_int(b, VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR << 24)),
             nir_imm_int(b, 0))));
 
    nir_push_if(b, nir_iand(b,
@@ -1173,7 +1173,8 @@ insert_traversal_triangle_case(struct radv_device *device,
       not_cull =
          nir_ieq(b,
                  nir_iand(b, nir_load_var(b, vars->flags),
-                          nir_bcsel(b, is_opaque, nir_imm_int(b, 0x40), nir_imm_int(b, 0x80))),
+                          nir_bcsel(b, is_opaque, nir_imm_int(b, SpvRayFlagsCullOpaqueKHRMask),
+                                    nir_imm_int(b, SpvRayFlagsCullNoOpaqueKHRMask))),
                  nir_imm_int(b, 0));
       nir_push_if(b, not_cull);
       {
@@ -1236,7 +1237,7 @@ insert_traversal_triangle_case(struct radv_device *device,
                        nir_ior(b,
                                nir_ine(b,
                                        nir_iand(b, nir_load_var(b, vars->flags),
-                                                nir_imm_int(b, 8 /* SkipClosestHitShader */)),
+                                                nir_imm_int(b, SpvRayFlagsSkipClosestHitShaderKHRMask)),
                                        nir_imm_int(b, 0)),
                                nir_ieq(b, nir_load_var(b, vars->idx), nir_imm_int(b, 0))),
                        1);
@@ -1244,7 +1245,7 @@ insert_traversal_triangle_case(struct radv_device *device,
          nir_ssa_def *terminate_on_first_hit =
             nir_ine(b,
                     nir_iand(b, nir_load_var(b, vars->flags),
-                             nir_imm_int(b, 4 /* TerminateOnFirstHitKHR */)),
+                             nir_imm_int(b, SpvRayFlagsTerminateOnFirstHitKHRMask)),
                     nir_imm_int(b, 0));
          nir_ssa_def *ray_terminated =
             nir_ieq(b, nir_load_var(b, vars->ahit_status), nir_imm_int(b, 2));
@@ -1282,7 +1283,8 @@ insert_traversal_aabb_case(struct radv_device *device,
    nir_ssa_def *not_cull =
       nir_iand(b, not_skip_aabb, nir_ieq(b,
               nir_iand(b, nir_load_var(b, vars->flags),
-                       nir_bcsel(b, is_opaque, nir_imm_int(b, 0x40), nir_imm_int(b, 0x80))),
+                       nir_bcsel(b, is_opaque, nir_imm_int(b, SpvRayFlagsCullOpaqueKHRMask),
+                                 nir_imm_int(b, SpvRayFlagsCullNoOpaqueKHRMask))),
               nir_imm_int(b, 0)));
    nir_push_if(b, not_cull);
    {
@@ -1397,7 +1399,7 @@ insert_traversal_aabb_case(struct radv_device *device,
                        nir_ior(b,
                                nir_ine(b,
                                        nir_iand(b, nir_load_var(b, vars->flags),
-                                                nir_imm_int(b, 8 /* SkipClosestHitShader */)),
+                                                nir_imm_int(b, SpvRayFlagsSkipClosestHitShaderKHRMask)),
                                        nir_imm_int(b, 0)),
                                nir_ieq(b, nir_load_var(b, vars->idx), nir_imm_int(b, 0))),
                        1);
@@ -1405,7 +1407,7 @@ insert_traversal_aabb_case(struct radv_device *device,
          nir_ssa_def *terminate_on_first_hit =
             nir_ine(b,
                     nir_iand(b, nir_load_var(b, vars->flags),
-                             nir_imm_int(b, 4 /* TerminateOnFirstHitKHR */)),
+                             nir_imm_int(b, SpvRayFlagsTerminateOnFirstHitKHRMask)),
                     nir_imm_int(b, 0));
          nir_ssa_def *ray_terminated =
             nir_ieq(b, nir_load_var(b, vars->ahit_status), nir_imm_int(b, 2));
diff --git a/src/amd/vulkan/radv_rt_common.c b/src/amd/vulkan/radv_rt_common.c
index d6712af64b0..358581b0c70 100644
--- a/src/amd/vulkan/radv_rt_common.c
+++ b/src/amd/vulkan/radv_rt_common.c
@@ -386,17 +386,17 @@ hit_is_opaque(nir_builder *b, nir_ssa_def *sbt_offset_and_flags, nir_ssa_def *fl
               nir_ssa_def *geometry_id_and_flags)
 {
    nir_ssa_def *geom_force_opaque = nir_ine(
-      b, nir_iand(b, geometry_id_and_flags, nir_imm_int(b, 1u << 28 /* VK_GEOMETRY_OPAQUE_BIT */)),
+      b, nir_iand(b, geometry_id_and_flags, nir_imm_int(b, VK_GEOMETRY_OPAQUE_BIT_KHR << 28)),
       nir_imm_int(b, 0));
    nir_ssa_def *instance_force_opaque =
       nir_ine(b,
               nir_iand(b, sbt_offset_and_flags,
-                       nir_imm_int(b, 4 << 24 /* VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT */)),
+                       nir_imm_int(b, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR << 24)),
               nir_imm_int(b, 0));
    nir_ssa_def *instance_force_non_opaque =
       nir_ine(b,
               nir_iand(b, sbt_offset_and_flags,
-                       nir_imm_int(b, 8 << 24 /* VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT */)),
+                       nir_imm_int(b, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR << 24)),
               nir_imm_int(b, 0));
 
    nir_ssa_def *opaque = geom_force_opaque;
@@ -404,9 +404,9 @@ hit_is_opaque(nir_builder *b, nir_ssa_def *sbt_offset_and_flags, nir_ssa_def *fl
    opaque = nir_bcsel(b, instance_force_non_opaque, nir_imm_bool(b, false), opaque);
 
    nir_ssa_def *ray_force_opaque =
-      nir_ine(b, nir_iand(b, flags, nir_imm_int(b, 1 /* RayFlagsOpaque */)), nir_imm_int(b, 0));
+      nir_ine(b, nir_iand(b, flags, nir_imm_int(b, SpvRayFlagsOpaqueKHRMask)), nir_imm_int(b, 0));
    nir_ssa_def *ray_force_non_opaque =
-      nir_ine(b, nir_iand(b, flags, nir_imm_int(b, 2 /* RayFlagsNoOpaque */)), nir_imm_int(b, 0));
+      nir_ine(b, nir_iand(b, flags, nir_imm_int(b, SpvRayFlagsNoOpaqueKHRMask)), nir_imm_int(b, 0));
 
    opaque = nir_bcsel(b, ray_force_opaque, nir_imm_bool(b, true), opaque);
    opaque = nir_bcsel(b, ray_force_non_opaque, nir_imm_bool(b, false), opaque);
diff --git a/src/amd/vulkan/radv_rt_common.h b/src/amd/vulkan/radv_rt_common.h
index 1df1aab714c..90780459ab7 100644
--- a/src/amd/vulkan/radv_rt_common.h
+++ b/src/amd/vulkan/radv_rt_common.h
@@ -28,6 +28,8 @@
 #include "nir/nir_builder.h"
 #include "nir/nir_vulkan.h"
 
+#include "compiler/spirv/spirv.h"
+
 #include "radv_private.h"
 
 void nir_sort_hit_pair(nir_builder *b, nir_variable *var_distances, nir_variable *var_indices,



More information about the mesa-commit mailing list