Skip to content

Commit

Permalink
Version 3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
RavenSystem committed Dec 25, 2023
1 parent 326598c commit 18889ed
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ namespace vrperfkit {
ffr.preciseResolution = ffrCfg["preciseResolution"].as<bool>(ffr.preciseResolution);
ffr.ignoreFirstTargetRenders = ffrCfg["ignoreFirstTargetRenders"].as<int>(ffr.ignoreFirstTargetRenders);
ffr.ignoreLastTargetRenders = ffrCfg["ignoreLastTargetRenders"].as<int>(ffr.ignoreLastTargetRenders);
ffr.renderOnlyTarget = ffrCfg["renderOnlyTarget"].as<int>(ffr.renderOnlyTarget);
ffr.maxRadius = ffr.innerRadius;
ffr.overrideSingleEyeOrder = ffrCfg["overrideSingleEyeOrder"].as<std::string>(ffr.overrideSingleEyeOrder);
ffr.fastMode = ffrCfg["fastMode"].as<bool>(ffr.fastMode);
Expand All @@ -165,6 +166,7 @@ namespace vrperfkit {
hiddenMask.preciseResolution = hiddenMaskCfg["preciseResolution"].as<bool>(hiddenMask.preciseResolution);
hiddenMask.ignoreFirstTargetRenders = hiddenMaskCfg["ignoreFirstTargetRenders"].as<int>(hiddenMask.ignoreFirstTargetRenders);
hiddenMask.ignoreLastTargetRenders = hiddenMaskCfg["ignoreLastTargetRenders"].as<int>(hiddenMask.ignoreLastTargetRenders);
hiddenMask.renderOnlyTarget = hiddenMaskCfg["renderOnlyTarget"].as<int>(hiddenMask.renderOnlyTarget);
hiddenMask.dynamic = hiddenMaskCfg["dynamic"].as<bool>(hiddenMask.dynamic);
hiddenMask.targetFrameTime = 1.f / hiddenMaskCfg["targetFPS"].as<float>(hiddenMask.targetFrameTime);
hiddenMask.marginFrameTime = 1.f / hiddenMaskCfg["marginFPS"].as<float>(hiddenMask.marginFrameTime);
Expand Down Expand Up @@ -240,6 +242,7 @@ namespace vrperfkit {
LOG_INFO << " * Precise res: " << PrintToggle(g_config.ffr.preciseResolution);
LOG_INFO << " * No first rend: " << std::setprecision(6) << g_config.ffr.ignoreFirstTargetRenders;
LOG_INFO << " * No last rend: " << std::setprecision(6) << g_config.ffr.ignoreLastTargetRenders;
LOG_INFO << " * Render only: " << std::setprecision(6) << g_config.ffr.renderOnlyTarget;
LOG_INFO << " * Fast mode: " << PrintToggle(g_config.ffr.fastMode);
if (g_config.ffr.fastMode) {
LOG_INFO << " * HRM counter: " << PrintToggle(g_config.ffrFastModeUsesHRMCount);
Expand Down Expand Up @@ -270,6 +273,7 @@ namespace vrperfkit {
LOG_INFO << " * Precise res: " << PrintToggle(g_config.hiddenMask.preciseResolution);
LOG_INFO << " * No first rend: " << std::setprecision(6) << g_config.hiddenMask.ignoreFirstTargetRenders;
LOG_INFO << " * No last rend: " << std::setprecision(6) << g_config.hiddenMask.ignoreLastTargetRenders;
LOG_INFO << " * Render only: " << std::setprecision(6) << g_config.hiddenMask.renderOnlyTarget;
LOG_INFO << " * Dynamic: " << PrintToggle(g_config.hiddenMask.dynamic);
if (g_config.hiddenMask.dynamic) {
LOG_INFO << " * Target FPS: " << std::setprecision(6) << (1.f / g_config.hiddenMask.targetFrameTime);
Expand Down
2 changes: 2 additions & 0 deletions src/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ namespace vrperfkit {
bool preciseResolution = true;
int ignoreFirstTargetRenders = 0;
int ignoreLastTargetRenders = 0;
int renderOnlyTarget = 0;
bool radiusChanged[2] = { true, true };
};

Expand All @@ -61,6 +62,7 @@ namespace vrperfkit {
bool preciseResolution = true;
int ignoreFirstTargetRenders = 0;
int ignoreLastTargetRenders = 0;
int renderOnlyTarget = 0;
};

struct Config {
Expand Down
9 changes: 9 additions & 0 deletions src/d3d11/d3d11_post_processor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ namespace vrperfkit {
preciseResolution = g_config.ffr.preciseResolution;
ignoreFirstTargetRenders = g_config.ffr.ignoreFirstTargetRenders;
ignoreLastTargetRenders = g_config.ffr.ignoreLastTargetRenders;
renderOnlyTarget = g_config.ffr.renderOnlyTarget;
edgeRadius = g_config.ffr.edgeRadius;
} else {
hiddenMaskApply = g_config.hiddenMask.enabled;
preciseResolution = g_config.hiddenMask.preciseResolution;
ignoreFirstTargetRenders = g_config.hiddenMask.ignoreFirstTargetRenders;
ignoreLastTargetRenders = g_config.hiddenMask.ignoreLastTargetRenders;
renderOnlyTarget = g_config.hiddenMask.renderOnlyTarget;
edgeRadius = g_config.hiddenMask.edgeRadius;
}

Expand Down Expand Up @@ -354,6 +356,13 @@ namespace vrperfkit {

vr::EVREye currentEye = vr::Eye_Left;

if ((renderOnlyTarget > 0 && renderOnlyTarget != depthClearCount) || (renderOnlyTarget < 0 && depthClearCountMax + 1 + renderOnlyTarget != depthClearCount)) {
if (g_config.ffrFastModeUsesHRMCount) {
g_config.ffrApplyFastMode = false;
}
return;
}

if (depthClearCount <= ignoreFirstTargetRenders || (ignoreLastTargetRenders > 0 && depthClearCount > depthClearCountMax - ignoreLastTargetRenders)) {
if (g_config.ffrFastModeUsesHRMCount) {
g_config.ffrApplyFastMode = false;
Expand Down
1 change: 1 addition & 0 deletions src/d3d11/d3d11_post_processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ namespace vrperfkit {
bool preciseResolution = false;
int ignoreFirstTargetRenders = 0;
int ignoreLastTargetRenders = 0;
int renderOnlyTarget = 0;

void CreateDynamicProfileQueries();
void StartDynamicProfiling();
Expand Down
6 changes: 6 additions & 0 deletions src/d3d11/d3d11_variable_rate_shading.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ namespace vrperfkit {
active = true;
ignoreFirstTargetRenders = g_config.ffr.ignoreFirstTargetRenders;
ignoreLastTargetRenders = g_config.ffr.ignoreLastTargetRenders;
renderOnlyTarget = g_config.ffr.renderOnlyTarget;
LOG_INFO << "Successfully initialized NVAPI; Variable Rate Shading is available.";
}

Expand Down Expand Up @@ -164,6 +165,11 @@ namespace vrperfkit {
if (!g_config.ffrFastModeUsesHRMCount) {
++g_config.ffrRenderTargetCount;

if ((renderOnlyTarget > 0 && renderOnlyTarget != g_config.ffrRenderTargetCount) || (renderOnlyTarget < 0 && g_config.ffrRenderTargetCountMax + 1 + renderOnlyTarget != g_config.ffrRenderTargetCount)) {
DisableVRS();
return;
}

if (g_config.ffrRenderTargetCount < ignoreFirstTargetRenders || (ignoreLastTargetRenders > 0 && g_config.ffrRenderTargetCount > g_config.ffrRenderTargetCountMax - ignoreLastTargetRenders)) {
DisableVRS();
return;
Expand Down
1 change: 1 addition & 0 deletions src/d3d11/d3d11_variable_rate_shading.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ namespace vrperfkit {

int ignoreFirstTargetRenders = 0;
int ignoreLastTargetRenders = 0;
int renderOnlyTarget = 0;

int targetWidth = 1000000;
int targetHeight = 1000000;
Expand Down
2 changes: 1 addition & 1 deletion src/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ namespace {

vrperfkit::OpenLogFile(vrperfkit::g_basePath / "vrperfkit_RSF.log");
LOG_INFO << "===============================";
LOG_INFO << "VR Performance Toolkit RSF v3.0";
LOG_INFO << "VR Performance Toolkit RSF v3.1";
LOG_INFO << "===============================\n";

vrperfkit::LoadConfig(vrperfkit::g_basePath / "vrperfkit_RSF.yml");
Expand Down
Empty file added vrperfkit_RSF.log
Empty file.
14 changes: 13 additions & 1 deletion vrperfkit_RSF.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# =============================== #
# VR Performance Toolkit RSF v3.1 #
# =============================== #

# dxgi.dll: If game uses its own dxgi.dll or other post-processor library, like
# Reshade (reshade.me), rename current "dxgi.dll" file to "dxgi_ori.dll" before copying
# dxgi.dll file from this VR Performance Toolkit. dxgi_ori.dll file will be lodaded
Expand Down Expand Up @@ -25,7 +29,7 @@ upscaling:
# If you set a value higher than 100 for renderScale, then the game will render at the native
# resolution, i.e. the one configured in SteamVR. But FSR/NIS/CAS will then take this render and
# upscale it to a resolution increased by the value of renderScale percentage.
renderScale: 70
renderScale: 70.0

# Configure how much the image is sharpened during upscaling.
# This parameter works differently for each of the upscaling methods, so you
Expand Down Expand Up @@ -95,6 +99,10 @@ fixedFoveated:
# Some games requires to disable it.
preciseResolution: true

# If not 0, FFR will be applied only to specific render target. Using a negative value will cause that
# used target will be count from last. For example, -1 will be applied to the last target.
renderOnlyTarget: 0

# FFR will not be applied to first and last specified target renders. Some games needs to skip
# some target renders to avoid crashes. This is different from HRM option. Target renders from VSR mode
# are different to RDM mode target renders.
Expand Down Expand Up @@ -148,6 +156,10 @@ hiddenMask:
# Some games requires to disable it.
preciseResolution: true

# If not 0, FFR will be applied only to specific render target. Using a negative value will cause that
# used target will be count from last. For example, -1 will be applied to the last target.
renderOnlyTarget: 0

# HRM will not be applied to first specified target renders. Some games needs to skip
# some target renders to avoid crashes. This is different from FFR option.
ignoreFirstTargetRenders: 0
Expand Down

0 comments on commit 18889ed

Please sign in to comment.