From 2812efd7ad250af6dbcc72d270dd1d2571f74b57 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 16 May 2025 08:36:15 +0200 Subject: [PATCH] radv: declare and emit NGG_QUERY_BUF_VA on GFX11-GFX11.5 This user SGPR is used to pass the query buffer VA for emulated queries. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 2 +- src/amd/vulkan/radv_shader_args.c | 6 +++--- src/amd/vulkan/radv_shader_args.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 3ac2ab38010..c964d5eeefd 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -10541,7 +10541,7 @@ radv_emit_ngg_state(struct radv_cmd_buffer *cmd_buffer) radeon_begin(cmd_buffer->cs); radeon_set_sh_reg(ngg_state_offset, ngg_state); - if (pdev->info.gfx_level >= GFX12) { + if (pdev->info.gfx_level >= GFX11) { 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) radeon_set_sh_reg(ngg_query_buf_va_offset, cmd_buffer->state.shader_query_buf_va); diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index 39bba66f12e..37cd08140ae 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -453,7 +453,7 @@ declare_unmerged_vs_tes_gs_args(const enum amd_gfx_level gfx_level, const struct if (info->is_ngg) { add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_state, AC_UD_NGG_STATE); - if (gfx_level >= GFX12) + if (gfx_level >= GFX11) add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_query_buf_va, AC_UD_NGG_QUERY_BUF_VA); } add_ud_arg(args, 1, AC_ARG_INT, &args->vgt_esgs_ring_itemsize, AC_UD_VGT_ESGS_RING_ITEMSIZE); @@ -498,7 +498,7 @@ declare_unmerged_vs_tes_gs_args(const enum amd_gfx_level gfx_level, const struct ac_add_preserved(&args->ac, &args->tcs_offchip_layout); if (info->is_ngg) { ac_add_preserved(&args->ac, &args->ngg_state); - if (gfx_level >= GFX12) + if (gfx_level >= GFX11) ac_add_preserved(&args->ac, &args->ngg_query_buf_va); } ac_add_preserved(&args->ac, &args->vgt_esgs_ring_itemsize); @@ -790,7 +790,7 @@ declare_shader_args(const struct radv_device *device, const struct radv_graphics declare_ngg_sgprs(info, args, ngg_needs_state_sgpr); - if (pdev->info.gfx_level >= GFX12 && has_shader_query) + if (pdev->info.gfx_level >= GFX11 && has_shader_query) add_ud_arg(args, 1, AC_ARG_INT, &args->ngg_query_buf_va, AC_UD_NGG_QUERY_BUF_VA); } diff --git a/src/amd/vulkan/radv_shader_args.h b/src/amd/vulkan/radv_shader_args.h index 30931a7ff40..ad9b8fd6a34 100644 --- a/src/amd/vulkan/radv_shader_args.h +++ b/src/amd/vulkan/radv_shader_args.h @@ -87,7 +87,7 @@ struct radv_shader_args { /* NGG */ struct ac_arg ngg_state; struct ac_arg ngg_lds_layout; - struct ac_arg ngg_query_buf_va; /* GFX12+ */ + struct ac_arg ngg_query_buf_va; /* GFX11+ */ /* NGG GS */ struct ac_arg ngg_culling_settings;