UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataDrivenShaderPlatformInfo.h File Reference
#include "RHIDefinitions.h"
#include "RHIShaderPlatform.h"
#include "RHIFeatureLevel.h"
#include "UObject/NameTypes.h"

Go to the source code of this file.

Classes

class  FGenericDataDrivenShaderPlatformInfo
 

Typedefs

using FDataDrivenShaderPlatformInfo = FGenericDataDrivenShaderPlatformInfo
 

Functions

bool IsPCPlatform (const FStaticShaderPlatform Platform)
 
bool IsMobilePlatform (const FStaticShaderPlatform Platform)
 
bool IsOpenGLPlatform (const FStaticShaderPlatform Platform)
 
bool IsMetalPlatform (const FStaticShaderPlatform Platform)
 
bool IsMetalMobilePlatform (const FStaticShaderPlatform Platform)
 
bool IsMetalMRTPlatform (const FStaticShaderPlatform Platform)
 
bool IsMetalSM5Platform (const FStaticShaderPlatform Platform)
 
bool IsMetalSM6Platform (const FStaticShaderPlatform Platform)
 
bool IsConsolePlatform (const FStaticShaderPlatform Platform)
 
bool IsAndroidPlatform (const FStaticShaderPlatform Platform)
 
bool IsVulkanPlatform (const FStaticShaderPlatform Platform)
 
bool IsVulkanMobileSM5Platform (const FStaticShaderPlatform Platform)
 
bool IsMetalMobileSM5Platform (const FStaticShaderPlatform Platform)
 
bool IsAndroidOpenGLESPlatform (const FStaticShaderPlatform Platform)
 
bool IsVulkanMobilePlatform (const FStaticShaderPlatform Platform)
 
bool IsD3DPlatform (const FStaticShaderPlatform Platform)
 
bool IsHlslccShaderPlatform (const FStaticShaderPlatform Platform)
 
FStaticFeatureLevel GetMaxSupportedFeatureLevel (const FStaticShaderPlatform InShaderPlatform)
 
bool IsSimulatedPlatform (const FStaticShaderPlatform Platform)
 
bool IsFeatureLevelSupported (const FStaticShaderPlatform InShaderPlatform, ERHIFeatureLevel::Type InFeatureLevel)
 
bool RHISupportsSeparateMSAAAndResolveTextures (const FStaticShaderPlatform Platform)
 
bool RHISupportsGeometryShaders (const FStaticShaderPlatform Platform)
 
bool RHIHasTiledGPU (const FStaticShaderPlatform Platform)
 
bool RHISupportsMobileMultiView (const FStaticShaderPlatform Platform)
 
bool RHISupportsNativeShaderLibraries (const FStaticShaderPlatform Platform)
 
bool RHISupportsShaderPipelines (const FStaticShaderPlatform Platform)
 
bool RHISupportsDualSourceBlending (const FStaticShaderPlatform Platform)
 
bool RHISupportsIndexBufferUAVs (const FStaticShaderPlatform Platform)
 
bool RHISupportsInstancedStereo (const FStaticShaderPlatform Platform)
 
bool RHISupportsMultiViewport (const FStaticShaderPlatform Platform)
 
bool RHISupportsMSAA (const FStaticShaderPlatform Platform)
 
bool RHISupportsBufferLoadTypeConversion (const FStaticShaderPlatform Platform)
 
bool RHISupportsVolumeTextures (const FStaticFeatureLevel FeatureLevel)
 
bool RHISupportsVertexShaderLayer (const FStaticShaderPlatform Platform)
 
bool RHIVolumeTextureRenderingSupportGuaranteed (const FStaticShaderPlatform Platform)
 
bool RHISupports4ComponentUAVReadWrite (const FStaticShaderPlatform Platform)
 
bool RHISupportsManualVertexFetch (const FStaticShaderPlatform InShaderPlatform)
 
bool RHISupportsSwapchainUAVs (const FStaticShaderPlatform Platform)
 
bool RHISupportsAbsoluteVertexID (const FStaticShaderPlatform InShaderPlatform)
 
bool RHISupportsRayTracing (const FStaticShaderPlatform Platform)
 
