Breadcrumbs in Shipping

Hello,

We recently migrated from UE 5.4 to UE 5.5. In 5.4, our Shipping configuration crash reports included GPU crash logs and breadcrumbs, but in 5.5 these are missing.

We noticed this commit:

https://github.com/EpicGames/UnrealEngine/commit/10cdd4a111829b1ec04738249b25dcf929955126

It introduced WITH_RHI_BREADCRUMBS, defined as:

#define WITH_RHI_BREADCRUMBS ((UE_BUILD_DEBUG || UE_BUILD_DEVELOPMENT) || WITH_PROFILEGPU)

From what I understand, breadcrumbs are no longer controlled only by the CVar r.GPUCrashDebugging.Breadcrumbs but also by this define, which is false in Shipping builds.

However, in this other commit:

https://github.com/EpicGames/UnrealEngine/commit/402070214d06d83e3bc29a0b5306d90a4605fd5f

The message states “engine breadcrumbs are on in all configurations.”

This suggests breadcrumbs should be available in Shipping builds.

Could you clarify how Epic intends this to work?

  • Are breadcrumbs expected to be disabled in Shipping?
  • Do we need to add WITH_RHI_BREADCRUMBS manually in our targets?

Thank you

Hello, the way to enable breadcrumbs (and profiling) in Shipping and Test builds is too add bAllowProfileGPUInShipping and bAllowProfileGPUInTest to your game and client build .cs files like this:

if (Target.Platform == UnrealTargetPlatform.Win64)
{
    bAllowProfileGPUInShipping = true;
    bAllowProfileGPUInTest = true;
}

The official docs are a little light on the details.

$ bAllowProfileGPUInTest (Boolean): Whether to turn on GPU markers for Test builds.
$ bAllowProfileGPUInShipping (Boolean): Whether to turn on GPU markers for Shipping builds.

These settings will also enable defines like ALLOW_PROFILEGPU_IN_SHIPPING and WITH_PROFILEGPU which will enable WITH_RHI_BREADCRUMBS.

Let me know if that’s not working for you, it’s what we use in Fortnite.

Hello,

thanks for the reply.

We’ve resolved it in the similar way,

by enabling the WITH_RHI_BREADCRUMBS directly in the client build .cs file:

if (Type == UnrealBuildTool.TargetType.Client)
{
    if (Configuration == UnrealTargetConfiguration.Test ||
        Configuration == UnrealTargetConfiguration.Shipping)
    {
        GlobalDefinitions.Add("WITH_RHI_BREADCRUMBS=1");
    }
}

Regards,

Tomas Ruzicka.