mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
ac,radeonsi: add a helper to print PS input VGPR layout
This commit is contained in:
parent
15774f7ac9
commit
316353fbb6
3 changed files with 53 additions and 2 deletions
|
|
@ -1511,3 +1511,50 @@ retry_select_mode:
|
|||
max_out_vertices <= max_workgroup_size &&
|
||||
out->hw_max_esverts >= min_esverts;
|
||||
}
|
||||
|
||||
/* Print SPI_PS_INPUT_ADDR as follows:
|
||||
* v[0:1] = PERSP_SAMPLE
|
||||
* v[2:3] = PERSP_CENTER
|
||||
* v[4:5] = LINEAR_SAMPLE
|
||||
* v[6:7] = LINEAR_CENTER
|
||||
* v8 = LINE_STIPPLE_TEX
|
||||
* v9 = FRONT_FACE
|
||||
* v10 = ANCILLARY
|
||||
* v11 = SAMPLE_COVERAGE
|
||||
* v12 = POS_FIXED_PT
|
||||
*/
|
||||
void
|
||||
ac_print_spi_ps_input_vgpr_list(uint32_t spi_ps_input_ena, uint32_t spi_ps_input_addr, FILE *f)
|
||||
{
|
||||
unsigned vgpr = 0;
|
||||
|
||||
#define PRINT_PS_INPUT_VGPR(count, name) do { \
|
||||
if (G_0286CC_##name##_ENA(spi_ps_input_addr)) { \
|
||||
bool enabled = G_0286CC_##name##_ENA(spi_ps_input_ena); \
|
||||
if (count > 1) \
|
||||
fprintf(f, " v[%u:%u] = %s%s\n", vgpr, vgpr + count - 1, #name, \
|
||||
enabled ? " === initialized ===" : ""); \
|
||||
else \
|
||||
fprintf(f, " v%u = %s\n", vgpr, #name); \
|
||||
vgpr += count; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
PRINT_PS_INPUT_VGPR(2, PERSP_SAMPLE);
|
||||
PRINT_PS_INPUT_VGPR(2, PERSP_CENTER);
|
||||
PRINT_PS_INPUT_VGPR(2, PERSP_CENTROID);
|
||||
PRINT_PS_INPUT_VGPR(3, PERSP_PULL_MODEL);
|
||||
PRINT_PS_INPUT_VGPR(2, LINEAR_SAMPLE);
|
||||
PRINT_PS_INPUT_VGPR(2, LINEAR_CENTER);
|
||||
PRINT_PS_INPUT_VGPR(2, LINEAR_CENTROID);
|
||||
PRINT_PS_INPUT_VGPR(1, LINE_STIPPLE_TEX);
|
||||
PRINT_PS_INPUT_VGPR(1, POS_X_FLOAT);
|
||||
PRINT_PS_INPUT_VGPR(1, POS_Y_FLOAT);
|
||||
PRINT_PS_INPUT_VGPR(1, POS_Z_FLOAT);
|
||||
PRINT_PS_INPUT_VGPR(1, POS_W_FLOAT);
|
||||
PRINT_PS_INPUT_VGPR(1, FRONT_FACE);
|
||||
PRINT_PS_INPUT_VGPR(1, ANCILLARY);
|
||||
PRINT_PS_INPUT_VGPR(1, SAMPLE_COVERAGE);
|
||||
PRINT_PS_INPUT_VGPR(1, POS_FIXED_PT);
|
||||
#undef PRINT_PS_INPUT_VGPR
|
||||
}
|
||||
|
|
|
|||
|
|
@ -343,6 +343,9 @@ ac_ngg_compute_subgroup_info(enum amd_gfx_level gfx_level, mesa_shader_stage es_
|
|||
unsigned ngg_lds_scratch_size, bool tess_turns_off_ngg,
|
||||
unsigned max_esgs_lds_padding, ac_ngg_subgroup_info *out);
|
||||
|
||||
void
|
||||
ac_print_spi_ps_input_vgpr_list(uint32_t spi_ps_input_ena, uint32_t spi_ps_input_addr, FILE *f);
|
||||
|
||||
static unsigned inline
|
||||
ac_shader_get_lds_alloc_granularity(enum amd_gfx_level gfx_level)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -491,9 +491,10 @@ static void si_shader_dump_stats(struct si_screen *sscreen, struct si_shader *sh
|
|||
if (shader->selector->stage == MESA_SHADER_FRAGMENT) {
|
||||
fprintf(file,
|
||||
"*** SHADER CONFIG ***\n"
|
||||
"SPI_PS_INPUT_ADDR = 0x%04x\n"
|
||||
"SPI_PS_INPUT_ENA = 0x%04x\n",
|
||||
"SPI_PS_INPUT_ADDR = 0x%04x\n"
|
||||
"SPI_PS_INPUT_ENA = 0x%04x\n",
|
||||
conf->spi_ps_input_addr, conf->spi_ps_input_ena);
|
||||
ac_print_spi_ps_input_vgpr_list(conf->spi_ps_input_ena, conf->spi_ps_input_addr, file);
|
||||
}
|
||||
|
||||
fprintf(file,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue