diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp
index d0cc95c3fc23c4a2beb4a3841276de09ede6da04..e536895da6527aec02a806176ce1113ed8f9202f 100644
--- a/src/vkcv/PipelineManager.cpp
+++ b/src/vkcv/PipelineManager.cpp
@@ -255,9 +255,8 @@ namespace vkcv
                 createPipelineInputAssemblyStateCreateInfo(config);
 
         // viewport state
-        vk::Viewport viewport(0.f, 0.f, static_cast<float>(config.m_Width), static_cast<float>(config.m_Height), 0.f, 1.f);
-        vk::Rect2D scissor({ 0,0 }, { config.m_Width, config.m_Height });
-        vk::PipelineViewportStateCreateInfo pipelineViewportStateCreateInfo({}, 1, &viewport, 1, &scissor);
+        vk::PipelineViewportStateCreateInfo pipelineViewportStateCreateInfo =
+                createPipelineViewportStateCreateInfo(config);
 
         vk::CullModeFlags cullMode;
         switch (config.m_culling) {
@@ -595,4 +594,23 @@ namespace vkcv
         );
         return pipelineInputAssemblyStateCreateInfo;
     }
+
+    vk::PipelineViewportStateCreateInfo
+    PipelineManager::createPipelineViewportStateCreateInfo(const PipelineConfig &config) {
+        vk::Viewport viewport(0.f, 0.f,
+                              static_cast<float>(config.m_Width),
+                              static_cast<float>(config.m_Height),
+                              0.f, 1.f);
+
+        vk::Rect2D scissor({ 0,0 },
+                           { config.m_Width,
+                             config.m_Height });
+
+        vk::PipelineViewportStateCreateInfo pipelineViewportStateCreateInfo({},
+                                                                            1,
+                                                                            &viewport,
+                                                                            1,
+                                                                            &scissor);
+        return pipelineViewportStateCreateInfo;
+    }
 }
diff --git a/src/vkcv/PipelineManager.hpp b/src/vkcv/PipelineManager.hpp
index d0c7f333437337d3f1e6fc6c4bdf24e78f03c12a..0e80b02eb00da6e7bc9c4e7f34c876ccc313ebe9 100644
--- a/src/vkcv/PipelineManager.hpp
+++ b/src/vkcv/PipelineManager.hpp
@@ -80,5 +80,12 @@ namespace vkcv
          * @return Pipeline Input Assembly State Create Info Struct
          */
         vk::PipelineInputAssemblyStateCreateInfo createPipelineInputAssemblyStateCreateInfo(const PipelineConfig &config);
+
+        /**
+         * Create a Pipeline Viewport State Create Info Struct with default set viewport and scissor settings
+         * @param config provides with and height of the output window
+         * @return Pipeline Viewport State Create Info Struct
+         */
+        vk::PipelineViewportStateCreateInfo createPipelineViewportStateCreateInfo(const PipelineConfig &config);
     };
 }