radv: emit more default states for ESO on GFX10.3+

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27236>
This commit is contained in:
Samuel Pitoiset 2024-01-19 13:26:41 +01:00 committed by Marge Bot
parent b7fdfdc901
commit 6a2b264526
3 changed files with 13 additions and 2 deletions

View file

@ -9077,6 +9077,11 @@ radv_emit_shaders(struct radv_cmd_buffer *cmd_buffer)
radv_emit_vgt_shader_config(device, cs, &vgt_shader_cfg_key);
radv_emit_vgt_gs_out(device, cs, vgt_gs_out);
if (cmd_buffer->device->physical_device->rad_info.gfx_level >= GFX10_3) {
gfx103_emit_vgt_draw_payload_cntl(cs, cmd_buffer->state.shaders[MESA_SHADER_MESH], false);
gfx103_emit_vrs_state(device, cs, NULL, false, false, false);
}
cmd_buffer->state.dirty &= ~RADV_CMD_DIRTY_SHADERS;
}

View file

@ -3532,7 +3532,7 @@ radv_emit_vgt_gs_out(const struct radv_device *device, struct radeon_cmdbuf *ctx
}
}
static void
void
gfx103_emit_vgt_draw_payload_cntl(struct radeon_cmdbuf *ctx_cs, const struct radv_shader *mesh_shader, bool enable_vrs)
{
bool enable_prim_payload = false;
@ -3568,7 +3568,7 @@ gfx103_pipeline_vrs_coarse_shading(const struct radv_device *device, const struc
return true;
}
static void
void
gfx103_emit_vrs_state(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs, const struct radv_shader *ps,
bool enable_vrs, bool enable_vrs_coarse_shading, bool force_vrs_per_vertex)
{

View file

@ -2365,6 +2365,12 @@ void radv_emit_vgt_gs_out(const struct radv_device *device, struct radeon_cmdbuf
void radv_emit_vgt_gs_mode(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs,
const struct radv_shader *last_vgt_api_shader);
void gfx103_emit_vgt_draw_payload_cntl(struct radeon_cmdbuf *ctx_cs, const struct radv_shader *mesh_shader,
bool enable_vrs);
void gfx103_emit_vrs_state(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs, const struct radv_shader *ps,
bool enable_vrs, bool enable_vrs_coarse_shading, bool force_vrs_per_vertex);
void radv_emit_geometry_shader(const struct radv_device *device, struct radeon_cmdbuf *ctx_cs, struct radeon_cmdbuf *cs,
const struct radv_shader *gs, const struct radv_shader *es,
const struct radv_shader *gs_copy_shader);