Epic's GPUlightmass

@yujiang.wang In 5.7 substrate is enabled by default. The vrTemplate map uses a Blendable gbuffer for substrate. After running gpuLighmass, the results don’t look good - almost as if there’s no bounce light? When changing that gbuffer to Adaptive in the project settings, all works nice again. Makes sense?

Just in case someone uses that template as a start for a project (I did) and runs into the same issue.

Updated. You can have a try.

3 Likes

Thanks! It works again. I do see a visual difference but that would be as expected? See video. I can send you the project if its something related to gpuLM.

Thanks! It works again. I do see a visual difference but that would be as expected? See video. I can send you the project if its something related to gpuLM.

Before my fix non-Substrate materials when Substrate was enabled were compiled to empty materials. Based on how the path tracer works I made them use the old, non-Substrate path. However I’m fairly new to Substrate and don’t really know how much the non-Substrate path vs Substrate-adaptive (which converts your material to Substrate automatically) will differ. Maybe you can compare how the path tracer behaves and have some idea.

The path tracer result when using blend and adaptive is totally different (see pic). Maybe some of my materials aren’t supported (hdr emissive sky)?! I will use the adaptive gbuffer for now until I’ve switched everything to substrate.

Hi @yujiang.wang

Currently I am porting older environments into 5.6.1 with your GPU Lightmass patch, pretty much all of these environments were baked with GPU lightmass in older versions.

When we try to bake environments with landscape actors in them, we get an instant crash

I’ve tried
-Converting the landscapes to nanite
-Splitting up the landscapes into smaller landscapes

Neither fixed the problem, however, I was able to use the merge actor tool to convert the landscape and its material into a baked static mesh, this workaround allowed the environment to bake but this results in a loss in both mesh and texture detail on the landscape.

Any ideas on a fix?

\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: === Critical error: ===
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error:
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: Assertion failed: RayTracingGeometry != nullptr \[File:E:\\P4New\\Edge\\Prod-5.6\\Engine\\Source\\Runtime\\Renderer\\Public\\RayTracingMeshDrawCommands.h\] \[Line: 154\]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error:
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error:
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error:
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff9513f3458 UnrealEditor-Core.dll!FDebug::CheckVerifyFailedImpl2() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff93043b085 UnrealEditor-Renderer.dll!FDynamicRayTracingMeshCommandContext::FinalizeCommand() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff9300ea88a UnrealEditor-Renderer.dll!FRayTracingMeshProcessor::BuildRayTracingMeshCommands<FMeshMaterialShader,TBasePassShaderElementData >() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff930146b87 UnrealEditor-Renderer.dll!FRayTracingMeshProcessor::ProcessPathTracing() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff930477f18 UnrealEditor-Renderer.dll!FRayTracingMeshProcessor::TryAddMeshBatch() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff930419a45 UnrealEditor-Renderer.dll!FRayTracingMeshProcessor::AddMeshBatch() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff8ebae8d9b UnrealEditor-GPULightmass.dll!GPULightmass::FSceneRenderState::SetupRayTracingScene() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff8ebb01e88 UnrealEditor-GPULightmass.dll!GPULightmass::FVolumetricLightmapRenderer::VoxelizeScene() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff8eba49658 UnrealEditor-GPULightmass.dll!UE::Core::Private::Function::TFunctionRefCaller<GPULightmass::FScene::BackgroundTick'::34’::<lambda_1>,void,FRHICommandListImmediate &>::Call() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff95a0874d7 UnrealEditor-RenderCore.dll!FRenderThreadCommandPipe::EnqueueAndLaunch'::5’::<lambda_1>::operator()() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff95a0ae328 UnrealEditor-RenderCore.dll!TGraphTask<TFunctionGraphTaskImpl<void \__cdecl(void),1> >::ExecuteTask() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff9510dea82 UnrealEditor-Core.dll!UE::Tasks::Private::FTaskBase::TryExecuteTask() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff9510d1b1f UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff9510d219e UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff95a0d2719 UnrealEditor-RenderCore.dll!RenderingThreadMain() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff95a0d3804 UnrealEditor-RenderCore.dll!FRenderingThread::Run() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff95176350d UnrealEditor-Core.dll!FRunnableThreadWin::Run() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff95175c50f UnrealEditor-Core.dll!FRunnableThreadWin::GuardedRun() [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error: \[Callstack\] 0x00007ff9d54ae8d7 KERNEL32.DLL!UnknownFunction [ ]
\[2025.11.21-05.16.50:066\]\[775\]LogWindows: Error:

Any ideas on a fix?

Increase the value of r.RayTracing.ResidentGeometryMemoryPoolSizeInMB. In the latest 5.7.0 GPULM won’t crash but the geometries over the pool limit will still be removed.

1 Like

Hi guys, one question, does this GPU lightmass versione from our lord and savior @yujiang.wang work with the experimental WP static light support? I tried but i cannot seem to make it work but maybe i’m just doing it wrong.

Thanks you so much!

I haven’t done anything related to WP in GPULM, so it probably won’t work

1 Like

Release 5.7.1 2025.12.06

https://downloads.luoshuangfw.io/gpulm-releases/GPULM-5.7.1.7z
Back to release list

2 Likes

Thanks @yujiang.wang I really appreciate this.

Any possibility you will be adding it in the future?

Thank you for the amazing work and the support!

Tip: Improve real-time preview responsiveness in editor

You can add the following virtual texturing related CVars and settings to your DefaultEngine.ini to improve GPULM’s VT-based real-time preview responsiveness:

[/Script/Engine.RendererSettings]
r.VT.MaxUploadsPerFrameInEditor=128
r.VT.MaxContinuousUpdatesPerFrameInEditor=128
r.VT.PageFreeThreshold=4

[/Script/Engine.VirtualTexturePoolConfig]
+Pools=(Formats=(PF_A32B32G32R32F),MinTileSize=0,MaxTileSize=0,SizeInMegabyte=512,bEnableResidencyMipMapBias=False,bAllowSizeScale=False,MinScaledSizeInMegabyte=0,MaxScaledSizeInMegabyte=0)

These settings should make the viewport update faster especially when turning camera.

Back to release list

2 Likes