Implement buffer to buffer copy command

Added buffer copy command and support for VkBufferCopy regions.

Passes all tests in:
dEQP-VK.api.copy_and_blit.core.buffer_to_buffer

Bug b/118619338

Change-Id: Id69cd3f089b07343a7209290808c11d4c17f1a49
Reviewed-on: https://swiftshader-review.googlesource.com/c/23229
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
diff --git a/src/Vulkan/VkBuffer.hpp b/src/Vulkan/VkBuffer.hpp
index 8bdf0e9..45645e5 100644
--- a/src/Vulkan/VkBuffer.hpp
+++ b/src/Vulkan/VkBuffer.hpp
@@ -33,6 +33,7 @@
 	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 copyTo(Buffer* dstBuffer, const VkBufferCopy& pRegion) const;
 	void* getOffsetPointer(VkDeviceSize offset) const;
 
 private: