mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 22:08:26 +02:00
radv: fix wave32 support with ESO
For example when RADV_PERFTEST=gewave32 is used, the vgt shader key was incorrect. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28151>
This commit is contained in:
parent
e1c73db01c
commit
1a20942f6a
3 changed files with 6 additions and 13 deletions
|
|
@ -9178,18 +9178,8 @@ radv_emit_graphics_shaders(struct radv_cmd_buffer *cmd_buffer)
|
|||
}
|
||||
|
||||
/* Emit graphics states related to shaders. */
|
||||
struct radv_vgt_shader_key vgt_shader_cfg_key = {
|
||||
.tess = !!cmd_buffer->state.shaders[MESA_SHADER_TESS_CTRL],
|
||||
.gs = !!cmd_buffer->state.shaders[MESA_SHADER_GEOMETRY],
|
||||
.ngg = last_vgt_shader->info.is_ngg,
|
||||
.ngg_passthrough = last_vgt_shader->info.is_ngg_passthrough,
|
||||
.ngg_streamout = last_vgt_shader->info.is_ngg && last_vgt_shader->info.so.num_outputs > 0,
|
||||
};
|
||||
|
||||
if (cmd_buffer->state.shaders[MESA_SHADER_MESH]) {
|
||||
vgt_shader_cfg_key.mesh = 1;
|
||||
vgt_shader_cfg_key.mesh_scratch_ring = cmd_buffer->state.shaders[MESA_SHADER_MESH]->info.ms.needs_ms_scratch_ring;
|
||||
}
|
||||
const struct radv_vgt_shader_key vgt_shader_cfg_key =
|
||||
radv_get_vgt_shader_key(cmd_buffer->device, cmd_buffer->state.shaders, cmd_buffer->state.gs_copy_shader);
|
||||
|
||||
radv_emit_vgt_gs_mode(device, cs, last_vgt_shader);
|
||||
radv_emit_vgt_vertex_reuse(device, cs, radv_get_shader(cmd_buffer->state.shaders, MESA_SHADER_TESS_EVAL));
|
||||
|
|
|
|||
|
|
@ -3567,7 +3567,7 @@ radv_emit_vgt_vertex_reuse(const struct radv_device *device, struct radeon_cmdbu
|
|||
radeon_set_context_reg(ctx_cs, R_028C58_VGT_VERTEX_REUSE_BLOCK_CNTL, S_028C58_VTX_REUSE_DEPTH(vtx_reuse_depth));
|
||||
}
|
||||
|
||||
static struct radv_vgt_shader_key
|
||||
struct radv_vgt_shader_key
|
||||
radv_get_vgt_shader_key(const struct radv_device *device, struct radv_shader **shaders,
|
||||
const struct radv_shader *gs_copy_shader)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3472,6 +3472,9 @@ radv_get_num_vertices_per_prim(const struct radv_graphics_state_key *gfx_state)
|
|||
|
||||
uint32_t radv_get_vgt_gs_out(struct radv_shader **shaders, uint32_t primitive_topology);
|
||||
|
||||
struct radv_vgt_shader_key radv_get_vgt_shader_key(const struct radv_device *device, struct radv_shader **shaders,
|
||||
const struct radv_shader *gs_copy_shader);
|
||||
|
||||
static inline uint32_t
|
||||
radv_translate_fill(VkPolygonMode func)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue