bSupportsROV
bSupportsROV
#Overview
name: bSupportsROV
The value of this variable can be defined or overridden in .ini config files. 4
.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 bSupportsROV is to indicate whether a specific shader platform supports Raster Ordered Views (ROVs). ROVs are a graphics feature that allows for ordered access to unordered access views (UAVs) in pixel shaders, which can be useful for certain rendering techniques.
This setting variable is primarily used in the RHI (Rendering Hardware Interface) subsystem of Unreal Engine 5. It is part of the data-driven shader platform information system, which allows for flexible configuration of shader platform capabilities.
The value of this variable is set in the FGenericDataDrivenShaderPlatformInfo class, which is likely populated from configuration files or platform-specific implementations. It is stored as a single bit in a bitfield within the class.
bSupportsROV interacts with other shader platform capability variables, such as bSupportsVolumeTextureAtomics, bSupportsOIT, and bSupportsRealTypes. These variables collectively define the features supported by a particular shader platform.
Developers must be aware that the availability of ROV support can impact the implementation of certain rendering techniques. If a technique relies on ROVs, it may need to have fallback paths for platforms where bSupportsROV is false.
Best practices when using this variable include:
- Checking its value before attempting to use ROV-dependent features in shaders.
- Providing alternative rendering paths for platforms that don’t support ROVs.
- Using the GetSupportsROV() function to query the capability rather than accessing the variable directly, as this provides a consistent interface and allows for potential future changes in implementation.
- Considering the performance implications of using ROVs, even on platforms that support them, as they can impact rendering efficiency.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/VulkanPC/DataDrivenPlatformInfo.ini:129, section: [ShaderPlatform VULKAN_SM5]
- INI Section:
ShaderPlatform VULKAN_SM5
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/VulkanPC/DataDrivenPlatformInfo.ini:247, section: [ShaderPlatform VULKAN_SM6]
- INI Section:
ShaderPlatform VULKAN_SM6
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/Windows/DataDrivenPlatformInfo.ini:70, section: [ShaderPlatform PCD3D_SM5]
- INI Section:
ShaderPlatform PCD3D_SM5
- Raw value:
true
- Is Array:
False
Location: <Workspace>/Engine/Config/Windows/DataDrivenPlatformInfo.ini:130, 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:282
Scope (from outer to inner):
file
function void FGenericDataDrivenShaderPlatformInfo::ParseDataDrivenShaderInfo
Source code excerpt:
GET_SECTION_BINDLESS_SUPPORT_HELPER(BindlessSupport);
GET_SECTION_BOOL_HELPER(bSupportsVolumeTextureAtomics);
GET_SECTION_BOOL_HELPER(bSupportsROV);
GET_SECTION_BOOL_HELPER(bSupportsOIT);
GET_SECTION_SUPPORT_HELPER(bSupportsRealTypes);
GET_SECTION_INT_HELPER(EnablesHLSL2021ByDefault);
GET_SECTION_BOOL_HELPER(bSupportsSceneDataCompressedTransforms);
GET_SECTION_BOOL_HELPER(bSupportsSwapchainUAVs);
GET_SECTION_BOOL_HELPER(bSupportsClipDistance);
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Public/DataDrivenShaderPlatformInfo.h:107
Scope (from outer to inner):
file
class class FGenericDataDrivenShaderPlatformInfo
Source code excerpt:
uint32 BindlessSupport : int32(ERHIBindlessSupport::NumBits);
uint32 bSupportsVolumeTextureAtomics : 1;
uint32 bSupportsROV : 1;
uint32 bSupportsOIT : 1;
uint32 bSupportsRealTypes : int32(ERHIFeatureSupport::NumBits);
uint32 EnablesHLSL2021ByDefault : 2; // 0: disabled, 1: global shaders only, 2: all shaders
uint32 bSupportsSceneDataCompressedTransforms : 1;
uint32 bIsPreviewPlatform : 1;
uint32 bSupportsSwapchainUAVs : 1;
#Loc: <Workspace>/Engine/Source/Runtime/RHI/Public/DataDrivenShaderPlatformInfo.h:723
Scope (from outer to inner):
file
class class FGenericDataDrivenShaderPlatformInfo
function static const bool GetSupportsROV
Source code excerpt:
static FORCEINLINE_DEBUGGABLE const bool GetSupportsROV(const FStaticShaderPlatform Platform)
{
return Infos[Platform].bSupportsROV;
}
static FORCEINLINE_DEBUGGABLE const bool GetSupportsOIT(const FStaticShaderPlatform Platform)
{
return Infos[Platform].bSupportsOIT;
}