Module: Mesa Branch: master Commit: 01c62fca0a951410b6b67c1727810b5a3836b092 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=01c62fca0a951410b6b67c1727810b5a3836b092
Author: Mike Blumenkrantz <[email protected]> Date: Sun Apr 4 13:02:40 2021 -0400 zink: use zink_screen_handle_vkresult() for fence and timeline waiting more consistent handling and some code size reduction Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509> --- src/gallium/drivers/zink/zink_context.c | 18 ++++++------------ src/gallium/drivers/zink/zink_fence.c | 11 +---------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 46d21f695fc..a5b6f5999c1 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -1836,20 +1836,14 @@ timeline_wait(struct zink_context *ctx, uint32_t batch_id, uint64_t timeout) bool success = false; if (screen->device_lost) return true; - switch (screen->vk_WaitSemaphores(screen->dev, &wi, timeout)) { - case VK_SUCCESS: - success = true; - break; - case VK_ERROR_DEVICE_LOST: - if (ctx->reset.reset) - ctx->reset.reset(ctx->reset.data, PIPE_GUILTY_CONTEXT_RESET); - screen->device_lost = true; - break; - default: - break; - } + VkResult ret = screen->vk_WaitSemaphores(screen->dev, &wi, timeout); + success = zink_screen_handle_vkresult(screen, ret); + if (success) zink_screen_update_last_finished(screen, batch_id); + else if (screen->device_lost && ctx->reset.reset) + ctx->reset.reset(ctx->reset.data, PIPE_GUILTY_CONTEXT_RESET); + return success; } diff --git a/src/gallium/drivers/zink/zink_fence.c b/src/gallium/drivers/zink/zink_fence.c index 5f76a95adbb..7f96068beec 100644 --- a/src/gallium/drivers/zink/zink_fence.c +++ b/src/gallium/drivers/zink/zink_fence.c @@ -154,16 +154,7 @@ zink_vkfence_wait(struct zink_screen *screen, struct zink_fence *fence, uint64_t ret = vkWaitForFences(screen->dev, 1, &fence->fence, VK_TRUE, timeout_ns); else ret = vkGetFenceStatus(screen->dev, fence->fence); - switch (ret) { - case VK_SUCCESS: - success = true; - break; - case VK_ERROR_DEVICE_LOST: - screen->device_lost = true; - break; - default: - break; - } + success = zink_screen_handle_vkresult(screen, ret); if (success) { p_atomic_set(&fence->completed, true); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
