DebugDumpFilter
DebugDumpFilter
#Overview
name: DebugDumpFilter
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 4
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of DebugDumpFilter is to control the debugging output for texture compression in Unreal Engine 5. It is used to specify which textures should be dumped for debugging purposes during the texture compression process.
This setting variable is primarily used in the TextureFormatOodle plugin, which is responsible for texture compression using the Oodle technology. It is also referenced in the TextureFormatIntelISPCTexComp module, which handles texture compression using Intel ISPC.
The value of this variable is set through the engine configuration file (GEngineIni) and can be overridden via command-line arguments. It is imported from the config cache in the FTextureFormatOodleConfig class.
DebugDumpFilter interacts with other variables such as bDebugColor and LogVerbosity to control the debug output behavior. It is used in conjunction with the texture path name to determine if a specific texture should be dumped for debugging.
Developers must be aware that:
- This variable affects performance and disk usage when enabled, as it causes additional debug information to be saved.
- It uses wildcard matching to filter textures, so careful consideration should be given to the filter string to avoid unintended debug output.
- The filter is case-insensitive.
Best practices when using this variable include:
- Use specific filters to target only the textures you need to debug, rather than using broad filters like “*”.
- Disable or clear the filter in production builds to avoid performance overhead.
- Combine it with other debug settings like LogVerbosity for comprehensive debugging.
- Use command-line overrides for quick debugging sessions without modifying the config files.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3447, section: [TextureFormatOodleSettings]
- INI Section:
TextureFormatOodleSettings
- Raw value: ``
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Developer/TextureFormatOodle/Source/Private/TextureFormatOodle.cpp:562
Scope (from outer to inner):
file
class class FTextureFormatOodleConfig
Source code excerpt:
}
FString DebugDumpFilter; // dump textures that were encoded
int LogVerbosity; // 0-2 ; 0=never, 1=large only, 2=always
};
FTextureFormatOodleConfig() :
bDebugColor(false),
GlobalLambdaMultiplier(1.f)
#Loc: <Workspace>/Engine/Plugins/Developer/TextureFormatOodle/Source/Private/TextureFormatOodle.cpp:589
Scope (from outer to inner):
file
class class FTextureFormatOodleConfig
function void ImportFromConfigCache
Source code excerpt:
// Class config variables
GConfig->GetBool(IniSection, TEXT("bDebugColor"), bDebugColor, GEngineIni);
GConfig->GetString(IniSection, TEXT("DebugDumpFilter"), LocalDebugConfig.DebugDumpFilter, GEngineIni);
GConfig->GetInt(IniSection, TEXT("LogVerbosity"), LocalDebugConfig.LogVerbosity, GEngineIni);
GConfig->GetFloat(IniSection, TEXT("GlobalLambdaMultiplier"), GlobalLambdaMultiplier, GEngineIni);
FString CmdLineString;
if (FParse::Value(FCommandLine::Get(), TEXT("-OodleDebugDumpFilter="), CmdLineString) )
{
UE_LOG(LogTextureFormatOodle, Display, TEXT("Enabling debug dump from command line: -OodleDebugDumpFilter=%s"), *CmdLineString);
LocalDebugConfig.DebugDumpFilter = CmdLineString;
}
if (FParse::Param(FCommandLine::Get(), TEXT("OodleDebugColor")))
{
UE_LOG(LogTextureFormatOodle, Display, TEXT("Enabling debug color encoding from command line (-OodleDebugColor)"));
bDebugColor = true;
#Loc: <Workspace>/Engine/Plugins/Developer/TextureFormatOodle/Source/Private/TextureFormatOodle.cpp:1506
Scope (from outer to inner):
file
class class FTextureFormatOodle : public ITextureFormat
function virtual bool CompressImage
Source code excerpt:
// Check if we want to dump the before/after images out.
bool bImageDump = false;
if (GlobalFormatConfig.GetLocalDebugConfig().DebugDumpFilter.Len() &&
!bDebugColor && // don't bother if they are solid color
(Image.SizeX >= 4 || Image.SizeY >= 4)) // don't bother if they are too small.
{
if (FWildcardString::IsMatchSubstring(*GlobalFormatConfig.GetLocalDebugConfig().DebugDumpFilter, DebugTexturePathName.GetData(), DebugTexturePathName.GetData() + DebugTexturePathName.Len(), ESearchCase::IgnoreCase))
{
bImageDump = true;
}
}
int CurJobifyNumThreads = OodleJobifyNumThreads;
#Loc: <Workspace>/Engine/Source/Developer/TextureFormatIntelISPCTexComp/Private/TextureFormatIntelISPCTexComp.cpp:990
Scope (from outer to inner):
file
class class FTextureFormatIntelISPCTexComp : public ITextureFormat
function virtual bool CompressImage
Source code excerpt:
#if DEBUG_SAVE_INTERMEDIATE_IMAGES
// To DebugDump specific files, modify DebugDumpFilter here
// (currently not exposed to command line, but could be)
//static FString DebugDumpFilter(TEXT("*DummySpriteTexture*"));;
static FString DebugDumpFilter(TEXT("*"));
//static FString DebugDumpFilter;
bool SaveInputOutput = false;
if ( ! DebugDumpFilter.IsEmpty() )
{
SaveInputOutput = FWildcardString::IsMatchSubstring(*DebugDumpFilter, DebugTexturePathName.GetData(), DebugTexturePathName.GetData() + DebugTexturePathName.Len(), ESearchCase::IgnoreCase);
}
FString DebugDumpFileNameBase;
if (SaveInputOutput)
{
FString FileName = FString::Printf(TEXT("%.*s_%dx%d_%s_%dx%d"), DebugTexturePathName.Len(), DebugTexturePathName.GetData(),