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