Create pipeline layout from config.
316{
317 vk::PipelineLayoutCreateInfo layout_info;
318 layout_info.setLayoutCount = static_cast<uint32_t>(config.descriptor_set_layouts.size());
319 layout_info.pSetLayouts = config.descriptor_set_layouts.empty() ? nullptr : config.descriptor_set_layouts.data();
320 layout_info.pushConstantRangeCount = static_cast<uint32_t>(config.push_constant_ranges.size());
321 layout_info.pPushConstantRanges = config.push_constant_ranges.empty() ? nullptr : config.push_constant_ranges.data();
322
323 vk::PipelineLayout layout;
324 try {
325 layout = device.createPipelineLayout(layout_info);
326 } catch (const vk::SystemError& e) {
328 "Failed to create pipeline layout: {}", e.what());
329 return nullptr;
330 }
331
333 "Graphics pipeline layout created ({} sets, {} push constant ranges)",
334 config.descriptor_set_layouts.size(), config.push_constant_ranges.size());
335
336 return layout;
337}
#define MF_ERROR(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
@ GraphicsBackend
Graphics/visual rendering backend (Vulkan, OpenGL)
@ Core
Core engine, backend, subsystems.