From 87f4252a51ff2e6227dceea12f608366cb98e141 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 9 May 2022 15:51:45 +1000 Subject: [PATCH] zink: don't finish barriers cmd buffer if not used. finishing has some cpu overhead, which if the cmd buffer isn't going to be used is pointless. just let it get reset next time. Reviewed-by: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_batch.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index fb85cf3e343..47b2f20293d 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -403,10 +403,12 @@ submit_queue(void *data, void *gdata, int thread_index) bs->is_device_lost = true; goto end; } - if (VKSCR(EndCommandBuffer)(bs->barrier_cmdbuf) != VK_SUCCESS) { - mesa_loge("ZINK: vkEndCommandBuffer failed"); - bs->is_device_lost = true; - goto end; + if (bs->has_barriers) { + if (VKSCR(EndCommandBuffer)(bs->barrier_cmdbuf) != VK_SUCCESS) { + mesa_loge("ZINK: vkEndCommandBuffer failed"); + bs->is_device_lost = true; + goto end; + } } while (util_dynarray_contains(&bs->persistent_resources, struct zink_resource_object*)) {