From 9a5486ac8a86b91d335ac14d5cc6c894c7a2a332 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Mon, 28 Nov 2022 23:19:22 +0100 Subject: [PATCH] Fix alignment issue of geometry buffers for ray tracing Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- src/vkcv/BufferManager.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/vkcv/BufferManager.cpp b/src/vkcv/BufferManager.cpp index a8767ece..466ca064 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(); -- GitLab