radv/nir: Add and use radv_nir_return_param_from_type helper

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314>
This commit is contained in:
Natalie Vock 2026-01-15 16:11:52 +01:00 committed by Marge Bot
parent bde7bebc01
commit 1fb005b487
3 changed files with 15 additions and 6 deletions

View file

@ -240,3 +240,14 @@ radv_nir_param_from_type(nir_parameter *param, const glsl_type *type, bool unifo
param->is_uniform = uniform;
param->driver_attributes = driver_attribs;
}
void
radv_nir_return_param_from_type(nir_parameter *param, const glsl_type *type, bool uniform, unsigned driver_attribs)
{
param->num_components = 1;
param->bit_size = 32;
param->type = type;
param->is_uniform = uniform;
param->driver_attributes = driver_attribs;
param->is_return = true;
}

View file

@ -101,6 +101,8 @@ bool radv_nir_lower_rt_storage(nir_shader *shader, nir_variable **hit_attribs, n
nir_variable **payload_out, uint32_t workgroup_size);
void radv_nir_param_from_type(nir_parameter *param, const glsl_type *type, bool uniform, unsigned driver_attribs);
void radv_nir_return_param_from_type(nir_parameter *param, const glsl_type *type, bool uniform,
unsigned driver_attribs);
/*
*

View file

@ -118,12 +118,8 @@ radv_nir_init_rt_function_params(nir_function *function, mesa_shader_stage stage
}
if (payload_base != -1u) {
for (unsigned i = 0; i < DIV_ROUND_UP(payload_size, 4); ++i) {
function->params[payload_base + i].num_components = 1;
function->params[payload_base + i].bit_size = 32;
function->params[payload_base + i].is_return = true;
function->params[payload_base + i].type = glsl_uint_type();
}
for (unsigned i = 0; i < DIV_ROUND_UP(payload_size, 4); ++i)
radv_nir_return_param_from_type(function->params + payload_base + i, glsl_uint_type(), false, 0);
}
/* Entrypoints can't have parameters. Consider RT stages as callable functions */