| 472 | } |
| 473 | |
| 474 | void UtilCopyBuffer(VulkanBuffer* src_buffer, VulkanBuffer* dst_buffer, uint64_t size) |
| 475 | { |
| 476 | EXIT_IF(src_buffer == nullptr); |
| 477 | EXIT_IF(src_buffer->buffer == nullptr); |
| 478 | EXIT_IF(dst_buffer == nullptr); |
| 479 | EXIT_IF(dst_buffer->buffer == nullptr); |
| 480 | |
| 481 | CommandBuffer buffer(GraphicContext::QUEUE_UTIL); |
| 482 | // buffer.SetQueue(GraphicContext::QUEUE_UTIL); |
| 483 | |
| 484 | EXIT_NOT_IMPLEMENTED(buffer.IsInvalid()); |
| 485 | |
| 486 | auto* vk_buffer = buffer.GetPool()->buffers[buffer.GetIndex()]; |
| 487 | |
| 488 | buffer.Begin(); |
| 489 | |
| 490 | VkBufferCopy copy_region {}; |
| 491 | copy_region.srcOffset = 0; |
| 492 | copy_region.dstOffset = 0; |
| 493 | copy_region.size = size; |
| 494 | |
| 495 | vkCmdCopyBuffer(vk_buffer, src_buffer->buffer, dst_buffer->buffer, 1, ©_region); |
| 496 | |
| 497 | buffer.End(); |
| 498 | buffer.Execute(); |
| 499 | buffer.WaitForFence(); |
| 500 | } |
| 501 | |
| 502 | } // namespace Kyty::Libs::Graphics |
| 503 | |