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();