diff options
| author | Egor <egor.yusov@gmail.com> | 2018-11-03 07:40:12 +0000 |
|---|---|---|
| committer | Egor <egor.yusov@gmail.com> | 2018-11-03 07:40:12 +0000 |
| commit | 0cb37acdadbe609f3e0d31c990f47c4ef9c8dd31 (patch) | |
| tree | 7665de2338d6b295c5c7e41c67f76e530afe24d9 /Graphics | |
| parent | Fixed few linux build issues (diff) | |
| download | DiligentCore-0cb37acdadbe609f3e0d31c990f47c4ef9c8dd31.tar.gz DiligentCore-0cb37acdadbe609f3e0d31c990f47c4ef9c8dd31.zip | |
Fixed multiple linux build issues in Vk backend
Diffstat (limited to 'Graphics')
19 files changed, 82 insertions, 63 deletions
diff --git a/Graphics/GLSLTools/include/SPIRVShaderResources.h b/Graphics/GLSLTools/include/SPIRVShaderResources.h index 56c4253f..0a798495 100644 --- a/Graphics/GLSLTools/include/SPIRVShaderResources.h +++ b/Graphics/GLSLTools/include/SPIRVShaderResources.h @@ -378,14 +378,14 @@ private: Uint32 NumShaderStageInputs, size_t ResourceNamesPoolSize); - __forceinline SPIRVShaderResourceAttribs& GetResAttribs(Uint32 n, Uint32 NumResources, Uint32 Offset)noexcept + SPIRVShaderResourceAttribs& GetResAttribs(Uint32 n, Uint32 NumResources, Uint32 Offset)noexcept { VERIFY(n < NumResources, "Resource index (", n, ") is out of range. Total resource count: ", NumResources); VERIFY_EXPR(Offset + n < m_TotalResources); return reinterpret_cast<SPIRVShaderResourceAttribs*>(m_MemoryBuffer.get())[Offset + n]; } - __forceinline const SPIRVShaderResourceAttribs& GetResAttribs(Uint32 n, Uint32 NumResources, Uint32 Offset)const noexcept + const SPIRVShaderResourceAttribs& GetResAttribs(Uint32 n, Uint32 NumResources, Uint32 Offset)const noexcept { VERIFY(n < NumResources, "Resource index (", n, ") is out of range. Total resource count: ", NumResources); VERIFY_EXPR(Offset + n < m_TotalResources); diff --git a/Graphics/GraphicsEngineNextGenBase/include/DeviceContextNextGenBase.h b/Graphics/GraphicsEngineNextGenBase/include/DeviceContextNextGenBase.h index aaf1a615..8e3e6fa1 100644 --- a/Graphics/GraphicsEngineNextGenBase/include/DeviceContextNextGenBase.h +++ b/Graphics/GraphicsEngineNextGenBase/include/DeviceContextNextGenBase.h @@ -64,7 +64,7 @@ protected: template<typename RenderDeviceImplType> void EndFrame(RenderDeviceImplType& RenderDeviceImpl) { - if (m_bIsDeferred) + if (this->m_bIsDeferred) { // For deferred context, reset submitted cmd queue mask m_SubmittedBuffersCmdQueueMask = 0; diff --git a/Graphics/GraphicsEngineNextGenBase/include/DynamicHeap.h b/Graphics/GraphicsEngineNextGenBase/include/DynamicHeap.h index 7f19dea6..16fcd8b0 100644 --- a/Graphics/GraphicsEngineNextGenBase/include/DynamicHeap.h +++ b/Graphics/GraphicsEngineNextGenBase/include/DynamicHeap.h @@ -98,7 +98,11 @@ public: MasterBlockListBasedManager(IMemoryAllocator& Allocator, Uint32 Size) : m_AllocationsMgr(Size, Allocator) - {} + { +#ifdef DEVELOPMENT + m_MasterBlockCounter = 0; +#endif + } MasterBlockListBasedManager (const MasterBlockListBasedManager&) = delete; MasterBlockListBasedManager ( MasterBlockListBasedManager&&) = delete; @@ -176,7 +180,7 @@ private: VariableSizeAllocationsManager m_AllocationsMgr; #ifdef DEVELOPMENT - std::atomic_int32_t m_MasterBlockCounter = 0; + std::atomic_int32_t m_MasterBlockCounter; #endif }; diff --git a/Graphics/GraphicsEngineNextGenBase/include/RenderDeviceNextGenBase.h b/Graphics/GraphicsEngineNextGenBase/include/RenderDeviceNextGenBase.h index 0af65ece..a271a882 100644 --- a/Graphics/GraphicsEngineNextGenBase/include/RenderDeviceNextGenBase.h +++ b/Graphics/GraphicsEngineNextGenBase/include/RenderDeviceNextGenBase.h @@ -71,9 +71,9 @@ public: FenceSize), m_CmdQueueCount(CmdQueueCount) { - m_CommandQueues = reinterpret_cast<CommandQueue*>(ALLOCATE(m_RawMemAllocator, "Raw memory for the device command/release queues", sizeof(CommandQueue)*m_CmdQueueCount)); + m_CommandQueues = reinterpret_cast<CommandQueue*>(ALLOCATE(this->m_RawMemAllocator, "Raw memory for the device command/release queues", sizeof(CommandQueue)*m_CmdQueueCount)); for(size_t q=0; q < m_CmdQueueCount; ++q) - new(m_CommandQueues+q)CommandQueue(RefCntAutoPtr<CommandQueueType>(Queues[q]), m_RawMemAllocator); + new(m_CommandQueues+q)CommandQueue(RefCntAutoPtr<CommandQueueType>(Queues[q]), this->m_RawMemAllocator); } ~RenderDeviceNextGenBase() @@ -282,7 +282,7 @@ protected: DEV_CHECK_ERR(Queue.ReleaseQueue.GetPendingReleaseResourceCount() == 0, "All resources must be released before destroying a command queue"); Queue.~CommandQueue(); } - m_RawMemAllocator.Free(m_CommandQueues); + this->m_RawMemAllocator.Free(m_CommandQueues); m_CommandQueues = nullptr; } } @@ -292,7 +292,9 @@ protected: CommandQueue(RefCntAutoPtr<CommandQueueType> _CmdQueue, IMemoryAllocator& Allocator)noexcept : CmdQueue (std::move(_CmdQueue)), ReleaseQueue(Allocator) - {} + { + NextCmdBufferNumber = 0; + } CommandQueue (const CommandQueue& rhs) = delete; CommandQueue ( CommandQueue&& rhs) = delete; @@ -300,7 +302,7 @@ protected: CommandQueue& operator = ( CommandQueue&& rhs) = delete; std::mutex Mtx; - Atomics::Int64 NextCmdBufferNumber = 0; + Atomics::AtomicInt64 NextCmdBufferNumber; RefCntAutoPtr<CommandQueueType> CmdQueue; ResourceReleaseQueue<DynamicStaleResourceWrapper> ReleaseQueue; }; diff --git a/Graphics/GraphicsEngineVulkan/include/CommandPoolManager.h b/Graphics/GraphicsEngineVulkan/include/CommandPoolManager.h index d7bf771e..e7807dba 100644 --- a/Graphics/GraphicsEngineVulkan/include/CommandPoolManager.h +++ b/Graphics/GraphicsEngineVulkan/include/CommandPoolManager.h @@ -73,7 +73,7 @@ private: std::deque< VulkanUtilities::CommandPoolWrapper, STDAllocatorRawMem<VulkanUtilities::CommandPoolWrapper> > m_CmdPools; #ifdef DEVELOPMENT - std::atomic_int32_t m_AllocatedPoolCounter = 0; + std::atomic_int32_t m_AllocatedPoolCounter; #endif }; diff --git a/Graphics/GraphicsEngineVulkan/include/DescriptorPoolManager.h b/Graphics/GraphicsEngineVulkan/include/DescriptorPoolManager.h index a0200ee6..6749b697 100644 --- a/Graphics/GraphicsEngineVulkan/include/DescriptorPoolManager.h +++ b/Graphics/GraphicsEngineVulkan/include/DescriptorPoolManager.h @@ -136,6 +136,9 @@ public: m_MaxSets (MaxSets), m_AllowFreeing(AllowFreeing) { +#ifdef DEVELOPMENT + m_AllocatedPoolCounter = 0; +#endif } ~DescriptorPoolManager(); @@ -170,7 +173,7 @@ private: void FreePool(VulkanUtilities::DescriptorPoolWrapper&& Pool); #ifdef DEVELOPMENT - std::atomic_int32_t m_AllocatedPoolCounter = 0; + std::atomic_int32_t m_AllocatedPoolCounter; #endif }; @@ -188,6 +191,9 @@ public: bool AllowFreeing) noexcept: DescriptorPoolManager(DeviceVkImpl, std::move(PoolName), std::move(PoolSizes), MaxSets, AllowFreeing) { +#ifdef DEVELOPMENT + m_AllocatedSetCounter = 0; +#endif } ~DescriptorSetAllocator(); @@ -202,7 +208,7 @@ private: void FreeDescriptorSet(VkDescriptorSet Set, VkDescriptorPool Pool, Uint64 QueueMask); #ifdef DEVELOPMENT - std::atomic_int32_t m_AllocatedSetCounter = 0; + std::atomic_int32_t m_AllocatedSetCounter; #endif }; diff --git a/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.h b/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.h index 71f7a28c..eff4aff2 100644 --- a/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.h +++ b/Graphics/GraphicsEngineVulkan/include/DeviceContextVkImpl.h @@ -38,9 +38,9 @@ #include "DescriptorPoolManager.h" #include "PipelineLayout.h" #include "GenerateMipsVkHelper.h" -#include "BufferVKImpl.h" -#include "TextureViewVKImpl.h" -#include "PipelineStateVKImpl.h" +#include "BufferVkImpl.h" +#include "TextureViewVkImpl.h" +#include "PipelineStateVkImpl.h" #include "HashUtils.h" namespace Diligent @@ -180,7 +180,18 @@ private: void CommitViewports(); void CommitScissorRects(); - inline void EnsureVkCmdBuffer(); + inline void EnsureVkCmdBuffer() + { + // Make sure that the number of commands in the context is at least one, + // so that the context cannot be disposed by Flush() + m_State.NumCommands = m_State.NumCommands != 0 ? m_State.NumCommands : 1; + if (m_CommandBuffer.GetVkCmdBuffer() == VK_NULL_HANDLE) + { + auto vkCmdBuff = m_CmdPool.GetCommandBuffer(); + m_CommandBuffer.SetVkCmdBuffer(vkCmdBuff); + } + } + inline void DisposeVkCmdBuffer(Uint32 CmdQueue, VkCommandBuffer vkCmdBuff, Uint64 FenceValue); inline void DisposeCurrentCmdBuffer(Uint32 CmdQueue, Uint64 FenceValue); diff --git a/Graphics/GraphicsEngineVulkan/include/VulkanDynamicHeap.h b/Graphics/GraphicsEngineVulkan/include/VulkanDynamicHeap.h index b76d0d6c..fe902029 100644 --- a/Graphics/GraphicsEngineVulkan/include/VulkanDynamicHeap.h +++ b/Graphics/GraphicsEngineVulkan/include/VulkanDynamicHeap.h @@ -24,7 +24,7 @@ #pragma once #include <mutex> -#include "Vulkan.h" +#include "vulkan.h" #include "VulkanUtilities/VulkanMemoryManager.h" #include "VulkanUtilities/VulkanLogicalDevice.h" #include "VulkanUtilities/VulkanObjectWrappers.h" diff --git a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanCommandBufferPool.h b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanCommandBufferPool.h index 41e3cdf3..dad99285 100644 --- a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanCommandBufferPool.h +++ b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanCommandBufferPool.h @@ -50,7 +50,7 @@ namespace VulkanUtilities VkCommandBuffer GetCommandBuffer(const char* DebugName = ""); // The GPU must have finished with the command buffer being returned to the pool void FreeCommandBuffer(VkCommandBuffer&& CmdBuffer); - + CommandPoolWrapper&& Release(); #ifdef DEVELOPMENT @@ -61,11 +61,11 @@ namespace VulkanUtilities // Shared point to logical device must be defined before the command pool std::shared_ptr<const VulkanLogicalDevice> m_LogicalDevice; CommandPoolWrapper m_CmdPool; - + std::mutex m_Mutex; std::deque< VkCommandBuffer > m_CmdBuffers; #ifdef DEVELOPMENT - std::atomic_int32_t m_BuffCounter = 0; + std::atomic_int32_t m_BuffCounter; #endif }; } diff --git a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanLogicalDevice.h b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanLogicalDevice.h index a9cf747d..6d2f8e77 100644 --- a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanLogicalDevice.h +++ b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanLogicalDevice.h @@ -25,10 +25,29 @@ #include <memory> #include "vulkan.h" -#include "VulkanObjectWrappers.h" namespace VulkanUtilities { + template<typename VulkanObjectType> + class VulkanObjectWrapper; + + using CommandPoolWrapper = VulkanObjectWrapper<VkCommandPool>; + using BufferWrapper = VulkanObjectWrapper<VkBuffer>; + using BufferViewWrapper = VulkanObjectWrapper<VkBufferView>; + using ImageWrapper = VulkanObjectWrapper<VkImage>; + using ImageViewWrapper = VulkanObjectWrapper<VkImageView>; + using DeviceMemoryWrapper = VulkanObjectWrapper<VkDeviceMemory>; + using FenceWrapper = VulkanObjectWrapper<VkFence>; + using RenderPassWrapper = VulkanObjectWrapper<VkRenderPass>; + using PipelineWrapper = VulkanObjectWrapper<VkPipeline>; + using ShaderModuleWrapper = VulkanObjectWrapper<VkShaderModule>; + using PipelineLayoutWrapper = VulkanObjectWrapper<VkPipelineLayout>; + using SamplerWrapper = VulkanObjectWrapper<VkSampler>; + using FramebufferWrapper = VulkanObjectWrapper<VkFramebuffer>; + using DescriptorPoolWrapper = VulkanObjectWrapper<VkDescriptorPool>; + using DescriptorSetLayoutWrapper = VulkanObjectWrapper<VkDescriptorSetLayout>; + using SemaphoreWrapper = VulkanObjectWrapper<VkSemaphore>; + class VulkanLogicalDevice : public std::enable_shared_from_this<VulkanLogicalDevice> { public: @@ -80,7 +99,7 @@ namespace VulkanUtilities DescriptorPoolWrapper CreateDescriptorPool(const VkDescriptorPoolCreateInfo &DescrPoolCI, const char* DebugName = "")const; DescriptorSetLayoutWrapper CreateDescriptorSetLayout(const VkDescriptorSetLayoutCreateInfo &LayoutCI, const char* DebugName = "")const; SemaphoreWrapper CreateSemaphore(const VkSemaphoreCreateInfo &SemaphoreCI, const char* DebugName = "")const; - + VkCommandBuffer AllocateVkCommandBuffer(const VkCommandBufferAllocateInfo &AllocInfo, const char* DebugName = "")const; VkDescriptorSet AllocateVkDescriptorSet(const VkDescriptorSetAllocateInfo &AllocInfo, const char* DebugName = "")const; @@ -119,7 +138,7 @@ namespace VulkanUtilities const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies)const; - + VkResult ResetCommandPool(VkCommandPool vkCmdPool, VkCommandPoolResetFlags flags = 0)const; diff --git a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanObjectWrappers.h b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanObjectWrappers.h index 6029f489..c7f94f64 100644 --- a/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanObjectWrappers.h +++ b/Graphics/GraphicsEngineVulkan/include/VulkanUtilities/VulkanObjectWrappers.h @@ -24,12 +24,10 @@ #pragma once #include <memory> -#include "vulkan.h" +#include "VulkanLogicalDevice.h" namespace VulkanUtilities { - class VulkanLogicalDevice; - template<typename VulkanObjectType> class VulkanObjectWrapper { @@ -97,21 +95,4 @@ namespace VulkanUtilities std::shared_ptr<const VulkanLogicalDevice> m_pLogicalDevice; VulkanObjectType m_VkObject; }; - - using CommandPoolWrapper = VulkanObjectWrapper<VkCommandPool>; - using BufferWrapper = VulkanObjectWrapper<VkBuffer>; - using BufferViewWrapper = VulkanObjectWrapper<VkBufferView>; - using ImageWrapper = VulkanObjectWrapper<VkImage>; - using ImageViewWrapper = VulkanObjectWrapper<VkImageView>; - using DeviceMemoryWrapper = VulkanObjectWrapper<VkDeviceMemory>; - using FenceWrapper = VulkanObjectWrapper<VkFence>; - using RenderPassWrapper = VulkanObjectWrapper<VkRenderPass>; - using PipelineWrapper = VulkanObjectWrapper<VkPipeline>; - using ShaderModuleWrapper = VulkanObjectWrapper<VkShaderModule>; - using PipelineLayoutWrapper = VulkanObjectWrapper<VkPipelineLayout>; - using SamplerWrapper = VulkanObjectWrapper<VkSampler>; - using FramebufferWrapper = VulkanObjectWrapper<VkFramebuffer>; - using DescriptorPoolWrapper = VulkanObjectWrapper<VkDescriptorPool>; - using DescriptorSetLayoutWrapper = VulkanObjectWrapper<VkDescriptorSetLayout>; - using SemaphoreWrapper = VulkanObjectWrapper<VkSemaphore>; } diff --git a/Graphics/GraphicsEngineVulkan/src/CommandPoolManager.cpp b/Graphics/GraphicsEngineVulkan/src/CommandPoolManager.cpp index 2702172d..f8f1c7be 100644 --- a/Graphics/GraphicsEngineVulkan/src/CommandPoolManager.cpp +++ b/Graphics/GraphicsEngineVulkan/src/CommandPoolManager.cpp @@ -38,6 +38,9 @@ CommandPoolManager::CommandPoolManager(RenderDeviceVkImpl& DeviceVkImpl, m_CmdPoolFlags (flags), m_CmdPools (STD_ALLOCATOR_RAW_MEM(VulkanUtilities::CommandPoolWrapper, GetRawAllocator(), "Allocator for deque<VulkanUtilities::CommandPoolWrapper>")) { +#ifdef DEVELOPMENT + m_AllocatedPoolCounter = 0; +#endif } VulkanUtilities::CommandPoolWrapper CommandPoolManager::AllocateCommandPool(const char* DebugName) diff --git a/Graphics/GraphicsEngineVulkan/src/CommandQueueVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/CommandQueueVkImpl.cpp index 6e3361d3..53a1d193 100644 --- a/Graphics/GraphicsEngineVulkan/src/CommandQueueVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/CommandQueueVkImpl.cpp @@ -52,8 +52,8 @@ IMPLEMENT_QUERY_INTERFACE( CommandQueueVkImpl, IID_CommandQueueVk, TBase ) Uint64 CommandQueueVkImpl::Submit(const VkSubmitInfo& SubmitInfo) { std::lock_guard<std::mutex> Lock(m_QueueMutex); - - auto FenceValue = m_NextFenceValue; + + Atomics::Int64 FenceValue = m_NextFenceValue; // Increment the value before submitting the buffer to be overly safe Atomics::AtomicIncrement(m_NextFenceValue); diff --git a/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp index cffc5591..767ecb02 100644 --- a/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/DeviceContextVkImpl.cpp @@ -137,18 +137,6 @@ namespace Diligent } IMPLEMENT_QUERY_INTERFACE( DeviceContextVkImpl, IID_DeviceContextVk, TDeviceContextBase ) - - inline void DeviceContextVkImpl::EnsureVkCmdBuffer() - { - // Make sure that the number of commands in the context is at least one, - // so that the context cannot be disposed by Flush() - m_State.NumCommands = m_State.NumCommands != 0 ? m_State.NumCommands : 1; - if (m_CommandBuffer.GetVkCmdBuffer() == VK_NULL_HANDLE) - { - auto vkCmdBuff = m_CmdPool.GetCommandBuffer(); - m_CommandBuffer.SetVkCmdBuffer(vkCmdBuff); - } - } void DeviceContextVkImpl::DisposeVkCmdBuffer(Uint32 CmdQueue, VkCommandBuffer vkCmdBuff, Uint64 FenceValue) { @@ -188,7 +176,7 @@ namespace Diligent VkCommandBuffer vkCmdBuff; VulkanUtilities::VulkanCommandBufferPool* Pool; }; - + auto& ReleaseQueue = m_pDevice.RawPtr<RenderDeviceVkImpl>()->GetReleaseQueue(CmdQueue); ReleaseQueue.DiscardResource(CmdBufferDeleter{vkCmdBuff, m_CmdPool}, FenceValue); } diff --git a/Graphics/GraphicsEngineVulkan/src/GenerateMipsVkHelper.cpp b/Graphics/GraphicsEngineVulkan/src/GenerateMipsVkHelper.cpp index d894d432..9a60af88 100644 --- a/Graphics/GraphicsEngineVulkan/src/GenerateMipsVkHelper.cpp +++ b/Graphics/GraphicsEngineVulkan/src/GenerateMipsVkHelper.cpp @@ -29,6 +29,7 @@ #include "TextureViewVkImpl.h" #include "TextureVkImpl.h" #include "MapHelper.h" +#include "PlatformMisc.h" #include "../../GraphicsTools/include/ShaderMacroHelper.h" #include "../../GraphicsTools/include/CommonlyUsedStates.h" @@ -248,8 +249,7 @@ namespace Diligent // expensive. Maybe we can update the code later to compute sample weights for // each successive downsample. We use _BitScanForward to count number of zeros // in the low bits. Zeros indicate we can divide by two without truncating. - uint32_t AdditionalMips; - _BitScanForward((unsigned long*)&AdditionalMips, DstWidth | DstHeight); + uint32_t AdditionalMips = PlatformMisc::GetLSB(DstWidth | DstHeight); uint32_t NumMips = 1 + (AdditionalMips > 3 ? 3 : AdditionalMips); if (TopMip + NumMips > TexDesc.MipLevels - 1) NumMips = TexDesc.MipLevels - 1 - TopMip; diff --git a/Graphics/GraphicsEngineVulkan/src/TextureVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/TextureVkImpl.cpp index 58e99eb5..97381efd 100644 --- a/Graphics/GraphicsEngineVulkan/src/TextureVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/TextureVkImpl.cpp @@ -201,7 +201,7 @@ TextureVkImpl :: TextureVkImpl(IReferenceCounters* pRefCounters, std::vector<VkBufferImageCopy> Regions(InitData.NumSubresources); - UINT64 uploadBufferSize = 0; + Uint64 uploadBufferSize = 0; Uint32 subres = 0; for(Uint32 layer = 0; layer < ImageCI.arrayLayers; ++layer) { @@ -247,7 +247,7 @@ TextureVkImpl :: TextureVkImpl(IReferenceCounters* pRefCounters, VERIFY(SubResData.DepthStride == 0 || SubResData.DepthStride >= RowSize * MipHeight, "Depth stride is too small"); // bufferOffset must be a multiple of 4 (18.4) - // If the calling command’s VkImage parameter is a compressed image, bufferOffset + // If the calling command�s VkImage parameter is a compressed image, bufferOffset // must be a multiple of the compressed texel block size in bytes (18.4). This // is automatically guaranteed as MipWidth and MipHeight are rounded to block size uploadBufferSize += (MipSize + 3) & (~3); diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanCommandBufferPool.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanCommandBufferPool.cpp index 9b476773..692fbcfd 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanCommandBufferPool.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanCommandBufferPool.cpp @@ -42,6 +42,9 @@ namespace VulkanUtilities CmdPoolCI.flags = flags; m_CmdPool = m_LogicalDevice->CreateCommandPool(CmdPoolCI); DEV_CHECK_ERR(m_CmdPool != VK_NULL_HANDLE, "Failed to create vulkan command pool"); +#ifdef DEVELOPMENT + m_BuffCounter = 0; +#endif } VulkanCommandBufferPool::~VulkanCommandBufferPool() diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp index b7f992f4..5902d6cb 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp @@ -27,6 +27,7 @@ #include "VulkanUtilities/VulkanInstance.h" #include "VulkanUtilities/VulkanDebug.h" #include "SPIRVUtils.h" +#include "PlatformDefinitions.h" namespace VulkanUtilities { diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanLogicalDevice.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanLogicalDevice.cpp index 490151c5..b7b431f7 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanLogicalDevice.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanLogicalDevice.cpp @@ -25,6 +25,7 @@ #include "VulkanErrors.h" #include "VulkanUtilities/VulkanLogicalDevice.h" #include "VulkanUtilities/VulkanDebug.h" +#include "VulkanUtilities/VulkanObjectWrappers.h" namespace VulkanUtilities { |
