radv: do not emit VGT_GS_OUT_PRIM_TYPE to ctx_cs on GFX11

Missed that one but it doesn't cause any context rolls.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29132>
This commit is contained in:
Samuel Pitoiset 2024-05-10 12:27:50 +02:00 committed by Marge Bot
parent f228e7ed2d
commit dd3ae170a7
3 changed files with 6 additions and 5 deletions

View file

@ -2340,7 +2340,7 @@ radv_emit_primitive_topology(struct radv_cmd_buffer *cmd_buffer)
radeon_set_config_reg(cmd_buffer->cs, R_008958_VGT_PRIMITIVE_TYPE, d->vk.ia.primitive_topology);
}
radv_emit_vgt_gs_out(device, cmd_buffer->cs, vgt_gs_out_prim_type);
radv_emit_vgt_gs_out(device, cmd_buffer->cs, cmd_buffer->cs, vgt_gs_out_prim_type);
if (loc->sgpr_idx == -1)
return;

View file

@ -3194,7 +3194,7 @@ radv_emit_mesh_shader(const struct radv_device *device, struct radeon_cmdbuf *ct
radeon_emit(cs, ms->info.regs.ms.spi_shader_gs_meshlet_exp_alloc);
}
radv_emit_vgt_gs_out(device, ctx_cs, gs_out);
radv_emit_vgt_gs_out(device, ctx_cs, cs, gs_out);
}
enum radv_ps_in_type {
@ -3496,12 +3496,13 @@ radv_emit_vgt_shader_config(const struct radv_device *device, struct radeon_cmdb
}
void
radv_emit_vgt_gs_out(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs, uint32_t vgt_gs_out_prim_type)
radv_emit_vgt_gs_out(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs, struct radeon_cmdbuf *cs,
uint32_t vgt_gs_out_prim_type)
{
const struct radv_physical_device *pdev = radv_device_physical(device);
if (pdev->info.gfx_level >= GFX11) {
radeon_set_uconfig_reg(ctx_cs, R_030998_VGT_GS_OUT_PRIM_TYPE, vgt_gs_out_prim_type);
radeon_set_uconfig_reg(cs, R_030998_VGT_GS_OUT_PRIM_TYPE, vgt_gs_out_prim_type);
} else {
radeon_set_context_reg(ctx_cs, R_028A6C_VGT_GS_OUT_PRIM_TYPE, vgt_gs_out_prim_type);
}

View file

@ -633,7 +633,7 @@ struct radv_vgt_shader_key radv_get_vgt_shader_key(const struct radv_device *dev
void radv_emit_vgt_shader_config(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs,
const struct radv_vgt_shader_key *key);
void radv_emit_vgt_gs_out(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs,
void radv_emit_vgt_gs_out(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs, struct radeon_cmdbuf *cs,
uint32_t vgt_gs_out_prim_type);
void gfx103_emit_vgt_draw_payload_cntl(struct radeon_cmdbuf *ctx_cs, const struct radv_shader *mesh_shader,