bool RHISupportsRayTracingShaders (const FStaticShaderPlatform Platform)
 
bool RHISupportsInlineRayTracing (const FStaticShaderPlatform Platform)
 
bool RHISupportsRayTracingCallableShaders (const FStaticShaderPlatform Platform)
 
bool RHISupportsMeshShadersTier0 (const FStaticShaderPlatform Platform)
 
bool RHISupportsMeshShadersTier1 (const FStaticShaderPlatform Platform)
 
uint32 RHIMaxMeshShaderThreadGroupSize (const FStaticShaderPlatform Platform)
 
bool RHISupportsWaveOperations (const FStaticShaderPlatform Platform)
 
bool RHISupportsShaderRootConstants (const FStaticShaderPlatform Platform)
 
bool RHISupportsShaderBundleDispatch (const FStaticShaderPlatform Platform)
 
bool RHISupportsRenderTargetWriteMask (const FStaticShaderPlatform Platform)
 
bool RHISupportsConservativeRasterization (const FStaticShaderPlatform Platform)
 
PRAGMA_DISABLE_DEPRECATION_WARNINGS ERHIBindlessSupport RHIGetBindlessSupport (const FStaticShaderPlatform Platform)
 
PRAGMA_ENABLE_DEPRECATION_WARNINGS ERHIStaticShaderBindingLayoutSupport RHIGetStaticShaderBindingLayoutSupport (const FStaticShaderPlatform Platform)
 
bool RHISupportsVolumeTextureAtomics (EShaderPlatform Platform)
 
bool RHISupportsWaveSize64 (const FStaticShaderPlatform Platform)
 
bool RHISupportsWorkGraphs (const FStaticShaderPlatform Platform)
 
bool RHISupportsWorkGraphsTier1_1 (const FStaticShaderPlatform Platform)
 

Variables

RHI_API const FName LANGUAGE_D3D
 
RHI_API const FName LANGUAGE_Metal
 
RHI_API const FName LANGUAGE_OpenGL
 
RHI_API const FName LANGUAGE_Vulkan
 
RHI_API const FName LANGUAGE_Sony
 
RHI_API const FName LANGUAGE_Nintendo
 

Typedef Documentation

◆ FDataDrivenShaderPlatformInfo

Function Documentation

◆ GetMaxSupportedFeatureLevel()

FStaticFeatureLevel GetMaxSupportedFeatureLevel ( const FStaticShaderPlatform  InShaderPlatform)
inline

◆ IsAndroidOpenGLESPlatform()

bool IsAndroidOpenGLESPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsAndroidPlatform()

bool IsAndroidPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsConsolePlatform()

bool IsConsolePlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsD3DPlatform()

bool IsD3DPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsFeatureLevelSupported()

bool IsFeatureLevelSupported ( const FStaticShaderPlatform  InShaderPlatform,
ERHIFeatureLevel::Type  InFeatureLevel 
)
inline

Returns true if the feature level is supported by the shader platform.

◆ IsHlslccShaderPlatform()

bool IsHlslccShaderPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMetalMobilePlatform()

bool IsMetalMobilePlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMetalMobileSM5Platform()

bool IsMetalMobileSM5Platform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMetalMRTPlatform()

bool IsMetalMRTPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMetalPlatform()

bool IsMetalPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMetalSM5Platform()

bool IsMetalSM5Platform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMetalSM6Platform()

bool IsMetalSM6Platform ( const FStaticShaderPlatform  Platform)
inline

◆ IsMobilePlatform()

bool IsMobilePlatform ( const FStaticShaderPlatform  Platform)
inline

Whether the shader platform corresponds to the ES3.1/Metal/Vulkan feature level.

◆ IsOpenGLPlatform()

bool IsOpenGLPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsPCPlatform()

bool IsPCPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsSimulatedPlatform()

bool IsSimulatedPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsVulkanMobilePlatform()

bool IsVulkanMobilePlatform ( const FStaticShaderPlatform  Platform)
inline

◆ IsVulkanMobileSM5Platform()

