diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp
index ac4d7a221e8bc6e9ff1270860428e5ea36610133..9d57e18955ff04aaef79d88673adb16cd806b5bc 100644
--- a/src/vkcv/PipelineManager.cpp
+++ b/src/vkcv/PipelineManager.cpp
@@ -298,17 +298,8 @@ namespace vkcv
         }
 
         // Dynamic State
-        std::vector<vk::DynamicState> dynamicStates = {};
-        if(config.m_UseDynamicViewport)
-        {
-            dynamicStates.push_back(vk::DynamicState::eViewport);
-            dynamicStates.push_back(vk::DynamicState::eScissor);
-        }
-
-        vk::PipelineDynamicStateCreateInfo dynamicStateCreateInfo(
-                {},
-                static_cast<uint32_t>(dynamicStates.size()),
-                dynamicStates.data());
+        vk::PipelineDynamicStateCreateInfo dynamicStateCreateInfo =
+                createPipelineDynamicStateCreateInfo(config);
 
         const vk::GraphicsPipelineCreateInfo graphicsPipelineCreateInfo(
                 {},
@@ -651,8 +642,24 @@ namespace vkcv
                 0.0f,
                 1.0f
         );
-
         return pipelineDepthStencilCreateInfo;
     }
 
+    vk::PipelineDynamicStateCreateInfo
+    PipelineManager::createPipelineDynamicStateCreateInfo(const PipelineConfig &config) {
+        std::vector<vk::DynamicState> dynamicStates = {};
+        if(config.m_UseDynamicViewport)
+        {
+            dynamicStates.push_back(vk::DynamicState::eViewport);
+            dynamicStates.push_back(vk::DynamicState::eScissor);
+        }
+
+        vk::PipelineDynamicStateCreateInfo dynamicStateCreateInfo(
+                {},
+                static_cast<uint32_t>(dynamicStates.size()),
+                dynamicStates.data()
+        );
+        return dynamicStateCreateInfo;
+    }
+
 }
diff --git a/src/vkcv/PipelineManager.hpp b/src/vkcv/PipelineManager.hpp
index c638ea0cbb2a98a4d9bf15b49ac150c1c0a5f3e4..95c375047f8fc88344c311acab7a0293d1bca4ae 100644
--- a/src/vkcv/PipelineManager.hpp
+++ b/src/vkcv/PipelineManager.hpp
@@ -130,5 +130,6 @@ namespace vkcv
          */
         vk::PipelineDepthStencilStateCreateInfo createPipelineDepthStencilStateCreateInfo(const PipelineConfig &config);
 
+        vk::PipelineDynamicStateCreateInfo createPipelineDynamicStateCreateInfo(const PipelineConfig &config);
     };
 }