mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
v3dv: free indirect CSD job with queue cpu
The indirect CSD job is added to the list of jobs when the device do not support CPU queues. Otherwise it is not added, which means the job is not free when the command buffer frees all the resources, generating a leak. This fixes this leak by identifying the job that contains the indirect CSD job, and freeing it before freeing the job itself. Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34892>
This commit is contained in:
parent
626e9e4179
commit
cbd85acf9a
2 changed files with 3 additions and 22 deletions
|
|
@ -161,25 +161,3 @@ dEQP-VK.synchronization2.signal_order.shared_binary_semaphore.write_ssbo_vertex_
|
|||
|
||||
# Leaky in VKCTS 1.4.1.1
|
||||
asan-dEQP-VK.video.*
|
||||
|
||||
# More leaks, pending to investigate
|
||||
asan-dEQP-VK.synchronization.cross_instance.suballocated.write_ssbo_compute_indirect_read_ssbo_vertex.buffer_262144_binary_semaphore_fd
|
||||
asan-dEQP-VK.synchronization.op.single_queue.event.write_ssbo_compute_indirect_read_vertex_input.buffer_16384
|
||||
asan-dEQP-VK.synchronization.op.single_queue.fence.write_draw_indirect_read_image_compute_indirect.image_128x128_r16g16b16a16_uint
|
||||
asan-dEQP-VK.synchronization2.cross_instance.dedicated.write_ssbo_compute_indirect_read_ubo_compute.buffer_16384_binary_semaphore_dma_buf
|
||||
asan-dEQP-VK.synchronization2.cross_instance.suballocated.write_fill_buffer_read_ubo_compute_indirect.buffer_16384_binary_semaphore_fd
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.barrier.write_clear_attachments_read_image_compute_indirect.image_128x128_r8_unorm
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.barrier.write_draw_read_image_compute_indirect.image_128x128_r8g8b8a8_unorm
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_copy_image.image_64x64x8_r32_sfloat
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.barrier.write_image_compute_indirect_read_image_compute_indirect.image_64x64x8_r32_sfloat
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.barrier.write_image_vertex_read_image_compute_indirect.image_128x128_r16_uint_specialized_access_flag
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.binary_semaphore.write_image_compute_indirect_read_image_geometry.image_128x128_r16_uint
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.event.write_blit_image_read_image_compute_indirect.image_64x64x8_r32_sfloat_specialized_access_flag
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.event.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.event.write_ssbo_compute_indirect_read_ssbo_fragment.buffer_262144_specialized_access_flag
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.event.write_ssbo_compute_indirect_read_ubo_texel_geometry.buffer_16384
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.fence.write_copy_image_to_buffer_read_ubo_compute_indirect.buffer_16384
|
||||
asan-dEQP-VK.synchronization2.op.single_queue.fence.write_image_compute_indirect_read_image_vertex.image_64x64x8_r32_sfloat_specialized_access_flag
|
||||
asan-dEQP-VK.synchronization2.timeline_semaphore.device_host.write_image_compute_indirect_read_image_fragment.image_128x128_r16_uint
|
||||
asan-dEQP-VK.synchronization2.timeline_semaphore.one_to_n.write_image_compute_read_image_compute_indirect.image_128x128_r16_uint
|
||||
asan-dEQP-VK.synchronization2.timeline_semaphore.wait_before_signal.write_image_compute_read_image_compute_indirect.image_128x128_r16g16b16a16_uint
|
||||
|
|
|
|||
|
|
@ -260,6 +260,9 @@ cmd_buffer_free_resources(struct v3dv_cmd_buffer *cmd_buffer)
|
|||
{
|
||||
list_for_each_entry_safe(struct v3dv_job, job,
|
||||
&cmd_buffer->jobs, list_link) {
|
||||
if (job->type == V3DV_JOB_TYPE_CPU_CSD_INDIRECT &&
|
||||
cmd_buffer->device->pdevice->caps.cpu_queue)
|
||||
v3dv_job_destroy(job->cpu.csd_indirect.csd_job);
|
||||
v3dv_job_destroy(job);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue