Skip to content
Snippets Groups Projects
Commit 4f37e30f authored by Vanessa Karolek's avatar Vanessa Karolek
Browse files

[#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
parent cdf7a478
No related branches found
No related tags found
1 merge request!75Resolve "RTX-Module"
Pipeline #26328 passed
...@@ -29,14 +29,45 @@ int main(int argc, const char** argv) { ...@@ -29,14 +29,45 @@ int main(int argc, const char** argv) {
cameraManager.getCamera(camIndex1).setNearFar(0.1f, 30.0f); 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( vkcv::Core core = vkcv::Core::create(
window, window,
applicationName, applicationName,
VK_MAKE_VERSION(0, 0, 1), VK_MAKE_VERSION(0, 0, 1),
{ vk::QueueFlagBits::eGraphics ,vk::QueueFlagBits::eCompute , vk::QueueFlagBits::eTransfer }, { vk::QueueFlagBits::eGraphics ,vk::QueueFlagBits::eCompute , vk::QueueFlagBits::eTransfer },
{}, instanceExtensions,
{ "VK_KHR_swapchain" } deviceExtensions
); );
vk::RayTracingPipelineCreateInfoNV rtnv;
vkcv::scene::Scene scene = vkcv::scene::Scene::load(core, std::filesystem::path( vkcv::scene::Scene scene = vkcv::scene::Scene::load(core, std::filesystem::path(
argc > 1 ? argv[1] : "resources/Sponza/Sponza.gltf" argc > 1 ? argv[1] : "resources/Sponza/Sponza.gltf"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment