From 4f37e30f940d7bdcb83a0e7e108e8da169d8c355 Mon Sep 17 00:00:00 2001 From: Vanessa Karolek <vaka1997@uni-koblenz.de> Date: Sun, 11 Jul 2021 23:51:48 +0200 Subject: [PATCH] [#92] enable RT(X) extensions tbh i am not sure if we need all of them. i guess we will find it out with further progress --- projects/rtx/src/main.cpp | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/projects/rtx/src/main.cpp b/projects/rtx/src/main.cpp index 527eba8c..fbfa6c76 100644 --- a/projects/rtx/src/main.cpp +++ b/projects/rtx/src/main.cpp @@ -29,14 +29,45 @@ int main(int argc, const char** argv) { cameraManager.getCamera(camIndex1).setNearFar(0.1f, 30.0f); + // prepare raytracing extensions. IMPORTANT: configure compiler to build in 64 bit mode + std::vector<const char*> raytracingInstanceExtensions = { + "VK_KHR_get_physical_device_properties2" + }; + std::vector<const char*> raytracingDeviceExtensions = { + // vulkan raytracing extensions (according to https://www.khronos.org/blog/ray-tracing-in-vulkan) + "VK_KHR_maintenance3", + "VK_EXT_descriptor_indexing", + "VK_KHR_buffer_device_address", + "VK_KHR_deferred_host_operations", + "VK_KHR_acceleration_structure", + "VK_KHR_spirv_1_4", + "VK_KHR_ray_tracing_pipeline", + "VK_KHR_ray_query", + "VK_KHR_pipeline_library", + + // turing raytracing extensions (rtx) (according to https://developer.nvidia.com/vulkan-turing) + "VK_KHR_get_memory_requirements2", + "VK_NV_ray_tracing" + }; + + std::vector<const char*> instanceExtensions = {}; + instanceExtensions.insert(instanceExtensions.end(), raytracingInstanceExtensions.begin(), raytracingInstanceExtensions.end()); + + std::vector<const char*> deviceExtensions = { + "VK_KHR_swapchain" + }; + deviceExtensions.insert(deviceExtensions.end(), raytracingDeviceExtensions.begin(), raytracingDeviceExtensions.end()); + vkcv::Core core = vkcv::Core::create( window, applicationName, VK_MAKE_VERSION(0, 0, 1), { vk::QueueFlagBits::eGraphics ,vk::QueueFlagBits::eCompute , vk::QueueFlagBits::eTransfer }, - {}, - { "VK_KHR_swapchain" } + instanceExtensions, + deviceExtensions ); + + vk::RayTracingPipelineCreateInfoNV rtnv; vkcv::scene::Scene scene = vkcv::scene::Scene::load(core, std::filesystem::path( argc > 1 ? argv[1] : "resources/Sponza/Sponza.gltf" -- GitLab