hism问题

佚名 / 2023-05-04 / 原文

FHierarchicalStaticMeshSceneProxy::FillDynamicMeshElements(FMeshElementCollector &,const FFoliageElementParams &,const FFoliageRenderInstanceParams &) HierarchicalInstancedStaticMesh.cpp:1425
FHierarchicalStaticMeshSceneProxy::GetDynamicMeshElements(const TArray<FSceneView const *,TSizedDefaultAllocator<32> > &,const FSceneViewFamily &,unsigned int,FMeshElementCollector &) HierarchicalInstancedStaticMesh.cpp:1909
FProjectedShadowInfo::GatherDynamicMeshElementsArray(FViewInfo *,FSceneRenderer &,FGlobalDynamicIndexBuffer &,FGlobalDynamicVertexBuffer &,FGlobalDynamicReadBuffer &,const TArray<FPrimitiveSceneInfo const *,TMemStackAllocator<0> > &,const TArray<FSceneView const *,TSizedDefaultAllocator<32> > &,TArray<FMeshBatchAndRelevance,TMemStackAllocator<0> > &,int &) ShadowSetup.cpp:2090
FProjectedShadowInfo::GatherDynamicMeshElements(FSceneRenderer &,FVisibleLightInfo &,TArray<FSceneView const *,TSizedDefaultAllocator<32> > &,FGlobalDynamicIndexBuffer &,FGlobalDynamicVertexBuffer &,FGlobalDynamicReadBuffer &) ShadowSetup.cpp:2000
FSceneRenderer::GatherShadowDynamicMeshElements(FGlobalDynamicIndexBuffer &,FGlobalDynamicVertexBuffer &,FGlobalDynamicReadBuffer &) ShadowSetup.cpp:3525
FSceneRenderer::InitDynamicShadows(FRHICommandListImmediate &,FGlobalDynamicIndexBuffer &,FGlobalDynamicVertexBuffer &,FGlobalDynamicReadBuffer &) ShadowSetup.cpp:4971
FDeferredShadingSceneRenderer::InitViewsPossiblyAfterPrepass(FRHICommandListImmediate &,FILCUpdatePrimTaskData &) SceneVisibility.cpp:4505
FDeferredShadingSceneRenderer::InitViews(FRHICommandListImmediate &,Type,FILCUpdatePrimTaskData &) SceneVisibility.cpp:4402
FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate &) DeferredShadingRenderer.cpp:1455
RenderViewFamily_RenderThread(FRHICommandListImmediate &,FSceneRenderer *) SceneRendering.cpp:3739
<lambda_83aa676af25f62e876425d334fdfc6e4>::operator()(FRHICommandListImmediate &) SceneRendering.cpp:4007
TEnqueueUniqueRenderCommandType<`FRendererModule::BeginRenderingViewFamily'::`43'::FDrawSceneCommandName,<lambda_83aa676af25f62e876425d334fdfc6e4> >::DoTask(Type,const TRefCountPtr<FGraphEvent> &) RenderingThread.h:183
TGraphTask<TEnqueueUniqueRenderCommandType<`FRendererModule::BeginRenderingViewFamily'::`43'::FDrawSceneCommandName,<lambda_83aa676af25f62e876425d334fdfc6e4> > >::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32> > &,Type) TaskGraphInterfaces.h:886
FNamedTaskThread::ProcessTasksNamedThread(int,bool) TaskGraph.cpp:710
FNamedTaskThread::ProcessTasksUntilQuit(int) TaskGraph.cpp:601
FTaskGraphImplementation::ProcessThreadUntilRequestReturn(Type) TaskGraph.cpp:1480
RenderingThreadMain(FEvent *) RenderingThread.cpp:372
FRenderingThread::Run() RenderingThread.cpp:526
FRunnableThreadWin::Run() WindowsRunnableThread.cpp:84
FRunnableThreadWin::GuardedRun() WindowsRunnableThread.cpp:27
FRunnableThreadWin::_ThreadProc(void *) WindowsRunnableThread.h:37
<unknown> 0x00007ffd87e45590
<unknown> 0x00007ffd88e2485b

