I’ve updated the file and your issue should have been resolved.
Yep, this issue is solved, thank you a lot. I find another one on an another level)) Gemme some time to narrow down list of suspects.
I’m sorry but I haven’t figured out why I’m getting “ensure exception”. May be screenshots will help:
Callstack:
[UnrealEditor-GPULightmass.dll] FComputeShaderUtils::ValidateGroupCount(const UE::Math::TIntVector3<int> &) RenderGraphUtils.h:434
[UnrealEditor-GPULightmass.dll] FComputeShaderUtils::AddPass<FFirstBounceRayGuidingCDFBuildCS>(FRDGBuilder &, FRDGEventName &&, ERDGPassFlags, const TShaderRefBase<FFirstBounceRayGuidingCDFBuildCS, FShaderMapPointerTable> &, const FShaderParametersMetadata *, FFirstBounceRayGuidingCDFBuildCS::FParameters *, TIntVector3<int>) RenderGraphUtils.h:563
[UnrealEditor-GPULightmass.dll] GPULightmass::FLightmapRenderer::Finalize(FRDGBuilder &) LightmapRenderer.cpp:2688
[UnrealEditor-GPULightmass.dll] GPULightmass::FLightmapRenderer::BackgroundTick() LightmapRenderer.cpp:4082
[UnrealEditor-GPULightmass.dll] GPULightmass::FSceneRenderState::BackgroundTick(FRHICommandList &) Scene.cpp:1730
[Inlined] [UnrealEditor-RenderCore.dll] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>, void __cdecl(FRHICommandListImmediate &)>::operator()(FRHICommandListImmediate &) Function.h:471
[UnrealEditor-RenderCore.dll] `FRenderThreadCommandPipe::EnqueueAndLaunch'::`5'::<lambda_1>::operator()() RenderingThread.cpp:1546
[Inlined] [UnrealEditor-RenderCore.dll] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>, void __cdecl(void)>::operator()() Function.h:471
[Inlined] [UnrealEditor-RenderCore.dll] TFunctionGraphTaskImpl<void __cdecl(void), 1>::DoTaskImpl(TUniqueFunction<void __cdecl(void)> &, Type, const TRefCountPtr<FBaseGraphTask> &) TaskGraphInterfaces.h:1111
[Inlined] [UnrealEditor-RenderCore.dll] TFunctionGraphTaskImpl<void __cdecl(void), 1>::DoTask(Type, const TRefCountPtr<FBaseGraphTask> &) TaskGraphInterfaces.h:1104
[UnrealEditor-RenderCore.dll] TGraphTask<TFunctionGraphTaskImpl<void __cdecl(void), 1> >::ExecuteTask() TaskGraphInterfaces.h:706
[UnrealEditor-Core.dll] UE::Tasks::Private::FTaskBase::TryExecuteTask() TaskPrivate.h:527
[Inlined] [UnrealEditor-Core.dll] FBaseGraphTask::Execute(TArray<FBaseGraphTask *, TSizedDefaultAllocator<32> > &, Type, bool) TaskGraphInterfaces.h:505
[UnrealEditor-Core.dll] FNamedTaskThread::ProcessTasksNamedThread(int, bool) TaskGraph.cpp:779
[UnrealEditor-Core.dll] FNamedTaskThread::ProcessTasksUntilQuit(int) TaskGraph.cpp:667
[UnrealEditor-RenderCore.dll] RenderingThreadMain(FEvent *) RenderingThread.cpp:318
[UnrealEditor-RenderCore.dll] FRenderingThread::Run() RenderingThread.cpp:476
[UnrealEditor-Core.dll] FRunnableThreadWin::Run() WindowsRunnableThread.cpp:156
[UnrealEditor-Core.dll] FRunnableThreadWin::GuardedRun() WindowsRunnableThread.cpp:71
This is an old issue with with first bounce ray guiding, you can either disable it or just run through, shouldn’t cause much harm. I’ll find some time to fix it later
Does anyone miss good ol’ baked AO and AO mask? Asking cuz I do (and some other level artists do too) and I think it’s one of those critical features that GPULM never got.
Yep, disabling helped, thank you very much. Running through works, but around 35 objects left with unbuilded light in this case.
Release 06/23/2025:
Now you should see some improvements around chart boundaries:
Make sure that your lightmap resolution >= Min Lightmap Resolution in the static mesh editor.
Hi there,
if installed the patch for 5.6 but still have one issue. When I have my landscape in the scene the GPU Lightmass build crashes with the following error message:
Assertion failed: RayTracingGeometry != nullptr [File:D:\build++UE5\Sync\Engine\Source\Runtime\Renderer\Public\RayTracingMeshDrawCommands.h] [Line: 154
This is what my setup looks like:
- I’m not using Nanite
- Settings on the landscape are pretty much vanilla (besides the material of course)
- Used default GPU Lightmass settings
Worth mentioning:
- It seems to be related to the total number of components. When I create a new landscape with default settings and some sculpting the build doesn’t crash. If I import my heightmap and generate the landscape from it, the bake crashes. It also crashes if I create a new landscape with the same dimensions and component numbers my imported one would have.
These are the numbers my landscape has:
These are the default numbers for a landscape:
I tested various different numbers for “Total Number of Components” and it seems the crash starts to happen at around 900+. A terrain with 784 still built without issues.
Any idea what a fix could be for this? Without the landscape everything works perfectly fine.
PS: Sometimes I also see the following crash, especially if nothing besides the light setup (inlcuding Lightmass Importance Volume) is in the level:
Assertion failed: bHasExecuted [File:D:\build++UE5\Sync\Engine\Source\Runtime\RenderCore\Private\RenderGraphValidation.cpp] [Line: 75]
Render graph execution is required to ensure consistency with immediate mode.
Edit: In the meantime I was able to rebuild the landscape with fewer total components and pretty much matching the old one, which now allows me to build with GPU Lightmass. So, at this point just consider this to be a warning where there seems to be a limit.
Can you send me a repro project with your initial setup?
How can I get it for the source version of the engine? The same way with a patch?
Two ways: the first one is like what I said in the post, diff gpulm-5.6 against 5.6.0-release and get a patch.
The second way is, actually, source files are included in the binary 7z as well, so you can try to apply them directly on your engine and see if it compiles. The reason they are included is for people using a launcher engine but with C++ projects/C++ plugins.
I actually already did that and posted patch somewhere not too far below your post.
Release 5.6.1: https://downloads.luoshuangfw.io/gpulm-releases/GPULM-5.6.1.7z
Experimental feature: lightmap UV seam stitching (based on Sebastian Sylvan’s code, Fixing Texture Seams With Linear Least-Squares // A Random Walk Through Geek-Space and Fixing Texture Seams with least squares optimization · GitHub)
Disabled by default, set strength to 1 in GPULM settings → UV seam stitching to enable
This version also contains a new version of lightmap UV generation algorithm. If you want to try the seam stitching feature you probably want to use this new version.
Also, there were some issues with Vulkan that irradiance caching and stationary lights were totally broken. They are now fixed and Vulkan on both Windows/Linux should have similar performance/quality with DX12.
(post deleted by author)
For some reason whenever I complete a GPU Lightmass bake it never actually applies it?
It bakes and then after it says all the objects still need to be rebuilt.
I tried it for previous versions as well and it’s bascially the same result, and the non patched GPU lightmass will always crash in the same map.
If it helps I am using a lighting scenario for the baked lighting and the map is fairly complex.
I’m not sure if there’s some setting I’m missing or maybe it’s something else?
are you using any of [lighting scenarios, level instances, world partition]?
Yes, I am using a single lighting scenario.
without your scene setup i have no idea - unfortunately
You’re the best! <3
Is it possible to bake on Vulkan? Or is it necessary to use DX12?