From 8331c9cf3055380be3c80784c795cebf333055a3 Mon Sep 17 00:00:00 2001
From: Mark Oliver Mints <mmints@uni-koblenz.de>
Date: Wed, 9 Jun 2021 09:00:22 +0200
Subject: [PATCH] [#65][Add] Function for creating compute pipeline

---
 src/vkcv/PipelineManager.cpp | 20 ++++++++++++++++++++
 src/vkcv/PipelineManager.hpp |  2 ++
 2 files changed, 22 insertions(+)

diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp
index 28a64a24..c8da089b 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 e243151f..43590dfa 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;
 
-- 
GitLab