RunArray有俩值:0,58

deferredRendering里,RunArray有4个值,cuRunArray还是俩值

FHierarchicalStaticMeshSceneProxy::FillDynamicMeshElements(FMeshElementCollector &,const FFoliageElementParams &,const FFoliageRenderInstanceParams &) HierarchicalInstancedStaticMesh.cpp:1425
FHierarchicalStaticMeshSceneProxy::GetDynamicMeshElements(const TArray<FSceneView const *,TSizedDefaultAllocator<32> > &,const FSceneViewFamily &,unsigned int,FMeshElementCollector &) HierarchicalInstancedStaticMesh.cpp:1909
FSceneRenderer::GatherDynamicMeshElements(TArray<FViewInfo,TSizedDefaultAllocator<32> > &,const FScene *,const FSceneViewFamily &,FGlobalDynamicIndexBuffer &,FGlobalDynamicVertexBuffer &,FGlobalDynamicReadBuffer &,const TArray<unsigned char,TMemStackAllocator<0> > &,const TArray<unsigned char,TMemStackAllocator<0> > &,FMeshElementCollector &) SceneVisibility.cpp:2926
FSceneRenderer::ComputeViewVisibility(FRHICommandListImmediate &,Type,TArray<FViewCommands,TInlineAllocator<4,TSizedDefaultAllocator<32> > > &,FGlobalDynamicIndexBuffer &,FGlobalDynamicVertexBuffer &,FGlobalDynamicReadBuffer &) SceneVisibility.cpp:4110
FDeferredShadingSceneRenderer::InitViews(FRHICommandListImmediate &,Type,FILCUpdatePrimTaskData &) SceneVisibility.cpp:4369
FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate &) DeferredShadingRenderer.cpp:1455
RenderViewFamily_RenderThread(FRHICommandListImmediate &,FSceneRenderer *) SceneRendering.cpp:3739
<lambda_83aa676af25f62e876425d334fdfc6e4>::operator()(FRHICommandListImmediate &) SceneRendering.cpp:4007
TEnqueueUniqueRenderCommandType<`FRendererModule::BeginRenderingViewFamily'::`43'::FDrawSceneCommandName,<lambda_83aa676af25f62e876425d334fdfc6e4> >::DoTask(Type,const TRefCountPtr<FGraphEvent> &) RenderingThread.h:183
TGraphTask<TEnqueueUniqueRenderCommandType<`FRendererModule::BeginRenderingViewFamily'::`43'::FDrawSceneCommandName,<lambda_83aa676af25f62e876425d334fdfc6e4> > >::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32> > &,Type) TaskGraphInterfaces.h:886
FNamedTaskThread::ProcessTasksNamedThread(int,bool) TaskGraph.cpp:710
FNamedTaskThread::ProcessTasksUntilQuit(int) TaskGraph.cpp:601
FTaskGraphImplementation::ProcessThreadUntilRequestReturn(Type) TaskGraph.cpp:1480
RenderingThreadMain(FEvent *) RenderingThread.cpp:372
FRenderingThread::Run() RenderingThread.cpp:526
FRunnableThreadWin::Run() WindowsRunnableThread.cpp:84
FRunnableThreadWin::GuardedRun() WindowsRunnableThread.cpp:27
FRunnableThreadWin::_ThreadProc(void *) WindowsRunnableThread.h:37
<unknown> 0x00007ffd87e45590
<unknown> 0x00007ffd88e2485b

 这俩pass的RunArray数目不一致,导致CurRunArray一直跟当前的RunArray不一样(shadow的pass和sceneRendere的交替赋给curRunArray),一直要重建。

看夜景这俩地方调用

FHierarchicalStaticMeshSceneProxy::GetDynamicMeshElements
是否可以传个参数进去?