diff --git a/src/amd/common/ac_descriptors.c b/src/amd/common/ac_descriptors.c index 291e08623b7..6a3952d8ef9 100644 --- a/src/amd/common/ac_descriptors.c +++ b/src/amd/common/ac_descriptors.c @@ -576,7 +576,7 @@ ac_build_raw_buffer_descriptor(const enum amd_gfx_level gfx_level, uint64_t va, } void -ac_build_attr_ring_descriptor(const enum amd_gfx_level gfx_level, uint64_t va, uint32_t size, uint32_t desc[4]) +ac_build_attr_ring_descriptor(const enum amd_gfx_level gfx_level, uint64_t va, uint32_t size, uint32_t stride, uint32_t desc[4]) { assert(gfx_level >= GFX11); @@ -587,6 +587,7 @@ ac_build_attr_ring_descriptor(const enum amd_gfx_level gfx_level, uint64_t va, u .swizzle = { PIPE_SWIZZLE_X, PIPE_SWIZZLE_Y, PIPE_SWIZZLE_Z, PIPE_SWIZZLE_W, }, + .stride = stride, .gfx10_oob_select = V_008F0C_OOB_SELECT_STRUCTURED_WITH_OFFSET, .swizzle_enable = 3, /* 16B */ .index_stride = 2, /* 32 elements */ diff --git a/src/amd/common/ac_descriptors.h b/src/amd/common/ac_descriptors.h index 6fdc67f43f8..6dbcde97f19 100644 --- a/src/amd/common/ac_descriptors.h +++ b/src/amd/common/ac_descriptors.h @@ -133,6 +133,7 @@ void ac_build_attr_ring_descriptor(const enum amd_gfx_level gfx_level, uint64_t va, uint32_t size, + uint32_t stride, uint32_t desc[4]); struct ac_ds_state { diff --git a/src/amd/vulkan/radv_queue.c b/src/amd/vulkan/radv_queue.c index 5233d6653e1..925232aed48 100644 --- a/src/amd/vulkan/radv_queue.c +++ b/src/amd/vulkan/radv_queue.c @@ -341,7 +341,8 @@ radv_fill_shader_rings(struct radv_device *device, uint32_t *desc, struct radeon if (attr_ring_bo) { assert(pdev->info.gfx_level >= GFX11); - ac_build_attr_ring_descriptor(pdev->info.gfx_level, radv_buffer_get_va(attr_ring_bo), attr_ring_size, &desc[0]); + ac_build_attr_ring_descriptor(pdev->info.gfx_level, radv_buffer_get_va(attr_ring_bo), attr_ring_size, 0, + &desc[0]); } desc += 4;