mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 11:40:10 +01:00
radeonsi: init task shader args
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37932>
This commit is contained in:
parent
69c10426a4
commit
e36c277af9
3 changed files with 17 additions and 0 deletions
|
|
@ -114,6 +114,12 @@ static void si_create_compute_state_async(void *job, void *gdata, int thread_ind
|
|||
return;
|
||||
}
|
||||
|
||||
/* task ring entry and draw id
|
||||
* note uses_draw_id is only available after shader variant creation
|
||||
*/
|
||||
if (sel->stage == MESA_SHADER_TASK)
|
||||
user_sgprs += shader->info.uses_draw_id ? 3 : 2;
|
||||
|
||||
shader->config.rsrc1 = S_00B848_VGPRS((shader->config.num_vgprs - 1) /
|
||||
((shader->wave_size == 32 ||
|
||||
sscreen->info.wave64_vgpr_alloc_granularity == 8) ? 8 : 4)) |
|
||||
|
|
|
|||
|
|
@ -190,6 +190,10 @@ enum
|
|||
SI_SGPR_ALPHA_REF,
|
||||
SI_PS_NUM_USER_SGPR,
|
||||
|
||||
/* TS only */
|
||||
GFX10_SGPR_TS_TASK_RING_ADDR = SI_NUM_RESOURCE_SGPRS,
|
||||
GFX10_SGPR_TS_TASK_RING_ENTRY,
|
||||
|
||||
/* MS only */
|
||||
GFX11_SGPR_MS_ATTRIBUTE_RING_ADDR = SI_NUM_RESOURCE_SGPRS,
|
||||
|
||||
|
|
|
|||
|
|
@ -513,8 +513,15 @@ void si_init_shader_args(struct si_shader *shader, struct si_shader_args *args,
|
|||
|
||||
case MESA_SHADER_COMPUTE:
|
||||
case MESA_SHADER_KERNEL:
|
||||
case MESA_SHADER_TASK:
|
||||
declare_global_desc_pointers(args);
|
||||
declare_per_stage_desc_pointers(args, shader, info, true);
|
||||
if (stage == MESA_SHADER_TASK) {
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_VALUE, &args->task_ring_addr);
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_VALUE, &args->ac.task_ring_entry);
|
||||
}
|
||||
if (shader->info.uses_draw_id)
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_VALUE, &args->ac.draw_id);
|
||||
if (shader->selector->info.uses_grid_size)
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 3, AC_ARG_VALUE, &args->ac.num_work_groups);
|
||||
if (shader->selector->info.uses_variable_block_size)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue