bSupportsMeshShadersTier1
bSupportsMeshShadersTier1
#Overview
name: bSupportsMeshShadersTier1
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 bSupportsMeshShadersTier1 is to indicate whether a specific shader platform supports Tier 1 mesh shaders, which are an advanced feature in modern graphics APIs.
This setting variable is primarily used by the Unreal Engine’s Rendering Hardware Interface (RHI) subsystem. It is part of the data-driven shader platform information system, which allows for flexible configuration of shader-related capabilities across different hardware and graphics APIs.
The value of this variable is set through the data-driven shader platform info parsing mechanism, as seen in the ParseDataDrivenShaderInfo function in DataDrivenShaderPlatformInfo.cpp. It’s likely populated from a configuration file or another data source at runtime.
This variable interacts closely with other mesh shader-related variables, such as bSupportsMeshShadersTier0 and bSupportsMeshShadersWithClipDistance. It’s part of a broader set of capabilities that define the mesh shader support level for a given platform.
Developers must be aware that this variable represents a specific tier of mesh shader support. Tier 1 likely indicates a more advanced level of mesh shader capabilities compared to Tier 0. When using this variable, developers should check for both Tier 0 and Tier 1 support to ensure proper functionality across different hardware capabilities.
Best practices when using this variable include:
- Always check for support before using Tier 1 mesh shader features in your rendering code.
- Provide fallback paths for platforms that don’t support Tier 1 mesh shaders.
- Consider the relationship between this variable and other mesh shader-related settings to ensure a consistent rendering pipeline.
- Use the provided GetSupportsMeshShadersTier1 function to query this capability rather than accessing the variable directly.
- Be aware that this setting may affect shader compilation and runtime behavior, so test thoroughly on various hardware configurations.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/Windows/DataDrivenPlatformInfo.ini:120, section: [ShaderPlatform PCD3D_SM6]
- INI Section:
ShaderPlatform PCD3D_SM6
- Raw value:
true
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Private/DataDrivenShaderPlatformInfo.cpp:256
Scope (from outer to inner):
file
function void FGenericDataDrivenShaderPlatformInfo::ParseDataDrivenShaderInfo
Source code excerpt:
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);
GET_SECTION_BOOL_HELPER(bIsHlslcc);
GET_SECTION_BOOL_HELPER(bSupportsDxc);
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Private/DataDrivenShaderPlatformInfo.cpp:465
Scope (from outer to inner):
file
function void FGenericDataDrivenShaderPlatformInfo::UpdatePreviewPlatforms
Source code excerpt:
PREVIEW_DISABLE_IF_RUNTIME_UNSUPPORTED(bSupportsRayTracingShaders);
PREVIEW_DISABLE_IF_RUNTIME_UNSUPPORTED(bSupportsMeshShadersTier0);
PREVIEW_DISABLE_IF_RUNTIME_UNSUPPORTED(bSupportsMeshShadersTier1);
PREVIEW_DISABLE_IF_RUNTIME_UNSUPPORTED(bSupportsMobileMultiView);
// Settings that need to match the runtime
PREVIEW_USE_RUNTIME_VALUE(bSupportsGPUScene);
PREVIEW_USE_RUNTIME_VALUE(MaxMeshShaderThreadGroupSize);
PREVIEW_USE_RUNTIME_VALUE(bSupportsSceneDataCompressedTransforms);
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Public/DataDrivenShaderPlatformInfo.h:80
Scope (from outer to inner):
file
class class FGenericDataDrivenShaderPlatformInfo
Source code excerpt:
uint32 bCompileSignalProcessingPipeline : 1;
uint32 bSupportsMeshShadersTier0 : 1;
uint32 bSupportsMeshShadersTier1 : 1;
uint32 bSupportsMeshShadersWithClipDistance : 1;
uint32 MaxMeshShaderThreadGroupSize : 10;
uint32 bRequiresUnwrappedMeshShaderArgs : 1;
uint32 bSupportsPerPixelDBufferMask : 1;
uint32 bIsHlslcc : 1;
uint32 bSupportsDxc : 1; // Whether DirectXShaderCompiler (DXC) is supported
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Public/DataDrivenShaderPlatformInfo.h:563
Scope (from outer to inner):
file
class class FGenericDataDrivenShaderPlatformInfo
function static const bool GetSupportsMeshShadersTier1
Source code excerpt:
{
check(IsValid(Platform));
return Infos[Platform].bSupportsMeshShadersTier1;
}
static FORCEINLINE_DEBUGGABLE const bool GetSupportsMeshShadersWithClipDistance(const FStaticShaderPlatform Platform)
{
check(IsValid(Platform));
return Infos[Platform].bSupportsMeshShadersWithClipDistance;