From af28ea02a8042dac80e2a691a6aa62033dfe0ee6 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 29 Feb 2020 23:28:59 +0100 Subject: [PATCH] Vulkan usage fixes --- examples/VulkanTest/main.cpp | 10 +++------- include/Nazara/Renderer/RenderWindow.hpp | 1 + include/Nazara/Renderer/RenderWindow.inl | 5 +++++ src/Nazara/VulkanRenderer/VkRenderWindow.cpp | 12 ++++++------ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/examples/VulkanTest/main.cpp b/examples/VulkanTest/main.cpp index e840227dc..f456edf96 100644 --- a/examples/VulkanTest/main.cpp +++ b/examples/VulkanTest/main.cpp @@ -44,12 +44,10 @@ int main() Nz::Vk::Instance& instance = Nz::Vulkan::GetInstance(); - VkDebugReportCallbackCreateInfoEXT callbackCreateInfo; + VkDebugReportCallbackCreateInfoEXT callbackCreateInfo = {}; callbackCreateInfo.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT; - callbackCreateInfo.pNext = nullptr; - callbackCreateInfo.flags = VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT & ~VK_DEBUG_REPORT_INFORMATION_BIT_EXT; + callbackCreateInfo.flags = VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT | VK_DEBUG_REPORT_DEBUG_BIT_EXT ; callbackCreateInfo.pfnCallback = &MyDebugReportCallback; - callbackCreateInfo.pUserData = nullptr; /* Register the callback */ VkDebugReportCallbackEXT callback; @@ -246,8 +244,6 @@ int main() descriptorSet.WriteUniformDescriptor(0, uniformBuffer, 0, uniformSize); Nz::RenderPipelineInfo pipelineInfo; - pipelineInfo.depthBuffer = true; - pipelineInfo.depthCompare = Nz::RendererComparison_Equal; std::unique_ptr pipeline = device->InstantiateRenderPipeline(pipelineInfo); @@ -627,7 +623,7 @@ int main() } } -// instance.vkDestroyDebugReportCallbackEXT(instance, callback, nullptr); + instance.vkDestroyDebugReportCallbackEXT(instance, callback, nullptr); return EXIT_SUCCESS; } diff --git a/include/Nazara/Renderer/RenderWindow.hpp b/include/Nazara/Renderer/RenderWindow.hpp index b15d3bb51..c5838456b 100644 --- a/include/Nazara/Renderer/RenderWindow.hpp +++ b/include/Nazara/Renderer/RenderWindow.hpp @@ -27,6 +27,7 @@ namespace Nz inline RenderWindow(); inline RenderWindow(VideoMode mode, const String& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters()); inline explicit RenderWindow(WindowHandle handle, const RenderWindowParameters& parameters = RenderWindowParameters()); + inline ~RenderWindow(); inline bool Create(VideoMode mode, const String& title, WindowStyleFlags style = WindowStyle_Default, const RenderWindowParameters& parameters = RenderWindowParameters()); inline bool Create(WindowHandle handle, const RenderWindowParameters& parameters = RenderWindowParameters()); diff --git a/include/Nazara/Renderer/RenderWindow.inl b/include/Nazara/Renderer/RenderWindow.inl index 882ad8dd5..7b926ce55 100644 --- a/include/Nazara/Renderer/RenderWindow.inl +++ b/include/Nazara/Renderer/RenderWindow.inl @@ -27,6 +27,11 @@ namespace Nz Create(handle, parameters); } + inline RenderWindow::~RenderWindow() + { + Destroy(); + } + inline bool RenderWindow::Create(VideoMode mode, const String& title, WindowStyleFlags style, const RenderWindowParameters& parameters) { m_parameters = parameters; diff --git a/src/Nazara/VulkanRenderer/VkRenderWindow.cpp b/src/Nazara/VulkanRenderer/VkRenderWindow.cpp index 62056f217..f1822b227 100644 --- a/src/Nazara/VulkanRenderer/VkRenderWindow.cpp +++ b/src/Nazara/VulkanRenderer/VkRenderWindow.cpp @@ -48,7 +48,7 @@ namespace Nz //commandBuffer.SetImageLayout(m_swapchain.GetBuffer(imageIndex).image, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); // Temporary - if (m_depthStencilFormat != VK_FORMAT_MAX_ENUM) + /*if (m_depthStencilFormat != VK_FORMAT_MAX_ENUM) { VkImageSubresourceRange imageRange = { VK_IMAGE_ASPECT_DEPTH_BIT, // VkImageAspectFlags aspectMask @@ -59,7 +59,7 @@ namespace Nz }; commandBuffer.SetImageLayout(m_depthBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, imageRange); - } + }*/ } void VkRenderWindow::BuildPostRenderCommands(UInt32 imageIndex, Vk::CommandBuffer& commandBuffer) @@ -283,18 +283,18 @@ namespace Nz VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp; VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp; VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp; - VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout; - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR // VkImageLayout finalLayout; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout; + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR // VkImageLayout finalLayout; }, { 0, // VkAttachmentDescriptionFlags flags; m_depthStencilFormat, // VkFormat format; VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples; VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp; - VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp storeOp; + VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp storeOp; VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp; VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp; - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout; VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout; }, }