bool IsVulkanMobileSM5Platform ( const FStaticShaderPlatform  Platform)
inline

◆ IsVulkanPlatform()

bool IsVulkanPlatform ( const FStaticShaderPlatform  Platform)
inline

◆ RHIGetBindlessSupport()

PRAGMA_DISABLE_DEPRECATION_WARNINGS ERHIBindlessSupport RHIGetBindlessSupport ( const FStaticShaderPlatform  Platform)
inline

◆ RHIGetStaticShaderBindingLayoutSupport()

PRAGMA_ENABLE_DEPRECATION_WARNINGS ERHIStaticShaderBindingLayoutSupport RHIGetStaticShaderBindingLayoutSupport ( const FStaticShaderPlatform  Platform)
inline

True if the given shader platform supports static shader resource tables.

◆ RHIHasTiledGPU()

bool RHIHasTiledGPU ( const FStaticShaderPlatform  Platform)
inline

◆ RHIMaxMeshShaderThreadGroupSize()

uint32 RHIMaxMeshShaderThreadGroupSize ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupports4ComponentUAVReadWrite()

bool RHISupports4ComponentUAVReadWrite ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsAbsoluteVertexID()

bool RHISupportsAbsoluteVertexID ( const FStaticShaderPlatform  InShaderPlatform)
inline

Returns true if SV_VertexID contains BaseVertexIndex passed to the draw call, false if shaders must manually construct an absolute VertexID.

◆ RHISupportsBufferLoadTypeConversion()

bool RHISupportsBufferLoadTypeConversion ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsConservativeRasterization()

bool RHISupportsConservativeRasterization ( const FStaticShaderPlatform  Platform)
inline

True if the given shader platform supports overestimated conservative rasterization

◆ RHISupportsDualSourceBlending()

bool RHISupportsDualSourceBlending ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsGeometryShaders()

bool RHISupportsGeometryShaders ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsIndexBufferUAVs()

bool RHISupportsIndexBufferUAVs ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsInlineRayTracing()

bool RHISupportsInlineRayTracing ( const FStaticShaderPlatform  Platform)
inline

Whether this platform can compile shaders with inline ray tracing features. To use at runtime, also check GRHISupportsRayTracing and r.RayTracing CVar (see IsRayTracingEnabled() helper).

◆ RHISupportsInstancedStereo()

bool RHISupportsInstancedStereo ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsManualVertexFetch()

bool RHISupportsManualVertexFetch ( const FStaticShaderPlatform  InShaderPlatform)
inline

Whether Manual Vertex Fetch is supported for the specified shader platform. Shader Platform must not use the mobile renderer, and for Metal, the shader language must be at least 2.

◆ RHISupportsMeshShadersTier0()

bool RHISupportsMeshShadersTier0 ( const FStaticShaderPlatform  Platform)
inline

Can this platform compile mesh shaders with tier0 capability. To use at runtime, also check GRHISupportsMeshShadersTier0.

◆ RHISupportsMeshShadersTier1()

bool RHISupportsMeshShadersTier1 ( const FStaticShaderPlatform  Platform)
inline

Can this platform compile mesh shaders with tier1 capability. To use at runtime, also check GRHISupportsMeshShadersTier1.

◆ RHISupportsMobileMultiView()

bool RHISupportsMobileMultiView ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsMSAA()

bool RHISupportsMSAA ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsMultiViewport()

bool RHISupportsMultiViewport ( const FStaticShaderPlatform  Platform)
inline

Can this platform implement instanced stereo rendering by rendering to multiple viewports. Note: run-time users should always check GRHISupportsArrayIndexFromAnyShader as well, since for some SPs (particularly PCD3D_SM5) minspec does not guarantee that feature.

◆ RHISupportsNativeShaderLibraries()

bool RHISupportsNativeShaderLibraries ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsRayTracing()

bool RHISupportsRayTracing ( const FStaticShaderPlatform  Platform)
inline

Whether this platform can build acceleration structures and use full ray tracing pipelines or inline ray tracing (ray queries). To use at runtime, also check GRHISupportsRayTracing and r.RayTracing CVar (see IsRayTracingEnabled() helper). Check GRHISupportsRayTracingShaders before using full ray tracing pipeline state objects. Check GRHISupportsInlineRayTracing before using inline ray tracing features in compute and other shaders.

