summaryrefslogtreecommitdiff
path: root/render/vulkan/fence.c
diff options
context:
space:
mode:
Diffstat (limited to 'render/vulkan/fence.c')
-rw-r--r--render/vulkan/fence.c84
1 files changed, 0 insertions, 84 deletions
diff --git a/render/vulkan/fence.c b/render/vulkan/fence.c
deleted file mode 100644
index cee022e..0000000
--- a/render/vulkan/fence.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Rune Game Engine
- * Copyright 2024 Danny Holman <dholman@gymli.org>
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- */
-
-#include "fence.h"
-#include "vkassert.h"
-#include <rune/core/logging.h>
-#include <rune/core/alloc.h>
-
-vkfence_t* create_vkfence(vkdev_t *dev, uint8_t signal) {
- vkfence_t *ret = rune_alloc(sizeof(vkfence_t));
-
- VkFenceCreateInfo fcinfo;
- fcinfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
- fcinfo.pNext = NULL;
- if (signal == 1)
- fcinfo.flags = VK_FENCE_CREATE_SIGNALED_BIT;
- else
- fcinfo.flags = 0;
- vkassert(vkCreateFence(dev->ldev, &fcinfo, NULL, &ret->handle));
- return ret;
-}
-
-void destroy_vkfence(vkfence_t *fence, vkdev_t *dev) {
- if (fence->handle != NULL) {
- vkDestroyFence(dev->ldev, fence->handle, NULL);
- fence->handle = NULL;
- }
- rune_free(fence);
-}
-
-int fence_lock(vkfence_t *fence, vkdev_t *dev, uint64_t timeout) {
- if (fence->signal == 1)
- return 0;
-
- VkResult res = vkWaitForFences(dev->ldev, 1, &fence->handle, VK_TRUE, timeout);
- switch (res) {
- case VK_SUCCESS:
- fence->signal = 1;
- return 0;
- case VK_TIMEOUT:
- log_output(LOG_WARN, "Vulkan fence timed out");
- break;
- case VK_ERROR_DEVICE_LOST:
- log_output(LOG_ERROR, "Lost access to host device");
- break;
- case VK_ERROR_OUT_OF_HOST_MEMORY:
- log_output(LOG_ERROR, "Out of host memory");
- break;
- case VK_ERROR_OUT_OF_DEVICE_MEMORY:
- log_output(LOG_ERROR, "Out of device memory");
- break;
- default:
- log_output(LOG_ERROR, "Unknown error occurred on Vulkan fence");
- break;
- }
-
- return -1;
-}
-
-void fence_unlock(vkfence_t *fence, vkdev_t *dev) {
- if (fence->signal == 0)
- return;
-
- vkassert(vkResetFences(dev->ldev, 1, &fence->handle));
- fence->signal = 0;
-}