Skip to content

Commit 76e5e79

Browse files
committed
Revert prediction dampening to previous behavior, and add warning about motion reprojection.
1 parent 0069b17 commit 76e5e79

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

XR_APILAYER_MBUCCHIA_toolkit/layer.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,8 @@ namespace {
451451
// Migrate the value upon first run.
452452
m_configManager->setDefault("resolution_width", 0);
453453
if (m_configManager->getValue("resolution_width") != 0) {
454-
const int migratedValue = (int)(m_configManager->getValue("resolution_width") * m_resolutionHeightRatio);
454+
const int migratedValue =
455+
(int)(m_configManager->getValue("resolution_width") * m_resolutionHeightRatio);
455456
m_configManager->setValue(config::SettingResolutionHeight, migratedValue, true);
456457
m_configManager->deleteValue("resolution_width");
457458
m_configManager->tick();
@@ -3203,6 +3204,7 @@ namespace {
32033204
chainFrameEndInfo.layers = correctedLayers.data();
32043205
chainFrameEndInfo.layerCount = (uint32_t)correctedLayers.size();
32053206

3207+
#if 0
32063208
// When using prediction dampening, we want to restore the display time in order to avoid confusing motion
32073209
// reprojection.
32083210
const bool isMotionReprojectionOn =
@@ -3213,6 +3215,7 @@ namespace {
32133215
!isMotionReprojectionOn) {
32143216
chainFrameEndInfo.displayTime = m_savedFrameTime2;
32153217
}
3218+
#endif
32163219

32173220
{
32183221
if (m_asyncWaitPromise.valid()) {

XR_APILAYER_MBUCCHIA_toolkit/menu.cpp

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,15 @@ namespace {
212212
m_menuEntries.back().visible = true; /* Always visible. */
213213

214214
m_turboWarning = L"\x26A0 Turbo Mode prevents Motion Reprojection \x26A0";
215+
m_predictionDampeningWarning = L"\x26A0 Over-prediction reduction breaks Motion Reprojection \x26A0";
215216
if (menuInfo.runtimeName.find("Oculus") != std::string::npos) {
216217
m_turboWarning = L"\x26A0 Turbo Mode prevents ASW \x26A0";
218+
m_predictionDampeningWarning = L"\x26A0 Over-prediction reduction breaks ASW \x26A0";
217219
} else if (menuInfo.runtimeName.find("steam") != std::string::npos ||
218-
menuInfo.runtimeName.find("Steam") != std::string::npos) {
220+
menuInfo.runtimeName.find("Steam") != std::string::npos ||
221+
menuInfo.runtimeName.find("Varjo") != std::string::npos) {
219222
m_turboWarning = L"\x26A0 Turbo Mode prevents Motion Smoothing \x26A0";
223+
m_predictionDampeningWarning = L"\x26A0 Over-prediction reduction breaks Motion Smoothing \x26A0";
220224
}
221225
}
222226

@@ -676,10 +680,18 @@ namespace {
676680

677681
{
678682
float left = leftAlign;
679-
if (m_configManager->peekValue(SettingTurboMode)) {
683+
684+
std::wstring warning;
685+
if (m_currentTab == MenuTab::Performance && m_configManager->peekValue(SettingTurboMode)) {
686+
warning = m_turboWarning;
687+
} else if (m_currentTab == MenuTab::Inputs && m_configManager->peekValue(SettingPredictionDampen) != 100) {
688+
warning = m_predictionDampeningWarning;
689+
}
690+
691+
if (!warning.empty()) {
680692
top += fontSize;
681693

682-
left += m_device->drawString(m_turboWarning,
694+
left += m_device->drawString(warning,
683695
TextStyle::Bold,
684696
fontSize,
685697
leftAlign,
@@ -1588,7 +1600,8 @@ namespace {
15881600
m_menuEntries.back().acceleration = 5;
15891601
postProcessGroup.finalize();
15901602
MenuGroup caCorrectionGroup(this, [&] {
1591-
return m_configManager->peekEnumValue<PostProcessType>(SettingPostProcess) == PostProcessType::CACorrection;
1603+
return m_configManager->peekEnumValue<PostProcessType>(SettingPostProcess) ==
1604+
PostProcessType::CACorrection;
15921605
});
15931606
m_menuEntries.push_back({MenuIndent::SubGroupIndent,
15941607
"Red",
@@ -1633,7 +1646,7 @@ namespace {
16331646

16341647
if (menuInfo.isPredictionDampeningSupported) {
16351648
m_menuEntries.push_back({MenuIndent::OptionIndent,
1636-
"Shaking reduction",
1649+
"Over-prediction reduction",
16371650
MenuEntryType::Slider,
16381651
SettingPredictionDampen,
16391652
0,
@@ -2151,6 +2164,7 @@ namespace {
21512164
const bool m_isMotionReprojectionRateSupported;
21522165
const uint8_t m_displayRefreshRate;
21532166
std::wstring m_turboWarning;
2167+
std::wstring m_predictionDampeningWarning;
21542168
MenuStatistics m_stats{};
21552169
GesturesState m_gesturesState{};
21562170
EyeGazeState m_eyeGazeState{};

0 commit comments

Comments
 (0)