diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp index 28a64a243b9a7a8fc9372409ef3783901219c868..c8da089b26e2e422d3e0576b1343c85f4d367406 100644 --- a/src/vkcv/PipelineManager.cpp +++ b/src/vkcv/PipelineManager.cpp @@ -182,6 +182,7 @@ namespace vkcv {}, (config.m_DescriptorLayouts), (pushConstantRange)); + vk::PipelineLayout vkPipelineLayout{}; if (m_Device.createPipelineLayout(&pipelineLayoutCreateInfo, nullptr, &vkPipelineLayout) != vk::Result::eSuccess) { @@ -314,4 +315,23 @@ namespace vkcv return m_Configs.at(id); } + PipelineHandle PipelineManager::createComputePipeline() { + + + // TODO: Set Compute Shader Stage + vk::PipelineShaderStageCreateInfo pipelineShaderStageCreateInfo; // TODO: Set params + + // TODO: Set Compute Pipeline Layout + vk::PipelineLayout vkPipelineLayout{}; // TODO: Set params + + // TODO: Create Compute Pipeline + vk::Pipeline vkPipeline{}; + vk::ComputePipelineCreateInfo computePipelineCreateInfo; // TODO: Set params + if (m_Device.createComputePipelines(nullptr, 1, &computePipelineCreateInfo, nullptr, &vkPipeline)!= vk::Result::eSuccess) + { + // TODO: Set Params + } + + return PipelineHandle(); + } } \ No newline at end of file diff --git a/src/vkcv/PipelineManager.hpp b/src/vkcv/PipelineManager.hpp index e243151f7248c07fa0287bb2eaf698e5080f7f61..43590dfad2debf9a2a4306391aa2d37e06ca54be 100644 --- a/src/vkcv/PipelineManager.hpp +++ b/src/vkcv/PipelineManager.hpp @@ -35,6 +35,8 @@ namespace vkcv PipelineHandle createPipeline(const PipelineConfig &config, PassManager& passManager); + PipelineHandle createComputePipeline(); + [[nodiscard]] vk::Pipeline getVkPipeline(const PipelineHandle &handle) const;