From 42e0eb491bceb1acc5adef64f536393dd3a1d155 Mon Sep 17 00:00:00 2001 From: Alan Tse Date: Mon, 16 Feb 2026 18:26:55 -0800 Subject: [PATCH 1/2] chore: disable feature constraints in dev mode --- src/FeatureConstraints.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/FeatureConstraints.cpp b/src/FeatureConstraints.cpp index 4192045214..10e4142299 100644 --- a/src/FeatureConstraints.cpp +++ b/src/FeatureConstraints.cpp @@ -1,5 +1,7 @@ #include "FeatureConstraints.h" #include "Feature.h" +#include "Globals.h" +#include "State.h" #include @@ -7,6 +9,8 @@ namespace FeatureConstraints { ConstraintResult GetConstraints(const SettingId& setting) { + if (globals::state && globals::state->IsDeveloperMode()) + return {}; ConstraintResult result; for (auto* feature : Feature::GetFeatureList()) { @@ -40,6 +44,8 @@ namespace FeatureConstraints std::vector> GetAllActiveConstraints() { + if (globals::state && globals::state->IsDeveloperMode()) + return {}; std::vector> allConstraints; std::unordered_set processedKeys; // featureShortName|settingPath for O(1) lookup From d89a993b4d5401bbf7a6b4d0e1a50e8758917e66 Mon Sep 17 00:00:00 2001 From: Alan Tse Date: Mon, 16 Feb 2026 19:21:34 -0800 Subject: [PATCH 2/2] chore: remove manual constraints --- src/Features/Upscaling.cpp | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/Features/Upscaling.cpp b/src/Features/Upscaling.cpp index 9d5e9a448b..cbe135ad7a 100644 --- a/src/Features/Upscaling.cpp +++ b/src/Features/Upscaling.cpp @@ -7,7 +7,6 @@ #include "Upscaling/FidelityFX.h" #include "Upscaling/Streamline.h" #include "Utils/UI.h" -#include "VR.h" #include #include #include @@ -1087,24 +1086,6 @@ void Upscaling::ConfigureUpscaling(RE::BSGraphics::State* a_viewport) // Disable dynamic resolution unless the game explicitly enables it if (!globals::game::isVR) runtimeData.dynamicResolutionLock = 1; - - // If running in VR and an external upscaler is active, force-disable - // the engine's depth-buffer culling immediately. This ensures that - // enabling upscaling at runtime (after game load) does not leave the - // VR depth-buffer culling enabled which can cause incorrect occlusion. - if (globals::game::isVR) { - auto& vr = globals::features::vr; - if (IsUpscalingActive()) { - if (vr.gDepthBufferCulling) { - if (*vr.gDepthBufferCulling) { - *vr.gDepthBufferCulling = false; - logger::info("[Upscaling] VR detected - forcing depth buffer culling OFF due to active downscaling upscaler (scale={})", resolutionScale.x); - } - } else { - logger::warn("[Upscaling] VR depth buffer culling pointer is null, cannot force disable"); - } - } - } } void Upscaling::SetupResources()