Assertion failed when create VR template on linux

Hello everyone, I worked with UE 5.4.0\5.5.0 I get that crash when try to create or open VR template on many machines. It neither depends on GPU (Tried 7900XTX, RTX 3060, RTX A2000 ADA, RTX4000 ADA, AMD M780) with different driver versions. All that system similarities was OS: Endeavour OS with 6.12 (6.6 also) kernel, but I tried do it also on Debian (6.1 and 6.6 kernels) and stuck again with that problem.

Other project templates works fine

I also compiled engine by myself from github source and few times used pre-compiled versions from epic games linux page. Still the same…

Nvidia drivers tested: 540, 565
Amd drivers: mesa, amdvlk, vulkan-radeon (all latest from pacman and AUR)

Assertion failed: !bUseBindless [File:./Runtime/VulkanRHI/Private/VulkanPipelineState.h] [Line: 69] 



libUnrealEditor-VulkanRHI.so!FVulkanCommonPipelineDescriptorState::SetTexture(unsigned char, unsigned int, FVulkanTexture const*, VkImageLayout) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/VulkanRHI/Private/VulkanPipelineState.h:69]
libUnrealEditor-VulkanRHI.so!FVulkanCommandListContext::RHISetShaderTexture(FRHIGraphicsShader*, unsigned int, FRHITexture*) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/VulkanRHI/Private/VulkanPendingState.h:243]
libUnrealEditor-VulkanRHI.so!void UE::RHICore::RHISetShaderParametersShared<FVulkanCommandListContext, FRHIGraphicsShader>(FVulkanCommandListContext&, FRHIGraphicsShader*, TArrayView<unsigned char const, int>, TArrayView<FRHIShaderParameter const, int>, TArrayView<FRHIShaderParameterResource const, int>, TArrayView<FRHIShaderParameterResource const, int>, bool) [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/RHICore/Internal/RHIShaderParametersShared.h:95]
libUnrealEditor-VulkanRHI.so!FVulkanCommandListContext::RHISetShaderParameters(FRHIGraphicsShader*, TArrayView<unsigned char const, int>, TArrayView<FRHIShaderParameter const, int>, TArrayView<FRHIShaderParameterResource const, int>, TArrayView<FRHIShaderParameterResource const, int>) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/VulkanRHI/Private/VulkanCommands.cpp:448]
libUnrealEditor-RHI.so!FRHICommandSetShaderParameters<FRHIGraphicsShader>::Execute(FRHICommandListBase&) [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/RHI/Public/RHICommandListCommandExecutes.inl:129]
libUnrealEditor-Engine.so!FRHICommand<FRHICommandSetShaderParameters<FRHIGraphicsShader>, FRHICommandSetShaderParametersString1640>::ExecuteAndDestruct(FRHICommandListBase&) [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/RHI/Public/RHICommandList.h:1471]
libUnrealEditor-RHI.so!FRHICommandListBase::Execute() [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/RHI/Private/RHICommandList.cpp:429]
libUnrealEditor-RHI.so!FRHICommandListExecutor::FTranslateState::Translate(FRHICommandListBase*) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/RHI/Private/RHICommandList.cpp:902]
libUnrealEditor-RHI.so!UE::Core::Private::Function::TFunctionRefCaller<FRHICommandListExecutor::FSubmitState::Dispatch(FRHICommandListBase*)::$_0, void>::Call(void*) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/RHI/Private/RHICommandList.cpp:871]
libUnrealEditor-RHI.so!FRHICommandListExecutor::FTaskPipe::Execute(FRHICommandListExecutor::FTaskPipe::FTask*, TRefCountPtr<FBaseGraphTask> const&) const [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/Core/Public/Templates/Function.h:470]
libUnrealEditor-Core.so!TGraphTask<TFunctionGraphTaskImpl<void (ENamedThreads::Type, TRefCountPtr<FBaseGraphTask> const&), (ESubsequentsMode::Type)0> >::ExecuteTask() [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/Core/Public/Templates/Function.h:470]
libUnrealEditor-Core.so!UE::Tasks::Private::FTaskBase::TryExecuteTask() [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/Core/Public/Tasks/TaskPrivate.h:504]
libUnrealEditor-Core.so!FNamedTaskThread::ProcessTasksNamedThread(int, bool) [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/Core/Public/Async/TaskGraphInterfaces.h:482]
libUnrealEditor-Core.so!FNamedTaskThread::ProcessTasksUntilQuit(int) [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Core/Private/Async/TaskGraph.cpp:667]
libUnrealEditor-RenderCore.so!FRHIThread::Run() [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/RenderCore/Private/RenderingThread.cpp:269]
libUnrealEditor-Core.so!FRunnableThreadPThread::Run() [/mnt/horde/++UE5/Sync/Engine/Source/./Runtime/Core/Private/HAL/PThreadRunnableThread.cpp:25]
libUnrealEditor-Core.so!FRunnableThreadPThread::_ThreadProc(void*) [/mnt/horde/++UE5/Sync/Engine/Source/Runtime/Core/Private/HAL/PThreadRunnableThread.h:187]
libc.so.6!UnknownFunction(0x942cd)
libc.so.6!UnknownFunction(0x11929b)
1 Like

I’m getting the same error on 3080ti/4.6.0 NVIDIA 550.144.03/Manjaro

I’m getting the same error. However, it’s nothing to do with VR for me - it happens when I try to enable MSAA with SM6 forward rendering.

3050ti, driver version 545, Debian

Hi @PojiloyGolem4ik
Hi @Klejs23
Hi @StapledBattery

Do you Know what Bindless is?

	FVulkanCommonPipelineDescriptorState(FVulkanDevice* InDevice)
		: VulkanRHI::FDeviceChild(InDevice)
		, bUseBindless(InDevice->SupportsBindless())
	{
	}

Because you need bUseBindless to be true (I think)

	inline void SetTexture(uint8 DescriptorSet, uint32 BindingIndex, const FVulkanTexture* Texture, VkImageLayout Layout)
	{
		check(!bUseBindless);
		check(Texture && Texture->PartialView);

		// If the texture doesnt support sampling, then we read it through a UAV
		if (Texture->SupportsSampling())
		{
			MarkDirty(DSWriter[DescriptorSet].WriteImage(BindingIndex, Texture->PartialView->GetTextureView(), Layout));
		}
		else
		{
			MarkDirty(DSWriter[DescriptorSet].WriteStorageImage(BindingIndex, Texture->PartialView->GetTextureView(), Layout));
		}
	}

Read this… maybe help somethig

this look good… you can try

VulkanPC/DataDrivenPlatformInfo.ini


[ShaderPlatform VULKAN_SM6]
bSupportsRayTracingShaders = true
bSupportsPathTracing = true
bSupportsRayTracingCallableShaders = true
bSupportsRayTracingProceduralPrimitive = true
BindlessSupport=RayTracingOnly --->  `BindlessSupport=AllShaderTypes`
Language=Vulkan
MaxFeatureLevel=SM6
ShaderFormat=SF_VULKAN_SM6

Best Regards!!

I encounter the same issue, tried on several computers with AMD and NVidia GPUs.

@Ivan3z none of these help.
Using SF_VULKAN_SM5 instead of SF_VULKAN_SM6 works, but its not a good solution.

What could be done to get it to work ?

Thanks !

1 Like

Hi @LeMackou
I’m sorry… i’m not in linux… i just see the Engine Source Code and Shearched a little in Google.

But i’m sure the problem is related to Bindless

I think it could be:
-A option disable in the graphics cart driver
-Or in the Engine configuration.
-Or in Vulcan configuration itself

An other less probable option could be the linux kernel
I remember once i have to compile the linux kerner by hand (a lot of yeras ago)
I need it for games and edit music (i was needing a kerner multimedia with high frequency if i remember well).

Linux is like so… or it was!!


EDITED:


With Windows the problems with SM5 and SM6 are related with Direct X

SM5 → Better with direct X 11
SM6 → Better with direct X 12

Maybe there is something equivalent in linux?

just an idea!!