MCPcopy Create free account
hub / github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook / createBuffer

Function createBuffer

shared/UtilsVulkan.cpp:1255–1285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1253}
1254
1255bool createBuffer(VkDevice device, VkPhysicalDevice physicalDevice, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory)
1256{
1257 const VkBufferCreateInfo bufferInfo = {
1258 .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
1259 .pNext = nullptr,
1260 .flags = 0,
1261 .size = size,
1262 .usage = usage,
1263 .sharingMode = VK_SHARING_MODE_EXCLUSIVE,
1264 .queueFamilyIndexCount = 0,
1265 .pQueueFamilyIndices = nullptr
1266 };
1267
1268 VK_CHECK(vkCreateBuffer(device, &bufferInfo, nullptr, &buffer));
1269
1270 VkMemoryRequirements memRequirements;
1271 vkGetBufferMemoryRequirements(device, buffer, &memRequirements);
1272
1273 const VkMemoryAllocateInfo allocInfo = {
1274 .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
1275 .pNext = nullptr,
1276 .allocationSize = memRequirements.size,
1277 .memoryTypeIndex = findMemoryType(physicalDevice, memRequirements.memoryTypeBits, properties)
1278 };
1279
1280 VK_CHECK(vkAllocateMemory(device, &allocInfo, nullptr, &bufferMemory));
1281
1282 vkBindBufferMemory(device, buffer, bufferMemory, 0);
1283
1284 return true;
1285}
1286
1287bool createSharedBuffer(VulkanRenderDevice& vkDev, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory)
1288{

Callers 14

initMeshFunction · 0.85
createUniformBuffersFunction · 0.85
createSharedBufferFunction · 0.85
createUniformBufferFunction · 0.85
updateTextureVolumeFunction · 0.85
updateTextureImageFunction · 0.85
downloadImageDataFunction · 0.85
allocateVertexBufferFunction · 0.85
createComputedBufferMethod · 0.85
VulkanCanvasMethod · 0.85
VulkanQuadRendererMethod · 0.85

Calls 1

findMemoryTypeFunction · 0.85

Tested by

no test coverage detected