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

Method createBuffer

src/Renderer/vkRenderer.cpp:664–689  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

662}
663
664void vkRenderer::createBuffer(VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties,
665 VkBuffer &buffer, VkDeviceMemory &bufferMemory) {
666 VkBufferCreateInfo bufferInfo = {};
667 bufferInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
668 bufferInfo.size = size;
669 bufferInfo.usage = usage;
670 bufferInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
671
672 if (vkCreateBuffer(device, &bufferInfo, nullptr, &buffer) != VK_SUCCESS) {
673 throw std::runtime_error("failed to create buffer!");
674 }
675
676 VkMemoryRequirements memRequirements;
677 vkGetBufferMemoryRequirements(device, buffer, &memRequirements);
678
679 VkMemoryAllocateInfo allocInfo = {};
680 allocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
681 allocInfo.allocationSize = memRequirements.size;
682 allocInfo.memoryTypeIndex = findMemoryType(memRequirements.memoryTypeBits, properties);
683
684 if (vkAllocateMemory(device, &allocInfo, nullptr, &bufferMemory) != VK_SUCCESS) {
685 throw std::runtime_error("failed to allocate buffer memory!");
686 }
687
688 vkBindBufferMemory(device, buffer, bufferMemory, 0);
689}
690
691void vkRenderer::copyBuffer(VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size) {
692 VkCommandBufferAllocateInfo allocInfo = {};

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected