Better covers the purpose.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20265>
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;
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 =
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);
.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),
}
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);
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);
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;
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;
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 =
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);
.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),