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