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;