}
void
-radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_cmdbuf *cs)
+radv_check_gpu_hangs(struct radv_queue *queue, const struct radv_winsys_submit_info *submit_info)
{
struct radv_device *device = queue->device;
enum amd_ip_type ring;
snprintf(dump_path, sizeof(dump_path), "%s/%s", dump_dir, "trace.log");
f = fopen(dump_path, "w+");
if (f) {
- radv_dump_trace(queue->device, cs, f);
+ radv_dump_trace(queue->device, submit_info->cs_array[0], f);
fclose(f);
}
bool radv_init_trace(struct radv_device *device);
void radv_finish_trace(struct radv_device *device);
-void radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_cmdbuf *cs);
+void radv_check_gpu_hangs(struct radv_queue *queue, const struct radv_winsys_submit_info *submit_info);
void radv_print_spirv(const char *data, uint32_t size, FILE *fp);
const bool last_submit = j + advance == cmd_buffer_count;
bool submit_ace = false;
unsigned num_submitted_cs = 0;
- unsigned cs_idx = 0;
if (queue->device->trace_bo)
*queue->device->trace_id_ptr = 0;
cs_array[num_submitted_cs++] = cmd_buffer->cs;
chainable = can_chain_next ? cmd_buffer->cs : NULL;
- cs_idx = num_submitted_cs - 1;
}
submit.cs_count = num_submitted_cs;
goto fail;
if (queue->device->trace_bo) {
- radv_check_gpu_hangs(queue, cs_array[cs_idx]);
+ radv_check_gpu_hangs(queue, &submit);
}
if (queue->device->tma_bo) {