ac,radeonsi: remove unused ps prolog key fields
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24989>
This commit is contained in:
@@ -620,14 +620,10 @@ enum ac_image_dim ac_get_image_dim(enum amd_gfx_level gfx_level, enum glsl_sampl
|
||||
}
|
||||
|
||||
unsigned ac_get_fs_input_vgpr_cnt(const struct ac_shader_config *config,
|
||||
signed char *face_vgpr_index_ptr,
|
||||
signed char *ancillary_vgpr_index_ptr,
|
||||
signed char *sample_coverage_vgpr_index_ptr)
|
||||
uint8_t *num_pos_inputs)
|
||||
{
|
||||
unsigned num_input_vgprs = 0;
|
||||
signed char face_vgpr_index = -1;
|
||||
signed char ancillary_vgpr_index = -1;
|
||||
signed char sample_coverage_vgpr_index = -1;
|
||||
unsigned pos_inputs = 0;
|
||||
|
||||
if (G_0286CC_PERSP_SAMPLE_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 2;
|
||||
@@ -645,35 +641,33 @@ unsigned ac_get_fs_input_vgpr_cnt(const struct ac_shader_config *config,
|
||||
num_input_vgprs += 2;
|
||||
if (G_0286CC_LINE_STIPPLE_TEX_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_POS_X_FLOAT_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_POS_Y_FLOAT_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_POS_Z_FLOAT_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_POS_W_FLOAT_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_FRONT_FACE_ENA(config->spi_ps_input_addr)) {
|
||||
face_vgpr_index = num_input_vgprs;
|
||||
if (G_0286CC_POS_X_FLOAT_ENA(config->spi_ps_input_addr)) {
|
||||
num_input_vgprs += 1;
|
||||
pos_inputs++;
|
||||
}
|
||||
if (G_0286CC_ANCILLARY_ENA(config->spi_ps_input_addr)) {
|
||||
ancillary_vgpr_index = num_input_vgprs;
|
||||
if (G_0286CC_POS_Y_FLOAT_ENA(config->spi_ps_input_addr)) {
|
||||
num_input_vgprs += 1;
|
||||
pos_inputs++;
|
||||
}
|
||||
if (G_0286CC_SAMPLE_COVERAGE_ENA(config->spi_ps_input_addr)) {
|
||||
sample_coverage_vgpr_index = num_input_vgprs;
|
||||
if (G_0286CC_POS_Z_FLOAT_ENA(config->spi_ps_input_addr)) {
|
||||
num_input_vgprs += 1;
|
||||
pos_inputs++;
|
||||
}
|
||||
if (G_0286CC_POS_W_FLOAT_ENA(config->spi_ps_input_addr)) {
|
||||
num_input_vgprs += 1;
|
||||
pos_inputs++;
|
||||
}
|
||||
if (G_0286CC_FRONT_FACE_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_ANCILLARY_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_SAMPLE_COVERAGE_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
if (G_0286CC_POS_FIXED_PT_ENA(config->spi_ps_input_addr))
|
||||
num_input_vgprs += 1;
|
||||
|
||||
if (face_vgpr_index_ptr)
|
||||
*face_vgpr_index_ptr = face_vgpr_index;
|
||||
if (ancillary_vgpr_index_ptr)
|
||||
*ancillary_vgpr_index_ptr = ancillary_vgpr_index;
|
||||
if (sample_coverage_vgpr_index_ptr)
|
||||
*sample_coverage_vgpr_index_ptr = sample_coverage_vgpr_index;
|
||||
if (num_pos_inputs)
|
||||
*num_pos_inputs = pos_inputs;
|
||||
|
||||
return num_input_vgprs;
|
||||
}
|
||||
|
@@ -170,8 +170,7 @@ enum ac_image_dim ac_get_image_dim(enum amd_gfx_level gfx_level, enum glsl_sampl
|
||||
bool is_array);
|
||||
|
||||
unsigned ac_get_fs_input_vgpr_cnt(const struct ac_shader_config *config,
|
||||
signed char *face_vgpr_index, signed char *ancillary_vgpr_index,
|
||||
signed char *sample_coverage_vgpr_index_ptr);
|
||||
uint8_t *num_pos_inputs);
|
||||
|
||||
uint16_t ac_get_ps_iter_mask(unsigned ps_iter_samples);
|
||||
|
||||
|
@@ -1555,7 +1555,7 @@ radv_postprocess_binary_config(struct radv_device *device, struct radv_shader_bi
|
||||
unsigned num_input_vgprs = args->ac.num_vgprs_used;
|
||||
|
||||
if (stage == MESA_SHADER_FRAGMENT) {
|
||||
num_input_vgprs = ac_get_fs_input_vgpr_cnt(config, NULL, NULL, NULL);
|
||||
num_input_vgprs = ac_get_fs_input_vgpr_cnt(config, NULL);
|
||||
}
|
||||
|
||||
unsigned num_vgprs = MAX2(config->num_vgprs, num_input_vgprs);
|
||||
|
@@ -2906,8 +2906,7 @@ bool si_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *compi
|
||||
/* Calculate the number of fragment input VGPRs. */
|
||||
if (sel->stage == MESA_SHADER_FRAGMENT) {
|
||||
shader->info.num_input_vgprs = ac_get_fs_input_vgpr_cnt(
|
||||
&shader->config, &shader->info.face_vgpr_index, &shader->info.ancillary_vgpr_index,
|
||||
&shader->info.sample_coverage_vgpr_index);
|
||||
&shader->config, &shader->info.num_ps_pos_inputs);
|
||||
}
|
||||
|
||||
si_calculate_max_simd_waves(shader);
|
||||
@@ -3099,7 +3098,6 @@ void si_get_ps_prolog_key(struct si_shader *shader, union si_shader_part_key *ke
|
||||
key->ps_prolog.wave32 = shader->wave_size == 32;
|
||||
key->ps_prolog.colors_read = info->colors_read;
|
||||
key->ps_prolog.num_input_sgprs = shader->info.num_input_sgprs;
|
||||
key->ps_prolog.num_input_vgprs = shader->info.num_input_vgprs;
|
||||
key->ps_prolog.wqm =
|
||||
info->base.fs.needs_quad_helper_invocations &&
|
||||
(key->ps_prolog.colors_read || key->ps_prolog.states.force_persp_sample_interp ||
|
||||
@@ -3107,8 +3105,7 @@ void si_get_ps_prolog_key(struct si_shader *shader, union si_shader_part_key *ke
|
||||
key->ps_prolog.states.force_persp_center_interp ||
|
||||
key->ps_prolog.states.force_linear_center_interp ||
|
||||
key->ps_prolog.states.bc_optimize_for_persp || key->ps_prolog.states.bc_optimize_for_linear);
|
||||
key->ps_prolog.ancillary_vgpr_index = shader->info.ancillary_vgpr_index;
|
||||
key->ps_prolog.sample_coverage_vgpr_index = shader->info.sample_coverage_vgpr_index;
|
||||
key->ps_prolog.num_pos_inputs = shader->info.num_ps_pos_inputs;
|
||||
|
||||
if (shader->key.ps.part.prolog.poly_stipple)
|
||||
shader->info.uses_vmem_load_other = true;
|
||||
@@ -3119,7 +3116,6 @@ void si_get_ps_prolog_key(struct si_shader *shader, union si_shader_part_key *ke
|
||||
if (shader->key.ps.part.prolog.color_two_side) {
|
||||
/* BCOLORs are stored after the last input. */
|
||||
key->ps_prolog.num_interp_inputs = info->num_inputs;
|
||||
key->ps_prolog.face_vgpr_index = shader->info.face_vgpr_index;
|
||||
shader->config.spi_ps_input_ena |= S_0286CC_FRONT_FACE_ENA(1);
|
||||
}
|
||||
|
||||
@@ -3688,7 +3684,7 @@ void si_get_ps_prolog_args(struct si_shader_args *args,
|
||||
/* skip LINE_STIPPLE_TEX */
|
||||
|
||||
/* POS_X|Y|Z|W_FLOAT */
|
||||
for (unsigned i = args->ac.num_vgprs_used; i < key->ps_prolog.face_vgpr_index; i++)
|
||||
for (unsigned i = 0; i < key->ps_prolog.num_pos_inputs; i++)
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, NULL);
|
||||
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.front_face);
|
||||
|
@@ -675,13 +675,10 @@ union si_shader_part_key {
|
||||
struct si_ps_prolog_bits states;
|
||||
unsigned wave32 : 1;
|
||||
unsigned num_input_sgprs : 6;
|
||||
unsigned num_input_vgprs : 5;
|
||||
/* Color interpolation and two-side color selection. */
|
||||
unsigned colors_read : 8; /* color input components read */
|
||||
unsigned num_interp_inputs : 5; /* BCOLOR is at this location */
|
||||
unsigned face_vgpr_index : 5;
|
||||
unsigned ancillary_vgpr_index : 5;
|
||||
unsigned sample_coverage_vgpr_index : 5;
|
||||
unsigned num_pos_inputs : 3;
|
||||
unsigned wqm : 1;
|
||||
char color_attr_index[2];
|
||||
signed char color_interp_vgpr_index[2]; /* -1 == constant */
|
||||
@@ -821,9 +818,7 @@ struct si_shader_binary_info {
|
||||
uint8_t num_input_vgprs;
|
||||
bool uses_vmem_load_other; /* all other VMEM loads and atomics with return */
|
||||
bool uses_vmem_sampler_or_bvh;
|
||||
signed char face_vgpr_index;
|
||||
signed char ancillary_vgpr_index;
|
||||
signed char sample_coverage_vgpr_index;
|
||||
uint8_t num_ps_pos_inputs;
|
||||
bool uses_instanceid;
|
||||
uint8_t nr_pos_exports;
|
||||
uint8_t nr_param_exports;
|
||||
|
Reference in New Issue
Block a user