Lightmap artifacts caused by float precision difference between platforms in UE 5.5

Hello! We’re in the process of migrating from Unreal Engine 5.3 to 5.5, and once again we’ve encountered the issue with lightmap artifacts when lighting is built on a different platform than the one later used for cooking/packaging the game - or even when simply opening the same map in the editor on a different platform (Mac/Windows).

Here are the questions we asked previosly:

[Content removed]

[Content removed]

We’ve now applied the same fix, and it worked - the differences between the Mac and Windows editors are gone, with no artifacts appearing in either.

[Image Removed]

The problem now is that we’re seeing artifacts in our CI (TeamCity) Windows builds, while local builds are fine. We bumped TEXTURE_DERIVEDDATA_VER as suggested last time, but it seems this didn’t invalidate the DDC cache - one indication of this is that the game’s cooking time didn’t increase afterward.

Could you please clarify whether this lightmap baking issue was indeed not fixed in UE 5.5, and whether our fix is valid? If so, do you have any idea why bumping TEXTURE_DERIVEDDATA_VER might not be working for us?

Hi Babey,

I think there is no reason bumping TEXTURE_DERIVEDDATA_VER didn’t work. Could you share the cooking log after changing TEXTURE_DERIVEDDATA_VER?

BTW, do you use incremental cook? If it’s not incremental, the cooking time should be updated every time.

Hi Wei,

Sorry for the delayed response.

As I know, we don’t use incremental cooking.

I attached the log files from two builds:

One with only the GUID update - it still appears to be using data from the DDC and there is the issue with lightmaps.

Another with a clean Shared DDC folder - this one has no issues with lightmaps.

Let me know if you need anything else.

Hello Wei,

It seems that we completely got rid of the artifacts by clearing local cache on all our build agents and changing shared DDC folder for them,

so we decided to postpone the further investigation until the problem will appear again.

Thank you for your support!

Hi,

It’s a bit weird that the lightmap textures weren’t rebuilt in the first cook build. If the TEXTURE_DERIVEDDATA_VER is changed, it should rebuild all the textures.

Is it possible to logout the TEXTURE_DERIVEDDATA_VER to verify that the editor is rebuilt with the change?

Hi, yes I can try. Do you happen to know the appropriate place where this kind of log should go?

Also, could you please confirm the correct workflow after changing TEXTURE_DERIVEDDATA_VER? Do I need to rebuild the lighting in the editor with both Editor and Lightmass reassembled, or is it sufficient to just update the GUID and launch the build packaging with the updated editor?

I don’t think it’s necessary to rebuild lighting, but rebuild lighting should help I think.

It should work properly with GUID updated and build packaging with updated editor.

Any place is fine to log the TEXTURE_DERIVEDDATA_VER out, ​maybe the place for logging “Packages Cooked:”

COOK_STAT(UE_LOG(LogCook, Display, TEXT("Packages Cooked: %d,%s Packages Skipped by Platform: %d, Total Packages: %d"), ReportedNumCooked, (bReportIncrementalSkips ? *FString::Printf(TEXT(" Packages Incrementally Skipped: %d,"), ReportedNumPackagesIncrementallySkipped) : TEXT("")), PackageDatas->GetNumCooked(ECookResult::Failed), ReportedTotalPackages