Fixes to buffer updates

This commit is contained in:
moudgils
2021-06-13 22:05:21 -07:00
parent e72cae47b4
commit 4e5d690584
3 changed files with 8 additions and 6 deletions
@@ -89,7 +89,9 @@ namespace AZ
const MemoryView& destMemoryView = destBuffer.GetMemoryView();
MTLStorageMode mtlStorageMode = destBuffer.GetMemoryView().GetStorageMode();
RHI::BufferPool& bufferPool = static_cast<RHI::BufferPool&>(*destBuffer.GetPool());
/*
// No need to use staging buffers since it's host memory.
// We just map, copy and then unmap.
if(mtlStorageMode == MTLStorageModeShared || mtlStorageMode == GetCPUGPUMemoryMode())
{
RHI::BufferMapRequest mapRequest;
@@ -106,7 +108,7 @@ namespace AZ
}
return m_uploadFence.GetPendingValue();
}
*/
Fence* fenceToSignal = nullptr;
uint64_t fenceToSignalValue = 0;
size_t byteCount = uploadRequest.m_byteCount;
@@ -40,7 +40,7 @@ namespace AZ
buffer->m_pendingResolves++;
uploadRequest.m_attachmentBuffer = buffer;
uploadRequest.m_byteOffset = request.m_byteOffset;;//buffer->GetMemoryView().GetOffset() + request.m_byteOffset;
uploadRequest.m_byteOffset = buffer->GetMemoryView().GetOffset() + request.m_byteOffset;
uploadRequest.m_stagingBuffer = stagingBuffer;
uploadRequest.m_byteSize = request.m_byteCount;
@@ -65,11 +65,11 @@ namespace AZ
AZ_Assert(destBuffer, "Attachment Buffer is null.");
//Inform the GPU that the CPU has modified the staging buffer.
//Platform::SynchronizeBufferOnCPU(stagingBuffer->GetMemoryView().GetGpuAddress<id<MTLBuffer>>(), stagingBuffer->GetMemoryView().GetOffset(), stagingBuffer->GetMemoryView().GetSize());
Platform::SynchronizeBufferOnCPU(stagingBuffer->GetMemoryView().GetGpuAddress<id<MTLBuffer>>(), stagingBuffer->GetMemoryView().GetOffset(), stagingBuffer->GetMemoryView().GetSize());
RHI::CopyBufferDescriptor copyDescriptor;
copyDescriptor.m_sourceBuffer = stagingBuffer;
copyDescriptor.m_sourceOffset = 0;//stagingBuffer->GetMemoryView().GetOffset();
copyDescriptor.m_sourceOffset = stagingBuffer->GetMemoryView().GetOffset();
copyDescriptor.m_destinationBuffer = destBuffer;
copyDescriptor.m_destinationOffset = static_cast<uint32_t>(packet.m_byteOffset);
copyDescriptor.m_size = static_cast<uint32_t>(packet.m_byteSize);
@@ -44,7 +44,7 @@ namespace AZ
if (memoryView.IsValid())
{
heapMemoryUsage.m_residentInBytes += m_descriptor.m_pageSizeInBytes;
//memoryView.SetName(AZStd::string::format("BufferPage_%s", AZ::Uuid::CreateRandom().ToString<AZStd::string>().c_str()));
memoryView.SetName(AZStd::string::format("BufferPage_%s", AZ::Uuid::CreateRandom().ToString<AZStd::string>().c_str()));
}
else
{