mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 19:20:08 +01:00
radv: emit the shader buffer query VA on GFX12
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33041>
This commit is contained in:
parent
2f86338ba3
commit
0901f8fc25
1 changed files with 12 additions and 1 deletions
|
|
@ -7493,7 +7493,8 @@ radv_bind_pre_rast_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv_
|
|||
shader->info.stage == MESA_SHADER_TESS_EVAL || shader->info.stage == MESA_SHADER_GEOMETRY ||
|
||||
shader->info.stage == MESA_SHADER_MESH);
|
||||
|
||||
if (radv_get_user_sgpr_info(shader, AC_UD_NGG_STATE)->sgpr_idx != -1)
|
||||
if (radv_get_user_sgpr_info(shader, AC_UD_NGG_STATE)->sgpr_idx != -1 ||
|
||||
radv_get_user_sgpr_info(shader, AC_UD_NGG_QUERY_BUF_VA)->sgpr_idx != -1)
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_NGG_STATE;
|
||||
|
||||
if (radv_get_user_sgpr_info(shader, AC_UD_STREAMOUT_BUFFERS)->sgpr_idx != -1) {
|
||||
|
|
@ -10408,6 +10409,8 @@ radv_get_ngg_state_query(struct radv_cmd_buffer *cmd_buffer)
|
|||
static void
|
||||
radv_emit_ngg_state(struct radv_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
const struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_shader *last_vgt_shader = cmd_buffer->state.last_vgt_shader;
|
||||
|
||||
const uint32_t ngg_state_offset = radv_get_user_sgpr_loc(last_vgt_shader, AC_UD_NGG_STATE);
|
||||
|
|
@ -10420,6 +10423,14 @@ radv_emit_ngg_state(struct radv_cmd_buffer *cmd_buffer)
|
|||
SET_SGPR_FIELD(NGG_STATE_QUERY, radv_get_ngg_state_query(cmd_buffer));
|
||||
|
||||
radeon_set_sh_reg(cmd_buffer->cs, ngg_state_offset, ngg_state);
|
||||
|
||||
if (pdev->info.gfx_level >= GFX12) {
|
||||
const uint32_t ngg_query_buf_va_offset = radv_get_user_sgpr_loc(last_vgt_shader, AC_UD_NGG_QUERY_BUF_VA);
|
||||
if (!ngg_query_buf_va_offset)
|
||||
return;
|
||||
|
||||
radeon_set_sh_reg(cmd_buffer->cs, ngg_query_buf_va_offset, cmd_buffer->state.shader_query_buf_va);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue