ac,radv: add a stride parameter to ac_build_attr_ring_descriptor()

For RadeonSI.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29385>
This commit is contained in:
Samuel Pitoiset 2024-05-24 14:19:27 +02:00
parent bb623b6144
commit 3c5173aabf
3 changed files with 5 additions and 2 deletions

View file

@ -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 */

View file

@ -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 {

View file

@ -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;