mirror of
https://github.com/seekrs/MacroLibX.git
synced 2026-01-11 14:43:34 +00:00
fixing bugs
This commit is contained in:
@@ -60,27 +60,16 @@ namespace mlx
|
|||||||
return;
|
return;
|
||||||
bool is_single_time_cmd_buffer = (cmd == VK_NULL_HANDLE);
|
bool is_single_time_cmd_buffer = (cmd == VK_NULL_HANDLE);
|
||||||
if(is_single_time_cmd_buffer)
|
if(is_single_time_cmd_buffer)
|
||||||
{
|
|
||||||
cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
|
cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice());
|
||||||
kvfBeginCommandBuffer(cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
|
|
||||||
}
|
|
||||||
KvfImageType kvf_type = KVF_IMAGE_OTHER;
|
KvfImageType kvf_type = KVF_IMAGE_OTHER;
|
||||||
switch(m_type)
|
switch(m_type)
|
||||||
{
|
{
|
||||||
case ImageType::Color: kvf_type = KVF_IMAGE_COLOR; break;
|
case ImageType::Color: kvf_type = KVF_IMAGE_COLOR; break;
|
||||||
case ImageType::Depth: kvf_type = KVF_IMAGE_DEPTH; break;
|
case ImageType::Depth: kvf_type = KVF_IMAGE_DEPTH; break;
|
||||||
|
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
kvfTransitionImageLayout(RenderCore::Get().GetDevice(), m_image, kvf_type, cmd, m_format, m_layout, new_layout, is_single_time_cmd_buffer);
|
kvfTransitionImageLayout(RenderCore::Get().GetDevice(), m_image, kvf_type, cmd, m_format, m_layout, new_layout, is_single_time_cmd_buffer);
|
||||||
m_layout = new_layout;
|
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)
|
void Image::Clear(VkCommandBuffer cmd, Vec4f color)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace mlx
|
|||||||
|
|
||||||
default : FatalError("wtf"); break;
|
default : FatalError("wtf"); break;
|
||||||
}
|
}
|
||||||
m_module = kvfCreateShaderModule(RenderCore::Get().GetDevice(), reinterpret_cast<std::uint32_t*>(m_bytecode.data()), m_bytecode.size() * 4);
|
m_module = kvfCreateShaderModule(RenderCore::Get().GetDevice(), reinterpret_cast<std::uint32_t*>(m_bytecode.data()), m_bytecode.size() / 4);
|
||||||
DebugLog("Vulkan : shader module created");
|
DebugLog("Vulkan : shader module created");
|
||||||
|
|
||||||
GeneratePipelineLayout(m_layout);
|
GeneratePipelineLayout(m_layout);
|
||||||
|
|||||||
@@ -90,6 +90,8 @@ namespace mlx
|
|||||||
LoadKVFDeviceVulkanFunctionPointers();
|
LoadKVFDeviceVulkanFunctionPointers();
|
||||||
|
|
||||||
vkDestroySurfaceKHR(m_instance, surface, nullptr);
|
vkDestroySurfaceKHR(m_instance, surface, nullptr);
|
||||||
|
|
||||||
|
m_allocator.Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef MLX_LOAD_FUNCTION
|
#undef MLX_LOAD_FUNCTION
|
||||||
@@ -191,6 +193,7 @@ namespace mlx
|
|||||||
RenderCore::~RenderCore()
|
RenderCore::~RenderCore()
|
||||||
{
|
{
|
||||||
WaitDeviceIdle();
|
WaitDeviceIdle();
|
||||||
|
m_allocator.Destroy();
|
||||||
kvfDestroyDevice(m_device);
|
kvfDestroyDevice(m_device);
|
||||||
DebugLog("Vulkan : logical device destroyed");
|
DebugLog("Vulkan : logical device destroyed");
|
||||||
kvfDestroyInstance(m_instance);
|
kvfDestroyInstance(m_instance);
|
||||||
|
|||||||
Reference in New Issue
Block a user