Unable to recognize NV ray-tracing extension

I’m a student working with a team that wants to use Vulkan for our final project. We’re trying to use the raytracing extension and we have looked at various projects to get some working base code (here and here ). However, we were not able to get these to run on our computers.

For the first tutorial / code sample, I think it’s not working because the functions are outdated (looks like they’re using “NVX” instead of “NV”). My teammates tried the second code sample but their devices could not find the NV raytracing extension:

auto compatibleDevices = vkctx.getCompatibleDevices(contextInfo);
 assert(!compatibleDevices.empty());

causes an error (can’t find a compatible device).

I also tried to implement the first tutorial from scratch, but whenever I use a function related to the raytracing extension I get “unresolved external symbol” errors.

Would anyone provide some guidance? My teammates have a Quadro P1000 and Geforce GTX 1050, and I have a Geforce RTX 2070. Mine should definitely be compatible with the extension, I checked. We all have Windows. I’m not sure what drivers my teammates have but I downloaded the most recent driver version 457.33 for Windows.

Have you set contextInfo.verboseCompatibleDevices to true? If you do there should be debug messages being printed that tell you why each device is considered to be not compatible.

Functions provided by an extension must always be loaded dynamically with vkGetDeviceProcAddr or vkGetInstanceProcAddr depending on whether it is a device or instance extension respectively.

I did not realize I had to load it dynamically. It’s compiling now on my end; thank you so much! Hopefully my teammates can get it working as well.