| 1253 | } |
| 1254 | |
| 1255 | bool 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 | |
| 1287 | bool createSharedBuffer(VulkanRenderDevice& vkDev, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer& buffer, VkDeviceMemory& bufferMemory) |
| 1288 | { |
no test coverage detected