From 47b8232e418d65533c65116f2e839bd37946ad4b Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Wed, 4 Aug 2021 17:44:57 -0700 Subject: [PATCH] vkr: improve clean up logging Log the context id/name when a context is destroyed with an instance. Log before vkDeviceWaitIdle when a device is destroyed with objects. Signed-off-by: Chia-I Wu Reviewed-by: Ryan Neph Acked-by: Gert Wollny --- src/venus/vkr_context.c | 3 ++- src/venus/vkr_device.c | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/venus/vkr_context.c b/src/venus/vkr_context.c index 59c98bd..2b8a1c9 100644 --- a/src/venus/vkr_context.c +++ b/src/venus/vkr_context.c @@ -504,7 +504,8 @@ vkr_context_destroy(struct virgl_context *base) } if (ctx->instance) { - vkr_log("destroying context with a valid instance"); + vkr_log("destroying context %d (%s) with a valid instance", ctx->base.ctx_id, + ctx->debug_name); vkr_instance_destroy(ctx, ctx->instance); } diff --git a/src/venus/vkr_device.c b/src/venus/vkr_device.c index e96fd50..65fe172 100644 --- a/src/venus/vkr_device.c +++ b/src/venus/vkr_device.c @@ -336,13 +336,15 @@ void vkr_device_destroy(struct vkr_context *ctx, struct vkr_device *dev) { VkDevice device = dev->base.handle.device; - VkResult ret = vkDeviceWaitIdle(device); - if (ret != VK_SUCCESS) - vkr_log("vkDeviceWaitIdle(%p) failed(%d)", dev, (int32_t)ret); - if (!LIST_IS_EMPTY(&dev->objects)) { + if (!LIST_IS_EMPTY(&dev->objects)) vkr_log("destroying device with valid objects"); + VkResult result = vkDeviceWaitIdle(device); + if (result != VK_SUCCESS) + vkr_log("vkDeviceWaitIdle(%p) failed(%d)", dev, (int32_t)result); + + if (!LIST_IS_EMPTY(&dev->objects)) { struct vkr_object *obj, *obj_tmp; LIST_FOR_EACH_ENTRY_SAFE (obj, obj_tmp, &dev->objects, track_head) vkr_device_object_destroy(ctx, dev, obj);