From c718915927523b52f3f21afc004cd8941766d144 Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Sat, 21 Sep 2024 12:56:21 +0200 Subject: [PATCH] fixing release compilation issue --- runtime/Includes/Core/Graphics.inl | 2 +- runtime/Includes/Renderer/Buffer.h | 10 ++++---- runtime/Includes/Renderer/Image.h | 8 +++--- runtime/Includes/Renderer/RenderCore.h | 10 +++----- runtime/Sources/Graphics/PutPixelManager.cpp | 2 +- runtime/Sources/Renderer/Buffer.cpp | 6 ++--- runtime/Sources/Renderer/Image.cpp | 27 ++++++++++---------- runtime/Sources/Renderer/Memory.cpp | 10 +++----- 8 files changed, 36 insertions(+), 39 deletions(-) diff --git a/runtime/Includes/Core/Graphics.inl b/runtime/Includes/Core/Graphics.inl index 5ffa9f9..c0f4c02 100644 --- a/runtime/Includes/Core/Graphics.inl +++ b/runtime/Includes/Core/Graphics.inl @@ -39,10 +39,10 @@ namespace mlx { Sprite& new_sprite = p_scene->CreateSprite(texture); new_sprite.SetPosition(Vec3f{ static_cast(x), static_cast(y), static_cast(m_current_depth) }); - m_current_depth++; } else sprite->SetPosition(Vec3f{ static_cast(x), static_cast(y), static_cast(m_current_depth) }); + m_current_depth++; } void GraphicsSupport::LoadFont(const std::filesystem::path& filepath, float scale) diff --git a/runtime/Includes/Renderer/Buffer.h b/runtime/Includes/Renderer/Buffer.h index 27e7716..0c4dcd1 100644 --- a/runtime/Includes/Renderer/Buffer.h +++ b/runtime/Includes/Renderer/Buffer.h @@ -12,7 +12,7 @@ namespace mlx public: GPUBuffer() = default; - void Init(BufferType type, VkDeviceSize size, VkBufferUsageFlags usage, CPUBuffer data, std::string_view debug_name); + void Init(BufferType type, VkDeviceSize size, VkBufferUsageFlags usage, CPUBuffer data, [[maybe_unused]] std::string_view debug_name); void Destroy() noexcept; bool CopyFrom(const GPUBuffer& buffer) noexcept; @@ -43,7 +43,7 @@ namespace mlx void* p_map = nullptr; private: - void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VmaAllocationCreateInfo alloc_info, std::string_view debug_name); + void CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VmaAllocationCreateInfo alloc_info, [[maybe_unused]] std::string_view debug_name); private: VkBufferUsageFlags m_usage = 0; @@ -52,7 +52,7 @@ namespace mlx class VertexBuffer : public GPUBuffer { public: - inline void Init(std::uint32_t size, VkBufferUsageFlags additional_flags, std::string_view debug_name) { GPUBuffer::Init(BufferType::LowDynamic, size, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | additional_flags, {}, std::move(debug_name)); } + inline void Init(std::uint32_t size, VkBufferUsageFlags additional_flags, [[maybe_unused]] std::string_view debug_name) { GPUBuffer::Init(BufferType::LowDynamic, size, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | additional_flags, {}, std::move(debug_name)); } void SetData(CPUBuffer data); inline void Bind(VkCommandBuffer cmd) const noexcept { VkDeviceSize offset = 0; RenderCore::Get().vkCmdBindVertexBuffers(cmd, 0, 1, &m_buffer, &offset); } }; @@ -60,7 +60,7 @@ namespace mlx class IndexBuffer : public GPUBuffer { public: - inline void Init(std::uint32_t size, VkBufferUsageFlags additional_flags, std::string_view debug_name) { GPUBuffer::Init(BufferType::LowDynamic, size, VK_BUFFER_USAGE_INDEX_BUFFER_BIT | additional_flags, {}, std::move(debug_name)); } + inline void Init(std::uint32_t size, VkBufferUsageFlags additional_flags, [[maybe_unused]] std::string_view debug_name) { GPUBuffer::Init(BufferType::LowDynamic, size, VK_BUFFER_USAGE_INDEX_BUFFER_BIT | additional_flags, {}, std::move(debug_name)); } void SetData(CPUBuffer data); inline void Bind(VkCommandBuffer cmd) const noexcept { RenderCore::Get().vkCmdBindIndexBuffer(cmd, m_buffer, 0, VK_INDEX_TYPE_UINT32); } }; @@ -68,7 +68,7 @@ namespace mlx class UniformBuffer { public: - void Init(std::uint32_t size, std::string_view debug_name); + void Init(std::uint32_t size, [[maybe_unused]] std::string_view debug_name); void SetData(CPUBuffer data, std::size_t frame_index); void Destroy() noexcept; diff --git a/runtime/Includes/Renderer/Image.h b/runtime/Includes/Renderer/Image.h index ae070d7..fe4768e 100644 --- a/runtime/Includes/Renderer/Image.h +++ b/runtime/Includes/Renderer/Image.h @@ -14,7 +14,7 @@ namespace mlx public: Image() = default; - inline void Init(VkImage image, VkFormat format, std::uint32_t width, std::uint32_t height, VkImageLayout layout, std::string_view debug_name) noexcept + inline void Init(VkImage image, VkFormat format, std::uint32_t width, std::uint32_t height, VkImageLayout layout, [[maybe_unused]] std::string_view debug_name) noexcept { m_image = image; m_format = format; @@ -71,7 +71,7 @@ namespace mlx { public: DepthImage() = default; - inline void Init(std::uint32_t width, std::uint32_t height, bool is_multisampled, std::string_view debug_name) + inline void Init(std::uint32_t width, std::uint32_t height, bool is_multisampled, [[maybe_unused]] std::string_view debug_name) { MLX_PROFILE_FUNCTION(); std::vector candidates = { VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT }; @@ -87,12 +87,12 @@ namespace mlx { public: Texture() = default; - Texture(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, std::string_view debug_name) + Texture(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, [[maybe_unused]] std::string_view debug_name) { Init(std::move(pixels), width, height, format, is_multisampled, std::move(debug_name)); } - void Init(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, std::string_view debug_name); + void Init(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, [[maybe_unused]] std::string_view debug_name); void SetPixel(int x, int y, std::uint32_t color) noexcept; int GetPixel(int x, int y) noexcept; diff --git a/runtime/Includes/Renderer/RenderCore.h b/runtime/Includes/Renderer/RenderCore.h index f17b8d6..97f764a 100644 --- a/runtime/Includes/Renderer/RenderCore.h +++ b/runtime/Includes/Renderer/RenderCore.h @@ -7,6 +7,10 @@ namespace mlx { constexpr const int MAX_FRAMES_IN_FLIGHT = 3; + #if defined(DEBUG) && defined(VK_EXT_debug_utils) + #define MLX_HAS_DEBUG_UTILS_FUNCTIONS + #endif + class RenderCore { public: @@ -31,12 +35,6 @@ namespace mlx #undef MLX_VULKAN_INSTANCE_FUNCTION #undef MLX_VULKAN_DEVICE_FUNCTION - #if defined(DEBUG) && defined(VK_EXT_debug_utils) - inline static constexpr bool HAS_DEBUG_UTILS_FUNCTIONS = true; - #else - inline static constexpr bool HAS_DEBUG_UTILS_FUNCTIONS = false; - #endif - ~RenderCore(); private: diff --git a/runtime/Sources/Graphics/PutPixelManager.cpp b/runtime/Sources/Graphics/PutPixelManager.cpp index 67f42dd..b4727cf 100644 --- a/runtime/Sources/Graphics/PutPixelManager.cpp +++ b/runtime/Sources/Graphics/PutPixelManager.cpp @@ -13,7 +13,7 @@ namespace mlx #ifdef DEBUG auto res = m_textures.try_emplace(z, CPUBuffer{}, swapchain_extent.width, swapchain_extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, "mlx_put_pixel_layer_" + std::to_string(z)); #else - auto res = m_textures.try_emplace(z, CPUBuffer{}, swapchain_extent.width, swapchain_extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, {}); + auto res = m_textures.try_emplace(z, CPUBuffer{}, swapchain_extent.width, swapchain_extent.height, VK_FORMAT_R8G8B8A8_SRGB, false, std::string_view{}); #endif res.first->second.SetPixel(x, y, color); return (res.second ? &res.first->second : nullptr); diff --git a/runtime/Sources/Renderer/Buffer.cpp b/runtime/Sources/Renderer/Buffer.cpp index b1cf50a..250bbd6 100644 --- a/runtime/Sources/Renderer/Buffer.cpp +++ b/runtime/Sources/Renderer/Buffer.cpp @@ -4,7 +4,7 @@ namespace mlx { - void GPUBuffer::Init(BufferType type, VkDeviceSize size, VkBufferUsageFlags usage, CPUBuffer data, std::string_view debug_name) + void GPUBuffer::Init(BufferType type, VkDeviceSize size, VkBufferUsageFlags usage, CPUBuffer data, [[maybe_unused]] std::string_view debug_name) { MLX_PROFILE_FUNCTION(); VmaAllocationCreateInfo alloc_info{}; @@ -36,7 +36,7 @@ namespace mlx PushToGPU(); } - void GPUBuffer::CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VmaAllocationCreateInfo alloc_info, std::string_view debug_name) + void GPUBuffer::CreateBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VmaAllocationCreateInfo alloc_info, [[maybe_unused]] std::string_view debug_name) { MLX_PROFILE_FUNCTION(); VkBufferCreateInfo bufferInfo{}; @@ -183,7 +183,7 @@ namespace mlx staging.Destroy(); } - void UniformBuffer::Init(std::uint32_t size, std::string_view debug_name) + void UniformBuffer::Init(std::uint32_t size, [[maybe_unused]] std::string_view debug_name) { MLX_PROFILE_FUNCTION(); for(int i = 0; i < MAX_FRAMES_IN_FLIGHT; i++) diff --git a/runtime/Sources/Renderer/Image.cpp b/runtime/Sources/Renderer/Image.cpp index 61b778b..d74c643 100644 --- a/runtime/Sources/Renderer/Image.cpp +++ b/runtime/Sources/Renderer/Image.cpp @@ -15,7 +15,7 @@ namespace mlx { - void Image::Init(ImageType type, std::uint32_t width, std::uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, bool is_multisampled, std::string_view debug_name) + void Image::Init(ImageType type, std::uint32_t width, std::uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, bool is_multisampled, [[maybe_unused]] std::string_view debug_name) { MLX_PROFILE_FUNCTION(); m_type = type; @@ -56,16 +56,13 @@ namespace mlx { MLX_PROFILE_FUNCTION(); m_image_view = kvfCreateImageView(RenderCore::Get().GetDevice(), m_image, m_format, type, aspect_flags, layer_count); - #ifdef DEBUG - if constexpr(RenderCore::HAS_DEBUG_UTILS_FUNCTIONS) - { - VkDebugUtilsObjectNameInfoEXT name_info{}; - name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; - name_info.objectType = VK_OBJECT_TYPE_IMAGE_VIEW; - name_info.objectHandle = reinterpret_cast(m_image_view); - name_info.pObjectName = m_debug_name.c_str(); - RenderCore::Get().vkSetDebugUtilsObjectNameEXT(RenderCore::Get().GetDevice(), &name_info); - } + #ifdef MLX_HAS_DEBUG_UTILS_FUNCTIONS + VkDebugUtilsObjectNameInfoEXT name_info{}; + name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; + name_info.objectType = VK_OBJECT_TYPE_IMAGE_VIEW; + name_info.objectHandle = reinterpret_cast(m_image_view); + name_info.pObjectName = m_debug_name.c_str(); + RenderCore::Get().vkSetDebugUtilsObjectNameEXT(RenderCore::Get().GetDevice(), &name_info); #endif } @@ -154,7 +151,7 @@ namespace mlx m_image = VK_NULL_HANDLE; } - void Texture::Init(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, std::string_view debug_name) + void Texture::Init(CPUBuffer pixels, std::uint32_t width, std::uint32_t height, VkFormat format, bool is_multisampled, [[maybe_unused]] std::string_view debug_name) { MLX_PROFILE_FUNCTION(); Image::Init(ImageType::Color, width, height, format, VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, is_multisampled, std::move(debug_name)); @@ -229,7 +226,11 @@ namespace mlx #endif m_staging_buffer.emplace(); std::size_t size = m_width * m_height * kvfFormatSize(m_format); - m_staging_buffer->Init(BufferType::Staging, size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, {}, m_debug_name); + #ifdef DEBUG + m_staging_buffer->Init(BufferType::Staging, size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, {}, m_debug_name); + #else + m_staging_buffer->Init(BufferType::Staging, size, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, {}, {}); + #endif VkImageLayout old_layout = m_layout; VkCommandBuffer cmd = kvfCreateCommandBuffer(RenderCore::Get().GetDevice()); diff --git a/runtime/Sources/Renderer/Memory.cpp b/runtime/Sources/Renderer/Memory.cpp index 01e1a5f..92dcb55 100644 --- a/runtime/Sources/Renderer/Memory.cpp +++ b/runtime/Sources/Renderer/Memory.cpp @@ -64,15 +64,14 @@ namespace mlx kvfCheckVk(vmaCreateBuffer(m_allocator, binfo, vinfo, &buffer, &allocation, nullptr)); if(name != nullptr) { - if constexpr(RenderCore::HAS_DEBUG_UTILS_FUNCTIONS) - { + #ifdef MLX_HAS_DEBUG_UTILS_FUNCTIONS VkDebugUtilsObjectNameInfoEXT name_info{}; name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; name_info.objectType = VK_OBJECT_TYPE_BUFFER; name_info.objectHandle = reinterpret_cast(buffer); name_info.pObjectName = name; RenderCore::Get().vkSetDebugUtilsObjectNameEXT(RenderCore::Get().GetDevice(), &name_info); - } + #endif vmaSetAllocationName(m_allocator, allocation, name); } DebugLog("Graphics Allocator : created new buffer '%'", name); @@ -99,15 +98,14 @@ namespace mlx kvfCheckVk(vmaCreateImage(m_allocator, iminfo, vinfo, &image, &allocation, nullptr)); if(name != nullptr) { - if constexpr(RenderCore::HAS_DEBUG_UTILS_FUNCTIONS) - { + #ifdef MLX_HAS_DEBUG_UTILS_FUNCTIONS VkDebugUtilsObjectNameInfoEXT name_info{}; name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; name_info.objectType = VK_OBJECT_TYPE_IMAGE; name_info.objectHandle = reinterpret_cast(image); name_info.pObjectName = name; RenderCore::Get().vkSetDebugUtilsObjectNameEXT(RenderCore::Get().GetDevice(), &name_info); - } + #endif vmaSetAllocationName(m_allocator, allocation, name); } DebugLog("Graphics Allocator : created new image '%'", name);