mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 10:50:10 +01:00
radv: tidy up radv_emit_hw_ngg()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34420>
This commit is contained in:
parent
1290b38f57
commit
2f00daf67a
1 changed files with 5 additions and 11 deletions
|
|
@ -2127,14 +2127,14 @@ radv_emit_hw_ngg(struct radv_cmd_buffer *cmd_buffer, const struct radv_shader *e
|
|||
es_type = shader->info.stage;
|
||||
}
|
||||
|
||||
radeon_begin(cmd_buffer->cs);
|
||||
|
||||
if (!shader->info.merged_shader_compiled_separately) {
|
||||
radeon_begin(cmd_buffer->cs);
|
||||
radeon_set_sh_reg(shader->info.regs.pgm_lo, va >> 8);
|
||||
|
||||
radeon_set_sh_reg_seq(shader->info.regs.pgm_rsrc1, 2);
|
||||
radeon_emit(shader->config.rsrc1);
|
||||
radeon_emit(shader->config.rsrc2);
|
||||
radeon_end();
|
||||
}
|
||||
|
||||
const struct radv_vs_output_info *outinfo = &shader->info.outinfo;
|
||||
|
|
@ -2147,37 +2147,30 @@ radv_emit_hw_ngg(struct radv_cmd_buffer *cmd_buffer, const struct radv_shader *e
|
|||
break_wave_at_eoi = true;
|
||||
}
|
||||
|
||||
radeon_begin(cmd_buffer->cs);
|
||||
|
||||
if (pdev->info.gfx_level >= GFX12) {
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_028818_PA_CL_VS_OUT_CNTL, RADV_TRACKED_PA_CL_VS_OUT_CNTL,
|
||||
shader->info.regs.pa_cl_vs_out_cntl);
|
||||
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_028B3C_VGT_GS_INSTANCE_CNT, RADV_TRACKED_VGT_GS_INSTANCE_CNT,
|
||||
shader->info.regs.vgt_gs_instance_cnt);
|
||||
|
||||
radeon_set_uconfig_reg(R_030988_VGT_PRIMITIVEID_EN, shader->info.regs.ngg.vgt_primitiveid_en);
|
||||
|
||||
radeon_opt_set_context_reg2(cmd_buffer, R_028648_SPI_SHADER_IDX_FORMAT, RADV_TRACKED_SPI_SHADER_IDX_FORMAT,
|
||||
shader->info.regs.ngg.spi_shader_idx_format, shader->info.regs.spi_shader_pos_format);
|
||||
} else {
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_02881C_PA_CL_VS_OUT_CNTL, RADV_TRACKED_PA_CL_VS_OUT_CNTL,
|
||||
shader->info.regs.pa_cl_vs_out_cntl);
|
||||
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_028B90_VGT_GS_INSTANCE_CNT, RADV_TRACKED_VGT_GS_INSTANCE_CNT,
|
||||
shader->info.regs.vgt_gs_instance_cnt);
|
||||
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_028A84_VGT_PRIMITIVEID_EN, RADV_TRACKED_VGT_PRIMITIVEID_EN,
|
||||
shader->info.regs.ngg.vgt_primitiveid_en | S_028A84_PRIMITIVEID_EN(es_enable_prim_id));
|
||||
|
||||
radeon_opt_set_context_reg2(cmd_buffer, R_028708_SPI_SHADER_IDX_FORMAT, RADV_TRACKED_SPI_SHADER_IDX_FORMAT,
|
||||
shader->info.regs.ngg.spi_shader_idx_format, shader->info.regs.spi_shader_pos_format);
|
||||
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_0286C4_SPI_VS_OUT_CONFIG, RADV_TRACKED_SPI_VS_OUT_CONFIG,
|
||||
shader->info.regs.spi_vs_out_config);
|
||||
}
|
||||
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_0287FC_GE_MAX_OUTPUT_PER_SUBGROUP, RADV_TRACKED_GE_MAX_OUTPUT_PER_SUBGROUP,
|
||||
shader->info.regs.ngg.ge_max_output_per_subgroup);
|
||||
|
||||
radeon_opt_set_context_reg(cmd_buffer, R_028B4C_GE_NGG_SUBGRP_CNTL, RADV_TRACKED_GE_NGG_SUBGRP_CNTL,
|
||||
shader->info.regs.ngg.ge_ngg_subgrp_cntl);
|
||||
|
||||
|
|
@ -2208,6 +2201,7 @@ radv_emit_hw_ngg(struct radv_cmd_buffer *cmd_buffer, const struct radv_shader *e
|
|||
|
||||
if (pdev->info.gfx_level >= GFX12) {
|
||||
radeon_set_sh_reg(R_00B220_SPI_SHADER_PGM_RSRC4_GS, shader->info.regs.spi_shader_pgm_rsrc4_gs);
|
||||
radeon_set_uconfig_reg(R_030988_VGT_PRIMITIVEID_EN, shader->info.regs.ngg.vgt_primitiveid_en);
|
||||
} else {
|
||||
if (pdev->info.gfx_level >= GFX7) {
|
||||
radeon_set_sh_reg_idx(&pdev->info, R_00B21C_SPI_SHADER_PGM_RSRC3_GS, 3,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue