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