diff --git a/include/vkcv/VertexLayout.hpp b/include/vkcv/VertexLayout.hpp
index f9579b5d7dfa8127d592532f55fd569cacb505c9..fceaa9cf5498f068b5c767534be0957fed96a033 100644
--- a/include/vkcv/VertexLayout.hpp
+++ b/include/vkcv/VertexLayout.hpp
@@ -3,6 +3,7 @@
 #include <unordered_map>
 #include <vector>
 #include <iostream>
+#include <vulkan/vulkan.hpp>
 
 namespace vkcv{
     enum class VertexFormat{
@@ -33,5 +34,6 @@ namespace vkcv{
         uint32_t stride;
     };
 
-
+	// currently assuming default 32 bit formats, no lower precision or normalized variants supported
+	vk::Format vertexFormatToVulkanFormat(const VertexFormat format);
 }
\ No newline at end of file
diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp
index d591d8fba06f42c7785cd6dcc2e055677223d4a0..2385975c3f745896a8ec46b65b60b569f942aaa5 100644
--- a/src/vkcv/PipelineManager.cpp
+++ b/src/vkcv/PipelineManager.cpp
@@ -79,7 +79,7 @@ namespace vkcv
             uint32_t location = attachment.second.location;
             uint32_t binding = attachment.second.binding;
             uint32_t offset = attachment.second.offset;
-            VertexFormat format = attachment.second.format;    // TODO: Format -> Where does this belong? -> This is not compatible with vk::Format
+            vk::Format vertexFormat = vertexFormatToVulkanFormat(attachment.second.format);
             vertexBindingDescriptions.push_back({binding, layout.stride, vk::VertexInputRate::eVertex}); // TODO: What's about the input rate?
             vertexAttributeDescriptions.push_back({location, binding, vk::Format::eR32G32B32Sfloat, offset});
         }
diff --git a/src/vkcv/VertexLayout.cpp b/src/vkcv/VertexLayout.cpp
index 88c9406bc321a76b48df60dae51486e39a4160de..ef2fedf6fe85a35df40a284554df40659b23470c 100644
--- a/src/vkcv/VertexLayout.cpp
+++ b/src/vkcv/VertexLayout.cpp
@@ -50,4 +50,18 @@ namespace vkcv {
         }
     }
 
+	vk::Format vertexFormatToVulkanFormat(const VertexFormat format) {
+		switch (format) {
+			case VertexFormat::FLOAT	: return vk::Format::eR32Sfloat;
+			case VertexFormat::FLOAT2	: return vk::Format::eR32G32Sfloat;
+			case VertexFormat::FLOAT3	: return vk::Format::eR32G32B32Sfloat;
+			case VertexFormat::FLOAT4	: return vk::Format::eR32G32B32A32Sfloat;
+			case VertexFormat::INT		: return vk::Format::eR32Sint;
+			case VertexFormat::INT2		: return vk::Format::eR32G32Sint;
+			case VertexFormat::INT3		: return vk::Format::eR32G32B32Sint;
+			case VertexFormat::INT4		: return vk::Format::eR32G32B32A32Sint;
+			default: std::cerr << "Warning: Unknown vertex format" << std::endl; return vk::Format::eUndefined;
+		}
+	}
+
 }
\ No newline at end of file