MCPcopy Create free account
hub / github.com/begla/Intrinsic / initVkCommandBuffers

Method initVkCommandBuffers

IntrinsicCore/src/IntrinsicRendererRenderSystem.cpp:1176–1226  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1174}
1175
1176void RenderSystem::initVkCommandBuffers()
1177{
1178 _INTR_LOG_INFO("Creating Vulkan command buffers...");
1179
1180 // Primary cmd buffer
1181 {
1182 const uint32_t actualPrimCmdBufferCount =
1183 (uint32_t)_vkSwapchainImages.size();
1184 _vkCommandBuffers.resize(actualPrimCmdBufferCount);
1185
1186 VkCommandBufferAllocateInfo cmd = {};
1187 {
1188 cmd.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
1189 cmd.pNext = nullptr;
1190 cmd.commandPool = _vkPrimaryCommandPool;
1191 cmd.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
1192 cmd.commandBufferCount = actualPrimCmdBufferCount;
1193 }
1194
1195 VkResult result =
1196 vkAllocateCommandBuffers(_vkDevice, &cmd, _vkCommandBuffers.data());
1197 _INTR_VK_CHECK_RESULT(result);
1198 }
1199
1200 // Secondary cmd buffers
1201 {
1202 const uint32_t actualSecondCmdBufferCount =
1203 (uint32_t)_vkSwapchainImages.size() *
1204 _INTR_VK_SECONDARY_COMMAND_BUFFER_COUNT;
1205 _vkSecondaryCommandBuffers.resize(actualSecondCmdBufferCount);
1206
1207 for (uint32_t i = 0u; i < actualSecondCmdBufferCount; ++i)
1208 {
1209 VkCommandBufferAllocateInfo cmd = {};
1210 {
1211 cmd.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
1212 cmd.pNext = nullptr;
1213 // Reuse command pools from frame to frame
1214 cmd.commandPool =
1215 _vkSecondaryCommandPools[i %
1216 _INTR_VK_SECONDARY_COMMAND_BUFFER_COUNT];
1217 cmd.level = VK_COMMAND_BUFFER_LEVEL_SECONDARY;
1218 cmd.commandBufferCount = 1u;
1219 }
1220
1221 VkResult result = vkAllocateCommandBuffers(
1222 _vkDevice, &cmd, &_vkSecondaryCommandBuffers[i]);
1223 _INTR_VK_CHECK_RESULT(result);
1224 }
1225 }
1226}
1227
1228void RenderSystem::destroyVkCommandBuffers()
1229{

Callers

nothing calls this directly

Calls 3

resizeMethod · 0.80
dataMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected