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