diff --git a/src/amd/vulkan/radv_debug.c b/src/amd/vulkan/radv_debug.c index 1e4f92caab4..68a1465f69e 100644 --- a/src/amd/vulkan/radv_debug.c +++ b/src/amd/vulkan/radv_debug.c @@ -697,7 +697,7 @@ radv_gpu_hang_occurred(struct radv_queue *queue, enum amd_ip_type ring) } 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; @@ -741,7 +741,7 @@ radv_check_gpu_hangs(struct radv_queue *queue, struct radeon_cmdbuf *cs) 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); } diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index dc78edac3e8..d5cc37496c5 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -94,7 +94,7 @@ enum { 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); diff --git a/src/amd/vulkan/radv_queue.c b/src/amd/vulkan/radv_queue.c index 9f9ab90299a..e151a6d4a4f 100644 --- a/src/amd/vulkan/radv_queue.c +++ b/src/amd/vulkan/radv_queue.c @@ -1633,7 +1633,6 @@ radv_queue_submit_normal(struct radv_queue *queue, struct vk_queue_submit *submi 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; @@ -1662,7 +1661,6 @@ radv_queue_submit_normal(struct radv_queue *queue, struct vk_queue_submit *submi 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; @@ -1677,7 +1675,7 @@ radv_queue_submit_normal(struct radv_queue *queue, struct vk_queue_submit *submi 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) {