From 2e08c37624bf4a322fb8a23be3c4a7c062472435 Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Fri, 20 Sep 2024 21:43:23 +0200 Subject: [PATCH] fixing bugs --- runtime/Sources/Renderer/Image.cpp | 11 ----------- runtime/Sources/Renderer/Pipelines/Shader.cpp | 2 +- runtime/Sources/Renderer/RenderCore.cpp | 3 +++ 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/runtime/Sources/Renderer/Image.cpp b/runtime/Sources/Renderer/Image.cpp index 6eff769..03cf018 100644 --- a/runtime/Sources/Renderer/Image.cpp +++ b/runtime/Sources/Renderer/Image.cpp @@ -60,27 +60,16 @@ namespace mlx return; bool is_single_time_cmd_buffer = (cmd == VK_NULL_HANDLE); if(is_single_time_cmd_buffer) - { cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice()); - kvfBeginCommandBuffer(cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); - } KvfImageType kvf_type = KVF_IMAGE_OTHER; switch(m_type) { case ImageType::Color: kvf_type = KVF_IMAGE_COLOR; break; case ImageType::Depth: kvf_type = KVF_IMAGE_DEPTH; break; - default: break; } kvfTransitionImageLayout(RenderCore::Get().GetDevice(), m_image, kvf_type, cmd, m_format, m_layout, new_layout, is_single_time_cmd_buffer); m_layout = new_layout; - if(is_single_time_cmd_buffer) - { - RenderCore::Get().vkEndCommandBuffer(cmd); - VkFence fence = kvfCreateFence(RenderCore::Get().GetDevice()); - kvfSubmitSingleTimeCommandBuffer(RenderCore::Get().GetDevice(), cmd, KVF_GRAPHICS_QUEUE, fence); - kvfDestroyFence(RenderCore::Get().GetDevice(), fence); - } } void Image::Clear(VkCommandBuffer cmd, Vec4f color) diff --git a/runtime/Sources/Renderer/Pipelines/Shader.cpp b/runtime/Sources/Renderer/Pipelines/Shader.cpp index fd65276..651e560 100644 --- a/runtime/Sources/Renderer/Pipelines/Shader.cpp +++ b/runtime/Sources/Renderer/Pipelines/Shader.cpp @@ -14,7 +14,7 @@ namespace mlx default : FatalError("wtf"); break; } - m_module = kvfCreateShaderModule(RenderCore::Get().GetDevice(), reinterpret_cast(m_bytecode.data()), m_bytecode.size() * 4); + m_module = kvfCreateShaderModule(RenderCore::Get().GetDevice(), reinterpret_cast(m_bytecode.data()), m_bytecode.size() / 4); DebugLog("Vulkan : shader module created"); GeneratePipelineLayout(m_layout); diff --git a/runtime/Sources/Renderer/RenderCore.cpp b/runtime/Sources/Renderer/RenderCore.cpp index 657f2b0..cbb3be0 100644 --- a/runtime/Sources/Renderer/RenderCore.cpp +++ b/runtime/Sources/Renderer/RenderCore.cpp @@ -90,6 +90,8 @@ namespace mlx LoadKVFDeviceVulkanFunctionPointers(); vkDestroySurfaceKHR(m_instance, surface, nullptr); + + m_allocator.Init(); } #undef MLX_LOAD_FUNCTION @@ -191,6 +193,7 @@ namespace mlx RenderCore::~RenderCore() { WaitDeviceIdle(); + m_allocator.Destroy(); kvfDestroyDevice(m_device); DebugLog("Vulkan : logical device destroyed"); kvfDestroyInstance(m_instance);