diff --git a/modules/rtx/src/vkcv/rtx/ASManager.cpp b/modules/rtx/src/vkcv/rtx/ASManager.cpp index 04a7fdfb4ab9882f29be1397b7c278d9af870e0d..048bac145aae5ec0b6358efe8268013511753732 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 b281c183c92388b44b65f1dccd47646d94352219..ba79add844efab3adf028ebaf7d8b49a0dae12d2 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 5fe508d05ec2c495d1d2955a938ca2cb711043a4..350db2343f5bd557bd320e16baf2daaa6e886847 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,