GPU在Nanite的NodeAndClusterCull节点崩溃

在项目进程中引发了GPU崩溃,堆栈显示崩溃最终在NodeAndClusterCull阶段: [Image Removed]

[Image Removed]

[Image Removed]

我们在论坛上发现了疑似相关的问题:https://forums.unrealengine.com/t/gpu\-hung\-rendervirtualshadowmaps\-nanite\-nodeandclustercull/2661642/5,想知道是否有比较可行的解决方案。

另注:触发的时机在late shader association后,原帖时机在着色器编译期间打开关卡。 [Image Removed]

[Attachment Removed]

重现步骤
正常推进项目部分机型上偶然发生(目前只在50系显卡上)

[Attachment Removed]

Hi,

抱歉回复的晚了,这个崩溃一直是一个已知的问题,但是我们没有找到一个明确的修复方法。同事最近说有个客户找到一个workaround,但是还没有得到其他人的验证,不确定是否对你们有效,可以暂且试一下。

另外这个Shader Association的信息是NVAftermath在GPU Crash之前注册相关shader用的,是正常的信息。

请问这个崩溃频率大概是什么样的?我其实很像实际debug一下,看看能不能找到相关的问题。

bool LumenDiffuseIndirect::UseAsyncCompute(const FViewFamilyInfo& ViewFamily, EDiffuseIndirectMethod DiffuseIndirectMethod)
{
	// Disable async if hit-lighting is used and RHI doesn't support async DispatchRays
	if (!GRHIGlobals.RayTracing.SupportsAsyncRayTraceDispatch && Lumen::UseHardwareRayTracing(ViewFamily))
	{
		check(ViewFamily.Views.Num() > 0 && ViewFamily.Views[0]->bIsViewInfo);
		const FViewInfo& View = *(const FViewInfo*)ViewFamily.Views[0];
 
		if (LumenScreenProbeGather::UseHitLighting(View, DiffuseIndirectMethod) || LumenRadianceCache::UseHitLighting(View, DiffuseIndirectMethod))
		{
			return false;
		}
	}
 
	// BEGIN #DTG_PreventNodeAndClusterCullCrash
	if (ViewFamily.FrameNumber <= 1)
	{
		return false;
	}
	// END #DTG_PreventNodeAndClusterCullCrash
 
	return Lumen::UseAsyncCompute(ViewFamily) && CVarLumenDiffuseIndirectAsyncCompute.GetValueOnRenderThread() != 0;
}

[Attachment Removed]

Hi,请问这个改动有效果吗?

[Attachment Removed]