radv: update configuring SPI_PS_IN_CONTROL on GFX12
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29482>
This commit is contained in:

committed by
Marge Bot

parent
640613f5a3
commit
1f078f02d1
@@ -1679,12 +1679,16 @@ radv_precompute_registers_hw_fs(struct radv_device *device, struct radv_shader_b
|
||||
S_02880C_EXEC_ON_HIER_FAIL(info->ps.writes_memory) | S_02880C_EXEC_ON_NOOP(info->ps.writes_memory) |
|
||||
S_02880C_DUAL_QUAD_DISABLE(disable_rbplus) | S_02880C_PRIMITIVE_ORDERED_PIXEL_SHADER(info->ps.pops);
|
||||
|
||||
/* GFX11 workaround when there are no PS inputs but LDS is used. */
|
||||
const bool param_gen = pdev->info.gfx_level == GFX11 && !info->ps.num_interp && binary->config.lds_size;
|
||||
if (pdev->info.gfx_level >= GFX12) {
|
||||
info->regs.ps.spi_ps_in_control = S_028640_PS_W32_EN(info->wave_size == 32);
|
||||
} else {
|
||||
/* GFX11 workaround when there are no PS inputs but LDS is used. */
|
||||
const bool param_gen = pdev->info.gfx_level == GFX11 && !info->ps.num_interp && binary->config.lds_size;
|
||||
|
||||
info->regs.ps.spi_ps_in_control = S_0286D8_NUM_INTERP(info->ps.num_interp) |
|
||||
S_0286D8_NUM_PRIM_INTERP(info->ps.num_prim_interp) |
|
||||
S_0286D8_PS_W32_EN(info->wave_size == 32) | S_0286D8_PARAM_GEN(param_gen);
|
||||
info->regs.ps.spi_ps_in_control = S_0286D8_NUM_INTERP(info->ps.num_interp) |
|
||||
S_0286D8_NUM_PRIM_INTERP(info->ps.num_prim_interp) |
|
||||
S_0286D8_PS_W32_EN(info->wave_size == 32) | S_0286D8_PARAM_GEN(param_gen);
|
||||
}
|
||||
|
||||
info->regs.ps.spi_shader_z_format = ac_get_spi_shader_z_format(
|
||||
info->ps.writes_z, info->ps.writes_stencil, info->ps.writes_sample_mask, info->ps.writes_mrt0_alpha);
|
||||
|
Reference in New Issue
Block a user