From f0d6a1a68548cb778da41e14fd92afc2d2fdcdb7 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Sun, 11 Dec 2022 16:10:17 +0100 Subject: [PATCH] radv: Rename stack_base to stack_low_watermark. Better covers the purpose. Part-of: --- src/amd/vulkan/radv_nir_lower_ray_queries.c | 12 ++++++------ src/amd/vulkan/radv_rt_common.c | 9 +++++---- src/amd/vulkan/radv_rt_common.h | 5 +++-- src/amd/vulkan/radv_rt_shader.c | 10 +++++----- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/amd/vulkan/radv_nir_lower_ray_queries.c b/src/amd/vulkan/radv_nir_lower_ray_queries.c index 7063058..de2bc07 100644 --- a/src/amd/vulkan/radv_nir_lower_ray_queries.c +++ b/src/amd/vulkan/radv_nir_lower_ray_queries.c @@ -142,7 +142,7 @@ struct ray_query_traversal_vars { rq_variable *bvh_base; rq_variable *stack; rq_variable *top_stack; - rq_variable *stack_base; + rq_variable *stack_low_watermark; rq_variable *current_node; rq_variable *previous_node; rq_variable *instance_top_node; @@ -202,8 +202,8 @@ init_ray_query_traversal_vars(void *ctx, nir_shader *shader, unsigned array_leng rq_variable_create(ctx, shader, array_length, glsl_uint_type(), VAR_NAME("_stack")); result.top_stack = rq_variable_create(ctx, shader, array_length, glsl_uint_type(), VAR_NAME("_top_stack")); - result.stack_base = - rq_variable_create(ctx, shader, array_length, glsl_uint_type(), VAR_NAME("_stack_base")); + result.stack_low_watermark = rq_variable_create(ctx, shader, array_length, glsl_uint_type(), + VAR_NAME("_stack_low_watermark")); result.current_node = rq_variable_create(ctx, shader, array_length, glsl_uint_type(), VAR_NAME("_current_node")); result.previous_node = @@ -405,13 +405,13 @@ lower_rq_initialize(nir_builder *b, nir_ssa_def *index, nir_intrinsic_instr *ins if (vars->stack) { rq_store_var(b, index, vars->trav.stack, nir_imm_int(b, 0), 0x1); - rq_store_var(b, index, vars->trav.stack_base, nir_imm_int(b, 0), 0x1); + rq_store_var(b, index, vars->trav.stack_low_watermark, nir_imm_int(b, 0), 0x1); } else { nir_ssa_def *base_offset = nir_imul_imm(b, nir_load_local_invocation_index(b), sizeof(uint32_t)); base_offset = nir_iadd_imm(b, base_offset, vars->shared_base); rq_store_var(b, index, vars->trav.stack, base_offset, 0x1); - rq_store_var(b, index, vars->trav.stack_base, base_offset, 0x1); + rq_store_var(b, index, vars->trav.stack_low_watermark, base_offset, 0x1); } } nir_push_else(b, NULL); @@ -633,7 +633,7 @@ lower_rq_proceed(nir_builder *b, nir_ssa_def *index, struct ray_query_vars *vars .bvh_base = rq_deref_var(b, index, vars->trav.bvh_base), .stack = rq_deref_var(b, index, vars->trav.stack), .top_stack = rq_deref_var(b, index, vars->trav.top_stack), - .stack_base = rq_deref_var(b, index, vars->trav.stack_base), + .stack_low_watermark = rq_deref_var(b, index, vars->trav.stack_low_watermark), .current_node = rq_deref_var(b, index, vars->trav.current_node), .previous_node = rq_deref_var(b, index, vars->trav.previous_node), .instance_top_node = rq_deref_var(b, index, vars->trav.instance_top_node), diff --git a/src/amd/vulkan/radv_rt_common.c b/src/amd/vulkan/radv_rt_common.c index eeda81a..d1eff47 100644 --- a/src/amd/vulkan/radv_rt_common.c +++ b/src/amd/vulkan/radv_rt_common.c @@ -580,7 +580,7 @@ radv_build_ray_traversal(struct radv_device *device, nir_builder *b, } nir_pop_if(b, NULL); - nir_push_if(b, nir_ige(b, nir_load_deref(b, args->vars.stack_base), + nir_push_if(b, nir_ige(b, nir_load_deref(b, args->vars.stack_low_watermark), nir_load_deref(b, args->vars.stack))); { nir_ssa_def *prev = nir_load_deref(b, args->vars.previous_node); @@ -720,11 +720,12 @@ radv_build_ray_traversal(struct radv_device *device, nir_builder *b, nir_iadd_imm(b, stack, args->stack_stride), 1); if (i == 1) { - nir_ssa_def *new_base = + nir_ssa_def *new_watermark = nir_iadd_imm(b, nir_load_deref(b, args->vars.stack), -args->stack_entries * args->stack_stride); - new_base = nir_imax(b, nir_load_deref(b, args->vars.stack_base), new_base); - nir_store_deref(b, args->vars.stack_base, new_base, 0x1); + new_watermark = nir_imax( + b, nir_load_deref(b, args->vars.stack_low_watermark), new_watermark); + nir_store_deref(b, args->vars.stack_low_watermark, new_watermark, 0x1); } nir_pop_if(b, NULL); diff --git a/src/amd/vulkan/radv_rt_common.h b/src/amd/vulkan/radv_rt_common.h index cb38534..351fd27f 100644 --- a/src/amd/vulkan/radv_rt_common.h +++ b/src/amd/vulkan/radv_rt_common.h @@ -113,11 +113,12 @@ struct radv_ray_traversal_vars { nir_deref_instr *bvh_base; /* stack is the current stack pointer/index. top_stack is the pointer/index that marks the end of - * traversal for the current BLAS/TLAS. stack_base is the low watermark of the short stack. + * traversal for the current BLAS/TLAS. stack_low_watermark is the low watermark of the short + * stack. */ nir_deref_instr *stack; nir_deref_instr *top_stack; - nir_deref_instr *stack_base; + nir_deref_instr *stack_low_watermark; nir_deref_instr *current_node; diff --git a/src/amd/vulkan/radv_rt_shader.c b/src/amd/vulkan/radv_rt_shader.c index 292373c..ab66657 100644 --- a/src/amd/vulkan/radv_rt_shader.c +++ b/src/amd/vulkan/radv_rt_shader.c @@ -1023,7 +1023,7 @@ struct rt_traversal_vars { nir_variable *bvh_base; nir_variable *stack; nir_variable *top_stack; - nir_variable *stack_base; + nir_variable *stack_low_watermark; nir_variable *current_node; nir_variable *previous_node; nir_variable *instance_top_node; @@ -1051,8 +1051,8 @@ init_traversal_vars(nir_builder *b) nir_variable_create(b->shader, nir_var_shader_temp, glsl_uint_type(), "traversal_stack_ptr"); ret.top_stack = nir_variable_create(b->shader, nir_var_shader_temp, glsl_uint_type(), "traversal_top_stack_ptr"); - ret.stack_base = - nir_variable_create(b->shader, nir_var_shader_temp, glsl_uint_type(), "traversal_stack_base"); + ret.stack_low_watermark = nir_variable_create(b->shader, nir_var_shader_temp, glsl_uint_type(), + "traversal_stack_low_watermark"); ret.current_node = nir_variable_create(b->shader, nir_var_shader_temp, glsl_uint_type(), "current_node;"); ret.previous_node = @@ -1327,7 +1327,7 @@ build_traversal_shader(struct radv_device *device, nir_store_var(&b, trav_vars.stack, nir_imul_imm(&b, nir_load_local_invocation_index(&b), sizeof(uint32_t)), 1); - nir_store_var(&b, trav_vars.stack_base, nir_load_var(&b, trav_vars.stack), 1); + nir_store_var(&b, trav_vars.stack_low_watermark, nir_load_var(&b, trav_vars.stack), 1); nir_store_var(&b, trav_vars.current_node, nir_imm_int(&b, RADV_BVH_ROOT_NODE), 0x1); nir_store_var(&b, trav_vars.previous_node, nir_imm_int(&b, RADV_BVH_INVALID_NODE), 0x1); nir_store_var(&b, trav_vars.instance_top_node, nir_imm_int(&b, RADV_BVH_INVALID_NODE), 0x1); @@ -1344,7 +1344,7 @@ build_traversal_shader(struct radv_device *device, .bvh_base = nir_build_deref_var(&b, trav_vars.bvh_base), .stack = nir_build_deref_var(&b, trav_vars.stack), .top_stack = nir_build_deref_var(&b, trav_vars.top_stack), - .stack_base = nir_build_deref_var(&b, trav_vars.stack_base), + .stack_low_watermark = nir_build_deref_var(&b, trav_vars.stack_low_watermark), .current_node = nir_build_deref_var(&b, trav_vars.current_node), .previous_node = nir_build_deref_var(&b, trav_vars.previous_node), .instance_top_node = nir_build_deref_var(&b, trav_vars.instance_top_node), -- 2.7.4