From 8e949a47a4a2b19cfbbf9d3750c21554f171fce3 Mon Sep 17 00:00:00 2001
From: Vanessa Karolek <vaka1997@uni-koblenz.de>
Date: Fri, 27 Aug 2021 16:54:56 +0200
Subject: [PATCH] [#92] adjust RT_ACCELERATION buffer types

---
 include/vkcv/BufferManager.hpp |  3 ++-
 src/vkcv/BufferManager.cpp     | 12 ++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/include/vkcv/BufferManager.hpp b/include/vkcv/BufferManager.hpp
index 4b19a343..272ba44b 100644
--- a/include/vkcv/BufferManager.hpp
+++ b/include/vkcv/BufferManager.hpp
@@ -14,7 +14,8 @@ namespace vkcv
 		UNIFORM,
 		STORAGE,
 		STAGING,
-		RT_ACCELERATION
+		RT_ACCELERATION_VERTEX,
+		RT_ACCELERATION_INDEX
 	};
 	
 	enum class BufferMemoryType {
diff --git a/src/vkcv/BufferManager.cpp b/src/vkcv/BufferManager.cpp
index 0d2dc4fc..6f065705 100644
--- a/src/vkcv/BufferManager.cpp
+++ b/src/vkcv/BufferManager.cpp
@@ -48,10 +48,13 @@ namespace vkcv {
 			case BufferType::INDEX:
 				usageFlags = vk::BufferUsageFlagBits::eIndexBuffer;
 				break;
-		    case BufferType::RT_ACCELERATION:
-		        usageFlags = vk::BufferUsageFlagBits::eAccelerationStructureStorageKHR | vk::BufferUsageFlagBits::eShaderDeviceAddress | vk::BufferUsageFlagBits::eStorageBuffer;
+		    case BufferType::RT_ACCELERATION_VERTEX:
+		        usageFlags = vk::BufferUsageFlagBits::eVertexBuffer | vk::BufferUsageFlagBits::eAccelerationStructureStorageKHR | vk::BufferUsageFlagBits::eShaderDeviceAddressKHR | vk::BufferUsageFlagBits::eStorageBuffer;
 		        break;
-			default:
+		    case BufferType::RT_ACCELERATION_INDEX:
+		        usageFlags = vk::BufferUsageFlagBits::eIndexBuffer | vk::BufferUsageFlagBits::eAccelerationStructureStorageKHR | vk::BufferUsageFlagBits::eShaderDeviceAddressKHR | vk::BufferUsageFlagBits::eStorageBuffer;
+			    break;
+            default:
 				vkcv_log(LogLevel::WARNING, "Unknown buffer type");
 				break;
 		}
@@ -89,7 +92,8 @@ namespace vkcv {
 		if (type == BufferType::STAGING) {
 			memoryUsage = vma::MemoryUsage::eCpuToGpu;
 		}
-		
+
+		// TODO ?vma::AllocatorCreateFlagBits::eKhrDedicatedAllocation?
 		auto bufferAllocation = allocator.createBuffer(
 				vk::BufferCreateInfo(createFlags, size, usageFlags),
 				vma::AllocationCreateInfo(
-- 
GitLab