diff --git a/include/vkcv/ShaderProgram.hpp b/include/vkcv/ShaderProgram.hpp
index af60f9fb7af196ec8576320742fc86893ddc7b8e..ef5d1f00ea3eeb97d97d8824439ded1ed326f33c 100644
--- a/include/vkcv/ShaderProgram.hpp
+++ b/include/vkcv/ShaderProgram.hpp
@@ -57,7 +57,7 @@ namespace vkcv {
 
         void reflectShader(ShaderStage shaderStage);
 
-        VertexLayout& getVertexLayout();
+        const VertexLayout &getVertexLayout() const;
 
 	private:
         std::unordered_map<ShaderStage, Shader> m_Shaders;
diff --git a/src/vkcv/ShaderProgram.cpp b/src/vkcv/ShaderProgram.cpp
index 69ad7c3188d3dd0ae940b8bdd1c628d4fc702c7f..dabd5ab1380811f2cb6bc107232d07bd8d2f0518 100644
--- a/src/vkcv/ShaderProgram.cpp
+++ b/src/vkcv/ShaderProgram.cpp
@@ -128,7 +128,7 @@ namespace vkcv {
         m_VertexLayout = VertexLayout(inputVec);
     }
 
-    VertexLayout& ShaderProgram::getVertexLayout(){
+    const VertexLayout& ShaderProgram::getVertexLayout() const{
         return m_VertexLayout;
 	}
 }