diff --git a/src/vkcv/BufferManager.cpp b/src/vkcv/BufferManager.cpp
index a8767ecef1a0032511ddc8dc5255f8ea96e98e65..466ca064eb12b7e1c55dadebb2d41705fd097c71 100644
--- a/src/vkcv/BufferManager.cpp
+++ b/src/vkcv/BufferManager.cpp
@@ -8,6 +8,7 @@
 #include <vkcv/Logger.hpp>
 
 #include <limits>
+#include <numeric>
 
 namespace vkcv {
 
@@ -169,6 +170,10 @@ namespace vkcv {
 		if (m_shaderDeviceAddress) {
 			usageFlags |= vk::BufferUsageFlagBits::eShaderDeviceAddress;
 		}
+		
+		if (usageFlags & vk::BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR) {
+			alignment = (alignment > 0? std::lcm(alignment, 16) : 16);
+		}
 
 		const vma::Allocator &allocator = getCore().getContext().getAllocator();