Commit 2661e840 by Alexis Hetu Committed by Alexis Hétu

Buffer copy

Buffer now has the ability to copy its content to or from memory. Bug b/118383648 Change-Id: Ic01bf049fe054559299830ca750263c2277e4d86 Reviewed-on: https://swiftshader-review.googlesource.com/c/23069Reviewed-by: 's avatarChris Forbes <chrisforbes@google.com> Tested-by: 's avatarAlexis Hétu <sugoi@google.com>
parent c4bd9df2
......@@ -55,4 +55,23 @@ void Buffer::bind(VkDeviceMemory pDeviceMemory, VkDeviceSize pMemoryOffset)
memory = Cast(pDeviceMemory)->getOffsetPointer(pMemoryOffset);
}
void Buffer::copyFrom(const void* srcMemory, VkDeviceSize pSize, VkDeviceSize pOffset)
{
ASSERT((pSize + pOffset) <= size);
memcpy(map(pOffset), srcMemory, pSize);
}
void Buffer::copyTo(void* dstMemory, VkDeviceSize pSize, VkDeviceSize pOffset) const
{
ASSERT((pSize + pOffset) <= size);
memcpy(dstMemory, map(pOffset), pSize);
}
void* Buffer::map(VkDeviceSize offset) const
{
return reinterpret_cast<char*>(memory) + offset;
}
} // namespace vk
......@@ -31,6 +31,9 @@ public:
const VkMemoryRequirements getMemoryRequirements() const;
void bind(VkDeviceMemory pDeviceMemory, VkDeviceSize pMemoryOffset);
void copyFrom(const void* srcMemory, VkDeviceSize size, VkDeviceSize offset);
void copyTo(void* dstMemory, VkDeviceSize size, VkDeviceSize offset) const;
void* map(VkDeviceSize offset) const;
private:
void* memory = nullptr;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment