Skip to content

Commit

Permalink
added funtion to get request allocated size needed for vulkan allocat…
Browse files Browse the repository at this point in the history
…ors.
  • Loading branch information
JulioJerez committed Feb 16, 2024
1 parent abe2375 commit 2865f21
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions newton-4.00/sdk/dCore/ndMemory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,51 +36,51 @@ class ndMemoryHeader
ndUnsigned32 m_requestedSize;
};

#define ndGetBufferPaddingSize size_t(D_MEMORY_ALIGMNET - 1 + sizeof (ndMemoryHeader))
#define ndGetBufferPaddingInBytes size_t(D_MEMORY_ALIGMNET - 1 + sizeof (ndMemoryHeader))

size_t ndMemory::CalculateBufferSize(size_t size)
{
return size + ndGetBufferPaddingSize;
return size + ndGetBufferPaddingInBytes;
}

void* ndMemory::Malloc(size_t requestSize)
void* ndMemory::Malloc(size_t size)
{
ndIntPtr metToVal;
size_t size = requestSize + ndGetBufferPaddingSize;
metToVal.m_ptr = m_allocMemory(size);
ndUnsigned64 val = ndUnsigned64(metToVal.m_int) + ndGetBufferPaddingSize;
size_t bufferSize = size + ndGetBufferPaddingInBytes;
metToVal.m_ptr = m_allocMemory(bufferSize);
ndUnsigned64 val = ndUnsigned64(metToVal.m_int) + ndGetBufferPaddingInBytes;
ndInt64 mask = -ndInt64(D_MEMORY_ALIGMNET);
val = val & mask;
ndMemoryHeader* const ret = (ndMemoryHeader*)val;
ndMemoryHeader* const info = ret - 1;
ndAssert((char*)info >= (char*)metToVal.m_ptr);
info->m_ptr = metToVal.m_ptr;
info->m_bufferSize = ndUnsigned32 (size);
info->m_requestedSize = ndUnsigned32(requestSize);
m_memoryUsed.fetch_add(size);
info->m_bufferSize = ndUnsigned32 (bufferSize);
info->m_requestedSize = ndUnsigned32(size);
m_memoryUsed.fetch_add(bufferSize);
return ret;
}

void ndMemory::Free(void* const ptr)
{
if (ptr)
{
ndMemoryHeader* const ret = ((ndMemoryHeader*)ptr) - 1;
m_memoryUsed.fetch_sub(ndUnsigned64(ret->m_bufferSize));
m_freeMemory(ret->m_ptr);
ndMemoryHeader* const info = ((ndMemoryHeader*)ptr) - 1;
m_memoryUsed.fetch_sub(ndUnsigned64(info->m_bufferSize));
m_freeMemory(info->m_ptr);
}
}

size_t ndMemory::GetSize(void* const ptr)
{
ndMemoryHeader* const ret = ((ndMemoryHeader*)ptr) - 1;
return ret->m_bufferSize;
ndMemoryHeader* const info = ((ndMemoryHeader*)ptr) - 1;
return info->m_bufferSize;
}

size_t ndMemory::GetOriginalSize(void* const ptr)
{
ndMemoryHeader* const ret = ((ndMemoryHeader*)ptr) - 1;
return ret->m_requestedSize;
ndMemoryHeader* const info = ((ndMemoryHeader*)ptr) - 1;
return info->m_requestedSize;
}

ndUnsigned64 ndMemory::GetMemoryUsed()
Expand All @@ -90,12 +90,12 @@ ndUnsigned64 ndMemory::GetMemoryUsed()

void ndMemory::SetMemoryAllocators(ndMemAllocCallback alloc, ndMemFreeCallback free)
{
m_allocMemory = alloc;
m_freeMemory = free;
m_allocMemory = alloc;
}

void ndMemory::GetMemoryAllocators(ndMemAllocCallback& alloc, ndMemFreeCallback& free)
{
alloc = m_allocMemory;
free = m_freeMemory;
alloc = m_allocMemory;
}

0 comments on commit 2865f21

Please sign in to comment.