◆ RHISupportsRayTracingCallableShaders()

bool RHISupportsRayTracingCallableShaders ( const FStaticShaderPlatform  Platform)
inline

Whether this platform can compile ray tracing callable shaders. To use at runtime, also check GRHISupportsRayTracing and r.RayTracing CVar (see IsRayTracingEnabled() helper).

◆ RHISupportsRayTracingShaders()

bool RHISupportsRayTracingShaders ( const FStaticShaderPlatform  Platform)
inline

Whether this platform can compile ray tracing shaders (regardless of project settings). To use at runtime, also check GRHISupportsRayTracing and r.RayTracing CVar (see IsRayTracingEnabled() helper).

◆ RHISupportsRenderTargetWriteMask()

bool RHISupportsRenderTargetWriteMask ( const FStaticShaderPlatform  Platform)
inline

True if the given shader platform supports a render target write mask

◆ RHISupportsSeparateMSAAAndResolveTextures()

bool RHISupportsSeparateMSAAAndResolveTextures ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsShaderBundleDispatch()

bool RHISupportsShaderBundleDispatch ( const FStaticShaderPlatform  Platform)
inline

True if the given shader platform supports shader bundle dispatch

◆ RHISupportsShaderPipelines()

bool RHISupportsShaderPipelines ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsShaderRootConstants()

bool RHISupportsShaderRootConstants ( const FStaticShaderPlatform  Platform)
inline

True if the given shader platform supports shader root constants

◆ RHISupportsSwapchainUAVs()

bool RHISupportsSwapchainUAVs ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsVertexShaderLayer()

bool RHISupportsVertexShaderLayer ( const FStaticShaderPlatform  Platform)
inline

◆ RHISupportsVolumeTextureAtomics()

bool RHISupportsVolumeTextureAtomics ( EShaderPlatform  Platform)
inline

◆ RHISupportsVolumeTextures()

bool RHISupportsVolumeTextures ( const FStaticFeatureLevel  FeatureLevel)
inline

Whether the platform supports reading from volume textures (does not cover rendering to volume textures).

◆ RHISupportsWaveOperations()

bool RHISupportsWaveOperations ( const FStaticShaderPlatform  Platform)
inline

Can this platform compile shaders that use shader model 6.0 wave intrinsics. To use such shaders at runtime, also check GRHISupportsWaveOperations.

◆ RHISupportsWaveSize64()

bool RHISupportsWaveSize64 ( const FStaticShaderPlatform  Platform)
inline

True if the platform supports wave size of 64

◆ RHISupportsWorkGraphs()

bool RHISupportsWorkGraphs ( const FStaticShaderPlatform  Platform)
inline

True if the platform supports Work Graphs

◆ RHISupportsWorkGraphsTier1_1()

bool RHISupportsWorkGraphsTier1_1 ( const FStaticShaderPlatform  Platform)
inline

◆ RHIVolumeTextureRenderingSupportGuaranteed()

bool RHIVolumeTextureRenderingSupportGuaranteed ( const FStaticShaderPlatform  Platform)
inline

Return true if and only if the GPU support rendering to volume textures (2D Array, 3D) is guaranteed supported for a target platform. if PipelineVolumeTextureLUTSupportGuaranteedAtRuntime is true then it is guaranteed that GSupportsVolumeTextureRendering is true at runtime.

Variable Documentation

◆ LANGUAGE_D3D

RHI_API const FName LANGUAGE_D3D
extern

◆ LANGUAGE_Metal

RHI_API const FName LANGUAGE_Metal
extern

◆ LANGUAGE_Nintendo

RHI_API const FName LANGUAGE_Nintendo
extern

◆ LANGUAGE_OpenGL

RHI_API const FName LANGUAGE_OpenGL
extern

◆ LANGUAGE_Sony

RHI_API const FName LANGUAGE_Sony
extern

◆ LANGUAGE_Vulkan

RHI_API const FName LANGUAGE_Vulkan
extern