在项目进程中引发了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]
Liu.Wei
(Liu.Wei)
3
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]