Merge pull request #310 from orlowd/vma_atomic-def-fix

Fix atomic type used in AtomicTransactionalIncrement
This commit is contained in:
Adam Sawicki 2023-01-05 12:39:15 +01:00 committed by GitHub
commit 8b87b6cbf7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4002,11 +4002,11 @@ private:
#ifndef _VMA_ATOMIC_TRANSACTIONAL_INCREMENT
// An object that increments given atomic but decrements it back in the destructor unless Commit() is called.
template<typename T>
template<typename AtomicT>
struct AtomicTransactionalIncrement
{
public:
typedef std::atomic<T> AtomicT;
using T = decltype(AtomicT().load());
~AtomicTransactionalIncrement()
{
@ -15374,7 +15374,7 @@ VkResult VmaAllocator_T::CheckCorruption(uint32_t memoryTypeBits)
VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAllocateInfo, VkDeviceMemory* pMemory)
{
AtomicTransactionalIncrement<uint32_t> deviceMemoryCountIncrement;
AtomicTransactionalIncrement<VMA_ATOMIC_UINT32> deviceMemoryCountIncrement;
const uint64_t prevDeviceMemoryCount = deviceMemoryCountIncrement.Increment(&m_DeviceMemoryCount);
#if VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT
if(prevDeviceMemoryCount >= m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount)