MCPcopy Create free account
hub / github.com/OpenNFS/OpenNFS / copyBuffer

Method copyBuffer

src/Renderer/vkRenderer.cpp:691–722  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

689}
690
691void vkRenderer::copyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size) {
692 VkCommandBufferAllocateInfo allocInfo = {};
693 allocInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
694 allocInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
695 allocInfo.commandPool = commandPool;
696 allocInfo.commandBufferCount = 1;
697
698 VkCommandBuffer commandBuffer;
699 vkAllocateCommandBuffers(device, &allocInfo, &commandBuffer);
700
701 VkCommandBufferBeginInfo beginInfo = {};
702 beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
703 beginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
704
705 vkBeginCommandBuffer(commandBuffer, &beginInfo);
706
707 VkBufferCopy copyRegion = {};
708 copyRegion.size = size;
709 vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, 1, &copyRegion);
710
711 vkEndCommandBuffer(commandBuffer);
712
713 VkSubmitInfo submitInfo = {};
714 submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
715 submitInfo.commandBufferCount = 1;
716 submitInfo.pCommandBuffers = &commandBuffer;
717
718 vkQueueSubmit(graphicsQueue, 1, &submitInfo, VK_NULL_HANDLE);
719 vkQueueWaitIdle(graphicsQueue);
720
721 vkFreeCommandBuffers(device, commandPool, 1, &commandBuffer);
722}
723
724uint32_t vkRenderer::findMemoryType(uint32_t typeFilter, VkMemoryPropertyFlags properties) {
725 VkPhysicalDeviceMemoryProperties memProperties;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected