r.NumBufferedOcclusionQueries
r.NumBufferedOcclusionQueries
#Overview
name: r.NumBufferedOcclusionQueries
The value of this variable can be defined or overridden in .ini config files. 4
.ini config files referencing this setting variable.
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Number of frames to buffer occlusion queries (including the current renderthread frame).\nMore frames reduces the chance of stalling the CPU waiting for results, but increases out of date query artifacts.
It is referenced in 2
C++ source files.
#Summary
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:70, section: [Mobile DeviceProfile]
- INI Section:
Mobile DeviceProfile
- Raw value:
1
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:96, section: [IOS_Low DeviceProfile]
- INI Section:
IOS_Low DeviceProfile
- Raw value:
2
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultDeviceProfiles.ini:509, section: [Android_Low DeviceProfile]
- INI Section:
Android_Low DeviceProfile
- Raw value:
2
- Is Array:
False
Location: <Workspace>/Projects/Lyra/Config/DefaultEngine.ini:118, section: [/Script/Engine.RendererSettings]
- INI Section:
/Script/Engine.RendererSettings
- Raw value:
2
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/HAL/ConsoleManager.cpp:3763
Scope: file
Source code excerpt:
static TAutoConsoleVariable<int32> CVarNumBufferedOcclusionQueries(
TEXT("r.NumBufferedOcclusionQueries"),
1,
TEXT("Number of frames to buffer occlusion queries (including the current renderthread frame).\n"
"More frames reduces the chance of stalling the CPU waiting for results, but increases out of date query artifacts."),
ECVF_RenderThreadSafe);
static TAutoConsoleVariable<int32> CVarMinLogVerbosity(
#Loc: <Workspace>/Engine/Source/Runtime/Renderer/Private/SceneOcclusion.cpp:112
Scope (from outer to inner):
file
function int32 FOcclusionQueryHelpers::GetNumBufferedFrames
Source code excerpt:
int32 NumGPUS = 1;
static const auto NumBufferedQueriesVar = IConsoleManager::Get().FindTConsoleVariableDataInt(TEXT("r.NumBufferedOcclusionQueries"));
EShaderPlatform ShaderPlatform = GShaderPlatformForFeatureLevel[FeatureLevel];
int32 NumExtraMobileFrames = 0;
if ((FeatureLevel <= ERHIFeatureLevel::ES3_1 || IsVulkanMobileSM5Platform(ShaderPlatform)) && CVarMobileEnableOcclusionExtraFrame.GetValueOnAnyThread())
{
NumExtraMobileFrames++; // the mobile renderer just doesn't do much after the basepass, and hence it will be asking for the query results almost immediately; the results can't possibly be ready in 1 frame.