From c1df12c75053f061e688112c2ea483439e0abffe Mon Sep 17 00:00:00 2001
From: Vanessa Karolek <vaka1997@uni-koblenz.de>
Date: Thu, 26 Aug 2021 18:09:28 +0200
Subject: [PATCH] [#92] adjust RTXModule::init, mention our actual problem in
 ASManager.cpp

---
 modules/rtx/src/vkcv/rtx/ASManager.cpp | 4 ++++
 modules/rtx/src/vkcv/rtx/RTX.cpp       | 3 ++-
 projects/rtx/src/main.cpp              | 6 +++---
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/modules/rtx/src/vkcv/rtx/ASManager.cpp b/modules/rtx/src/vkcv/rtx/ASManager.cpp
index 04a7fdfb..048bac14 100644
--- a/modules/rtx/src/vkcv/rtx/ASManager.cpp
+++ b/modules/rtx/src/vkcv/rtx/ASManager.cpp
@@ -12,6 +12,10 @@ namespace vkcv::rtx {
     }
 
     void ASManager::buildBLAS(Buffer<uint8_t> &vertexBuffer, Buffer<uint8_t> &indexBuffer) {
+        // INFO: Es scheint, dass wir einen DispatchLoaderDynamic brauchen, damit Funktionen wie .getBufferAddressKHR keine Linker Error schmeissen.
+        // Die Frage ist, wieso? und wie koennen wir das problem evtl. anders behandeln? Mit dem DispatchLoaderDynamic gehen zwar die Fehler weg,
+        // aber die Anwendung crasht...
+
         vk::BufferDeviceAddressInfo vertexBufferDeviceAddressInfo(vertexBuffer.getVulkanHandle());
         vk::DeviceAddress vertexBufferAddress = m_core->getContext().getDevice().getBufferAddressKHR(vertexBufferDeviceAddressInfo);
         vk::DeviceOrHostAddressConstKHR vertexDeviceOrHostAddressConst(vertexBufferAddress);
diff --git a/modules/rtx/src/vkcv/rtx/RTX.cpp b/modules/rtx/src/vkcv/rtx/RTX.cpp
index b281c183..ba79add8 100644
--- a/modules/rtx/src/vkcv/rtx/RTX.cpp
+++ b/modules/rtx/src/vkcv/rtx/RTX.cpp
@@ -25,7 +25,8 @@ namespace vkcv::rtx {
     void RTXModule::init(Core* core, Buffer<uint8_t> &vertexBuffer, Buffer<uint8_t> &indexBuffer) {
 
         // build acceleration structures BLAS then TLAS --> see ASManager
-//        ASManager asManager(core);
+        ASManager asManager(core);
+        asManager.buildBLAS(vertexBuffer, indexBuffer);
 
     }
 
diff --git a/projects/rtx/src/main.cpp b/projects/rtx/src/main.cpp
index 5fe508d0..350db234 100644
--- a/projects/rtx/src/main.cpp
+++ b/projects/rtx/src/main.cpp
@@ -53,9 +53,6 @@ int main(int argc, const char** argv) {
 		deviceExtensions
 	);
 
-	// init RTXModule
-//	rtxModule.init(&core);
-
 	vkcv::scene::Scene scene = vkcv::scene::Scene::load(core, std::filesystem::path(
 			argc > 1 ? argv[1] : "resources/Sponza/Sponza.gltf"
 	));
@@ -93,6 +90,9 @@ int main(int argc, const char** argv) {
 
 	indexBuffer.fill(mesh.vertexGroups[0].indexBuffer.data);
 
+	// init RTXModule
+    rtxModule.init(&core, vertexBuffer, indexBuffer);
+
 	const vkcv::AttachmentDescription present_color_attachment(
 		vkcv::AttachmentOperation::STORE,
 		vkcv::AttachmentOperation::CLEAR,
-- 
GitLab