Vulkan Raytracing not working on Unreal Engine 5.5.1 (Ubuntu 22.04)(gtx 1070)(Nvidia Pascal)

Hi everyone,

I’m currently facing challenges getting Vulkan raytracing/pathtracing to work in Unreal Engine 5.5.1 on Ubuntu 22.04. My GPU is an Nvidia GeForce GTX 1070 (Pascal).

I encountered similar issues with DX12/DXR (DirectX Raytracing) on Windows using Unreal Engine 5.4.4. After some research on this topic i found the the reason

I discovered that raytracing support for Pascal GPUs in UE4 relied on emulation. Unfortunately, it seems Epic Games has removed support for Pascal GPUs by limiting access to the variable DXR_ALLOW_EMULATED_RAYTRACING=1, which requires editing the source code and rebuilding the engine as a workaround , the solution (detailed here: GTX-RTEMU-543-bin-patch/README.md at GTX-RTEMU-543-bin-patch · jimshalo10/GTX-RTEMU-543-bin-patch · GitHub).

I’m starting to think this might be the same situation with Vulkan. Has anyone experienced this issue or found a solution? Any insights would be greatly appreciated!

Thank you!

As i guessed , it seems the same case

// Use the API version stored in the profile
	ApiVersion = GetVulkanApiVersionForFeatureLevel(GMaxRHIFeatureLevel, false);

#if VULKAN_RHI_RAYTRACING
	// Run a profile check to see if this device can support our raytacing requirements since it might change the required API version of the instance
	if (FVulkanPlatform::SupportsProfileChecks() && GVulkanRayTracingCVar.GetValueOnAnyThread())
	{
		static IConsoleVariable* RequireSM6CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.RayTracing.RequireSM6"));
		const bool bRequireSM6 = RequireSM6CVar && RequireSM6CVar->GetBool();
		const bool bRayTracingAllowedOnCurrentShaderPlatform = (bRequireSM6 == false) || (GMaxRHIShaderPlatform == SP_VULKAN_SM6 || IsVulkanMobileSM5Platform(GMaxRHIShaderPlatform));

		if (CheckVulkanProfile(GMaxRHIFeatureLevel, true) && bRayTracingAllowedOnCurrentShaderPlatform)
		{
			// Raytracing is supported, update the required API version
			ApiVersion = GetVulkanApiVersionForFeatureLevel(GMaxRHIFeatureLevel, true);
		}
		else
		{
			// Raytracing is not supported, disable it completely instead of only loading parts of it
			GVulkanRayTracingCVar->Set(0, ECVF_SetByCode);

			if (!bRayTracingAllowedOnCurrentShaderPlatform)
			{
				UE_LOG(LogVulkanRHI, Display, TEXT("Vulkan RayTracing disabled because SM6 shader platform is required (r.RayTracing.RequireSM6=1)."));
			}
			else
			{
				UE_LOG(LogVulkanRHI, Display, TEXT("Vulkan RayTracing disabled because of failed profile check."));
			}
		}
	}
#endif // VULKAN_RHI_RAYTRACING

https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/VulkanRHI/Private/VulkanRHI.cpp
https://github.com/NvRTX/UnrealEngine/blob/nvrtx-5.4/Engine/Source/Runtime/VulkanRHI/Private/VulkanRHI.cpp

by commenting out the whole check and setting the second line to true , raytracing debug appeared in the menu but still raytracing isn’t working

Development > Rendering Development > Platform & Builds question unreal-engine

Any help would be appreciated question