radv: Add radv_shader_type to fix gs_copy and trap handler handling
is_gs_copy_shader and is_trap_handler_shader were cleared in
radv_init_shader_args. This restores the original behaviour.
Fixes: 67635bb
("radv: zero-initialize radv_shader_args right before declaring them")
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22382>
This commit is contained in:

committed by
Marge Bot

parent
c66be7521f
commit
6f9bb453ef
@@ -2364,7 +2364,7 @@ radv_declare_pipeline_args(struct radv_device *device, struct radv_pipeline_stag
|
||||
if (gfx_level >= GFX9 && stages[MESA_SHADER_TESS_CTRL].nir) {
|
||||
radv_declare_shader_args(device, pipeline_key, &stages[MESA_SHADER_TESS_CTRL].info,
|
||||
MESA_SHADER_TESS_CTRL, true, MESA_SHADER_VERTEX,
|
||||
&stages[MESA_SHADER_TESS_CTRL].args);
|
||||
RADV_SHADER_TYPE_DEFAULT, &stages[MESA_SHADER_TESS_CTRL].args);
|
||||
stages[MESA_SHADER_TESS_CTRL].info.user_sgprs_locs = stages[MESA_SHADER_TESS_CTRL].args.user_sgprs_locs;
|
||||
stages[MESA_SHADER_TESS_CTRL].info.inline_push_constant_mask =
|
||||
stages[MESA_SHADER_TESS_CTRL].args.ac.inline_push_const_mask;
|
||||
@@ -2381,7 +2381,7 @@ radv_declare_pipeline_args(struct radv_device *device, struct radv_pipeline_stag
|
||||
gl_shader_stage pre_stage =
|
||||
stages[MESA_SHADER_TESS_EVAL].nir ? MESA_SHADER_TESS_EVAL : MESA_SHADER_VERTEX;
|
||||
radv_declare_shader_args(device, pipeline_key, &stages[MESA_SHADER_GEOMETRY].info,
|
||||
MESA_SHADER_GEOMETRY, true, pre_stage,
|
||||
MESA_SHADER_GEOMETRY, true, pre_stage, RADV_SHADER_TYPE_DEFAULT,
|
||||
&stages[MESA_SHADER_GEOMETRY].args);
|
||||
stages[MESA_SHADER_GEOMETRY].info.user_sgprs_locs = stages[MESA_SHADER_GEOMETRY].args.user_sgprs_locs;
|
||||
stages[MESA_SHADER_GEOMETRY].info.inline_push_constant_mask =
|
||||
@@ -2396,7 +2396,7 @@ radv_declare_pipeline_args(struct radv_device *device, struct radv_pipeline_stag
|
||||
|
||||
u_foreach_bit(i, active_nir_stages) {
|
||||
radv_declare_shader_args(device, pipeline_key, &stages[i].info, i, false, MESA_SHADER_VERTEX,
|
||||
&stages[i].args);
|
||||
RADV_SHADER_TYPE_DEFAULT, &stages[i].args);
|
||||
stages[i].info.user_sgprs_locs = stages[i].args.user_sgprs_locs;
|
||||
stages[i].info.inline_push_constant_mask = stages[i].args.ac.inline_push_const_mask;
|
||||
}
|
||||
@@ -2667,9 +2667,8 @@ radv_pipeline_create_gs_copy_shader(struct radv_device *device, struct radv_pipe
|
||||
gs_copy_stage.info.outinfo = gs_info->outinfo;
|
||||
gs_copy_stage.info.force_vrs_per_vertex = gs_info->force_vrs_per_vertex;
|
||||
|
||||
gs_copy_stage.args.is_gs_copy_shader = true;
|
||||
radv_declare_shader_args(device, pipeline_key, &gs_copy_stage.info, MESA_SHADER_VERTEX, false,
|
||||
MESA_SHADER_VERTEX, &gs_copy_stage.args);
|
||||
MESA_SHADER_VERTEX, RADV_SHADER_TYPE_GS_COPY, &gs_copy_stage.args);
|
||||
gs_copy_stage.info.user_sgprs_locs = gs_copy_stage.args.user_sgprs_locs;
|
||||
gs_copy_stage.info.inline_push_constant_mask = gs_copy_stage.args.ac.inline_push_const_mask;
|
||||
|
||||
@@ -5159,7 +5158,7 @@ radv_compute_pipeline_compile(struct radv_compute_pipeline *pipeline,
|
||||
cs_stage.args.load_grid_size_from_user_sgpr = device->load_grid_size_from_user_sgpr;
|
||||
|
||||
radv_declare_shader_args(device, pipeline_key, &cs_stage.info, MESA_SHADER_COMPUTE, false,
|
||||
MESA_SHADER_VERTEX, &cs_stage.args);
|
||||
MESA_SHADER_VERTEX, RADV_SHADER_TYPE_DEFAULT, &cs_stage.args);
|
||||
|
||||
cs_stage.info.user_sgprs_locs = cs_stage.args.user_sgprs_locs;
|
||||
cs_stage.info.inline_push_constant_mask = cs_stage.args.ac.inline_push_const_mask;
|
||||
|
Reference in New Issue
Block a user