mirror of
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
synced 2024-11-10 02:31:48 +00:00
Fix atomic type used in AtomicTransactionalIncrement
This partially reverts changes from 4dfa169ffc
This commit is contained in:
parent
413fc4f988
commit
3459fd780a
@ -4002,12 +4002,10 @@ private:
|
|||||||
|
|
||||||
#ifndef _VMA_ATOMIC_TRANSACTIONAL_INCREMENT
|
#ifndef _VMA_ATOMIC_TRANSACTIONAL_INCREMENT
|
||||||
// An object that increments given atomic but decrements it back in the destructor unless Commit() is called.
|
// 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
|
struct AtomicTransactionalIncrement
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef std::atomic<T> AtomicT;
|
|
||||||
|
|
||||||
~AtomicTransactionalIncrement()
|
~AtomicTransactionalIncrement()
|
||||||
{
|
{
|
||||||
if(m_Atomic)
|
if(m_Atomic)
|
||||||
@ -4015,7 +4013,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Commit() { m_Atomic = nullptr; }
|
void Commit() { m_Atomic = nullptr; }
|
||||||
T Increment(AtomicT* atomic)
|
typename AtomicT::value_type Increment(AtomicT* atomic)
|
||||||
{
|
{
|
||||||
m_Atomic = atomic;
|
m_Atomic = atomic;
|
||||||
return m_Atomic->fetch_add(1);
|
return m_Atomic->fetch_add(1);
|
||||||
@ -15374,7 +15372,7 @@ VkResult VmaAllocator_T::CheckCorruption(uint32_t memoryTypeBits)
|
|||||||
|
|
||||||
VkResult VmaAllocator_T::AllocateVulkanMemory(const VkMemoryAllocateInfo* pAllocateInfo, VkDeviceMemory* pMemory)
|
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);
|
const uint64_t prevDeviceMemoryCount = deviceMemoryCountIncrement.Increment(&m_DeviceMemoryCount);
|
||||||
#if VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT
|
#if VMA_DEBUG_DONT_EXCEED_MAX_MEMORY_ALLOCATION_COUNT
|
||||||
if(prevDeviceMemoryCount >= m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount)
|
if(prevDeviceMemoryCount >= m_PhysicalDeviceProperties.limits.maxMemoryAllocationCount)
|
||||||
|
Loading…
Reference in New Issue
Block a user