bCompileSignalProcessingPipeline

bCompileSignalProcessingPipeline

#Overview

name: bCompileSignalProcessingPipeline

The value of this variable can be defined or overridden in .ini config files. 2 .ini config files referencing this setting variable.

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of bCompileSignalProcessingPipeline is to determine whether the signal processing pipeline should be compiled for a specific shader platform in Unreal Engine 5.

This setting variable is primarily used within the RHI (Rendering Hardware Interface) subsystem of Unreal Engine. It is part of the data-driven shader platform information system, which allows for flexible configuration of shader compilation and rendering features across different platforms.

The value of this variable is set through the data-driven shader platform info parsing process, as seen in the FGenericDataDrivenShaderPlatformInfo::ParseDataDrivenShaderInfo function. It is likely populated from a configuration file or platform-specific settings.

bCompileSignalProcessingPipeline interacts with other shader platform-specific variables within the FGenericDataDrivenShaderPlatformInfo class, such as bRequiresRenderTargetDuringRaster, bSupportsMeshShadersTier0, and others. These variables collectively define the capabilities and requirements of a specific shader platform.

Developers must be aware that this variable is platform-specific and its value may affect the compilation and availability of signal processing features in shaders. It’s important to consider this setting when developing cross-platform applications or when targeting specific hardware capabilities.

Best practices when using this variable include:

  1. Ensuring that the correct value is set for each target platform to avoid unnecessary compilation or missing features.
  2. Using the provided static accessor method GetCompileSignalProcessingPipeline() to check the value, rather than accessing the variable directly.
  3. Considering this setting in conjunction with other platform-specific shader capabilities when designing rendering pipelines or implementing graphics features.
  4. Documenting any dependencies on this setting in platform-specific code or shader implementations.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/VulkanPC/DataDrivenPlatformInfo.ini:108, section: [ShaderPlatform VULKAN_SM5]

Location: <Workspace>/Engine/Config/VulkanPC/DataDrivenPlatformInfo.ini:227, section: [ShaderPlatform VULKAN_SM6]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/RHI/Private/DataDrivenShaderPlatformInfo.cpp:254

Scope (from outer to inner):

file
function     void FGenericDataDrivenShaderPlatformInfo::ParseDataDrivenShaderInfo

Source code excerpt:

	GET_SECTION_BOOL_HELPER(bRequiresRenderTargetDuringRaster);
	GET_SECTION_BOOL_HELPER(bRequiresDisableForwardLocalLights);
	GET_SECTION_BOOL_HELPER(bCompileSignalProcessingPipeline);
	GET_SECTION_BOOL_HELPER(bSupportsMeshShadersTier0);
	GET_SECTION_BOOL_HELPER(bSupportsMeshShadersTier1);
	GET_SECTION_BOOL_HELPER(bSupportsMeshShadersWithClipDistance);
	GET_SECTION_INT_HELPER(MaxMeshShaderThreadGroupSize);
	GET_SECTION_BOOL_HELPER(bRequiresUnwrappedMeshShaderArgs);
	GET_SECTION_BOOL_HELPER(bSupportsPerPixelDBufferMask);

#Loc: <Workspace>/Engine/Source/Runtime/RHI/Public/DataDrivenShaderPlatformInfo.h:78

Scope (from outer to inner):

file
class        class FGenericDataDrivenShaderPlatformInfo

Source code excerpt:

	uint32 bRequiresRenderTargetDuringRaster : 1;
	uint32 bRequiresDisableForwardLocalLights : 1;
	uint32 bCompileSignalProcessingPipeline : 1;
	uint32 bSupportsMeshShadersTier0 : 1;
	uint32 bSupportsMeshShadersTier1 : 1;
	uint32 bSupportsMeshShadersWithClipDistance : 1;
	uint32 MaxMeshShaderThreadGroupSize : 10;
	uint32 bRequiresUnwrappedMeshShaderArgs : 1;
	uint32 bSupportsPerPixelDBufferMask : 1;

#Loc: <Workspace>/Engine/Source/Runtime/RHI/Public/DataDrivenShaderPlatformInfo.h:551

Scope (from outer to inner):

file
class        class FGenericDataDrivenShaderPlatformInfo
function     static const bool GetCompileSignalProcessingPipeline

Source code excerpt:

	{
		check(IsValid(Platform));
		return Infos[Platform].bCompileSignalProcessingPipeline;
	}

	static FORCEINLINE_DEBUGGABLE const bool GetSupportsMeshShadersTier0(const FStaticShaderPlatform Platform)
	{
		check(IsValid(Platform));
		return Infos[Platform].bSupportsMeshShadersTier0;