ac/sqtt: move radv_get_expected_buffer_size to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2020-12-08 13:07:43 +01:00
parent ea6176e63e
commit df5233b977
3 changed files with 16 additions and 13 deletions

View file

@ -75,3 +75,15 @@ ac_is_thread_trace_complete(struct radeon_info *rad_info,
*/
return info->cur_offset == info->gfx9_write_counter;
}
uint32_t
ac_get_expected_buffer_size(struct radeon_info *rad_info,
const struct ac_thread_trace_info *info)
{
if (rad_info->chip_class == GFX10) {
uint32_t dropped_cntr_per_se = info->gfx10_dropped_cntr / rad_info->max_se;
return ((info->cur_offset * 32) + dropped_cntr_per_se) / 1024;
}
return (info->gfx9_write_counter * 32) / 1024;
}

View file

@ -82,6 +82,9 @@ ac_thread_trace_get_data_va(struct ac_thread_trace_data *data, uint64_t va, unsi
bool
ac_is_thread_trace_complete(struct radeon_info *rad_info, const struct ac_thread_trace_info *info);
uint32_t
ac_get_expected_buffer_size(struct radeon_info *rad_info,
const struct ac_thread_trace_info *info);
/**
* Identifiers for RGP SQ thread-tracing markers (Table 1)

View file

@ -537,18 +537,6 @@ radv_end_thread_trace(struct radv_queue *queue)
return radv_queue_internal_submit(queue, cs);
}
static uint32_t
radv_get_expected_buffer_size(struct radv_device *device,
const struct ac_thread_trace_info *info)
{
if (device->physical_device->rad_info.chip_class == GFX10) {
uint32_t dropped_cntr_per_se = info->gfx10_dropped_cntr / device->physical_device->rad_info.max_se;
return ((info->cur_offset * 32) + dropped_cntr_per_se) / 1024;
}
return (info->gfx9_write_counter * 32) / 1024;
}
bool
radv_get_thread_trace(struct radv_queue *queue,
struct ac_thread_trace *thread_trace)
@ -571,7 +559,7 @@ radv_get_thread_trace(struct radv_queue *queue,
if (!ac_is_thread_trace_complete(&device->physical_device->rad_info, info)) {
uint32_t expected_size =
radv_get_expected_buffer_size(device, info);
ac_get_expected_buffer_size(&device->physical_device->rad_info, info);
uint32_t available_size =
(info->cur_offset * 32) / 1024;