From a5a7acb6579b8d40537c85d5bde80effb0b59f3e Mon Sep 17 00:00:00 2001 From: Zeyang Lyu Date: Fri, 12 Jun 2026 10:59:16 +0800 Subject: [PATCH] radv: Add base array layer to htile offset For gfx10_3, the base array layer needs to be included when calculating the HTILE offset. Otherwise, copy_vrs_to_htile writes the VRS rate to an HTILE location different from the one used by depth/stencil. Cc: mesa-stable Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index caed0fecb3a..2be47a3390f 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -10463,8 +10463,9 @@ radv_CmdBeginRendering(VkCommandBuffer commandBuffer, const VkRenderingInfo *pRe uint32_t level = ds_iview->vk.base_mip_level; /* HTILE buffer */ - uint64_t htile_offset = - ds_image->planes[0].surface.meta_offset + ds_image->planes[0].surface.u.gfx9.meta_levels[level].offset; + uint64_t htile_offset = ds_image->planes[0].surface.meta_offset + + (uint64_t)ds_iview->vk.base_array_layer * ds_image->planes[0].surface.meta_slice_size + + ds_image->planes[0].surface.u.gfx9.meta_levels[level].offset; const uint64_t htile_va = ds_image->bindings[0].addr + htile_offset; assert(render_area.offset.x + render_area.extent.width <= ds_image->vk.extent.width &&