@@ -496,6 +496,10 @@ namespace {
496496
497497 m_supportMotionReprojectionLock = isWMR;
498498
499+ // Fix Fallout 4 / OpenComposite Decal Issue for WMR
500+ m_overrideParallelProjection =
501+ m_applicationName == " OpenComposite_Fallout4VR" && isWMR;
502+
499503 // Workaround: the Vive runtime does not seem to properly convert timestamps. We disable any feature
500504 // depending on timestamps conversion.
501505 m_hasPerformanceCounterKHR = !isVive;
@@ -1719,6 +1723,14 @@ namespace {
17191723 m_posesForFrame[0 ].pose = views[0 ].pose ;
17201724 m_posesForFrame[1 ].pose = views[1 ].pose ;
17211725
1726+ // Fix Fallout 4 / OpenComposite Decal Issue for WMR
1727+ if (m_overrideParallelProjection) {
1728+ views[0 ].pose .orientation .w = views[1 ].pose .orientation .w ;
1729+ views[0 ].pose .orientation .x = views[1 ].pose .orientation .x ;
1730+ views[0 ].pose .orientation .y = views[1 ].pose .orientation .y ;
1731+ views[0 ].pose .orientation .z = views[1 ].pose .orientation .z ;
1732+ }
1733+
17221734 // Override the canting angle if requested.
17231735 const int cantOverride = m_configManager->getValue (" canting" );
17241736 if (cantOverride != 0 ) {
@@ -3402,6 +3414,7 @@ namespace {
34023414 bool m_hasPimaxEyeTracker{false };
34033415 bool m_isFrameThrottlingPossible{true };
34043416 bool m_overrideFoveatedRenderingCapability{false };
3417+ bool m_overrideParallelProjection{false };
34053418
34063419 std::mutex m_frameLock;
34073420 XrTime m_waitedFrameTime;
0 commit comments