radv: move the tess factor ring after the tess offchip ring

to match radeonsi

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34544>
This commit is contained in:
Marek Olšák
2025-04-14 19:43:44 -04:00
parent c057d9105f
commit ea294349bd
3 changed files with 6 additions and 8 deletions
+2 -3
View File
@@ -2472,10 +2472,9 @@ void ac_get_hs_info(const struct radeon_info *info,
S_0089B0_OFFCHIP_GRANULARITY(wg_size_enum);
}
hs->tess_factor_ring_size = 48 * 1024 * info->max_se;
hs->tess_offchip_ring_offset = align(hs->tess_factor_ring_size, 64 * 1024);
hs->tess_offchip_ring_size = num_workgroups * wg_size_in_dwords * 4;
hs->total_tess_ring_size = hs->tess_offchip_ring_offset + hs->tess_offchip_ring_size;
hs->tess_factor_ring_size = 48 * 1024 * info->max_se;
hs->total_tess_ring_size = hs->tess_offchip_ring_size + hs->tess_factor_ring_size;
}
static uint16_t get_task_num_entries(enum radeon_family fam)
-1
View File
@@ -350,7 +350,6 @@ unsigned ac_get_compute_resource_limits(const struct radeon_info *info,
struct ac_hs_info {
uint32_t hs_offchip_param;
uint32_t tess_factor_ring_size;
uint32_t tess_offchip_ring_offset;
uint32_t tess_offchip_ring_size;
uint32_t total_tess_ring_size;
};
+4 -4
View File
@@ -313,10 +313,10 @@ radv_fill_shader_rings(struct radv_device *device, uint32_t *desc, struct radeon
desc += 8;
if (tess_rings_bo) {
radv_set_ring_buffer(pdev, tess_rings_bo, 0, pdev->hs.tess_factor_ring_size, false, false, true, 0, 0, &desc[0]);
radv_set_ring_buffer(pdev, tess_rings_bo, pdev->hs.tess_offchip_ring_size, pdev->hs.tess_factor_ring_size, false,
false, true, 0, 0, &desc[0]);
radv_set_ring_buffer(pdev, tess_rings_bo, pdev->hs.tess_offchip_ring_offset, pdev->hs.tess_offchip_ring_size,
false, false, true, 0, 0, &desc[4]);
radv_set_ring_buffer(pdev, tess_rings_bo, 0, pdev->hs.tess_offchip_ring_size, false, false, true, 0, 0, &desc[4]);
}
desc += 8;
@@ -398,7 +398,7 @@ radv_emit_tess_factor_ring(struct radv_device *device, struct radeon_cmdbuf *cs,
return;
tf_ring_size = pdev->hs.tess_factor_ring_size / 4;
tf_va = radv_buffer_get_va(tess_rings_bo);
tf_va = radv_buffer_get_va(tess_rings_bo) + pdev->hs.tess_offchip_ring_size;
radv_cs_add_buffer(device->ws, cs, tess_rings_bo);