Nee, het is een backport van 10.8.1 naar 10.8.0
Je krijgt nog meer updates met VPX launcher 1.35:
1) VR Reflection Probes Fix (backported)
Fixes incorrect reflections in VR by introducing a dedicated reflection matrix in the ModelViewProj pipeline. Previously, the reflection probe renderer would snapshot the current view matrix, multiply it with the reflection plane matrix, and temporarily overwrite the view. This caused artifacts in VR because the view matrix could become stale between frame preparation and execution (e.g. due to head tracking updates). Now, the reflection is stored as a separate transform that is always applied to the current view matrix at evaluation time, ensuring correct reflections regardless of timing.
Performance impact: None. The number of matrix multiplications remains identical. In non-reflection rendering, the reflection matrix is identity — the additional Identity * View multiplication adds approximately 20 nanoseconds per Update() call, which is negligible at any framerate. Memory footprint increases by 64 bytes (one cached m_matReflectedView matrix), offset by removing a stack-allocated initialViewMat in RenderProbe.
VR Reflections (runtime toggle)
Adds a new setting in the Launcher settings (below "Boosted") that allows switching the reflection quality level on-the-fly during gameplay:
Important: This is a temporary runtime override only. The value is not persisted and will reset to the VPX graphic settings on the next table load. This is intentional — it allows quick A/B testing of reflection performance impact without altering the user's configured defaults.
VR Reflection Probes: Static & Unsynced Dynamic Mode
Backports and extends the "Static & Unsynced" reflection optimization from upstream 10.8.1 to work in VR. Previously, VR was forced to use the most expensive reflection mode (fully synced dynamic), re-rendering the entire scene into the reflection buffer every frame. Now, when set to "Full (unsynced)", the renderer pre-renders all static geometry into the reflection probe once at table load (with high-quality antialiasing oversampling). During gameplay, only the pre-rendered color buffer is copied and dynamic objects (balls, moving parts) are drawn on top with a cleared depth buffer. Static draw calls in the reflection pass are completely eliminated.
How it works: Table load: static scene rendered into reflection probe at full quality (one-time cost) Each frame: cheap texture blit + depth clear + render only dynamic objects When launcher is open: automatically falls back to full synced rendering for correct overlay display, switches back to unsynced when closed
Performance impact: Eliminates all static draw calls from the per-frame reflection pass (
~30-60% fewer draw calls depending on table complexity) Net GPU savings of 2-5ms per frame on complex tables
No visual quality loss during gameplay — static reflections retain their pre-rendered antialiased quality
Configuration: Launcher settings → "VR Reflections" → select "
Full unsynced" Setting is temporary per session (INI settings still loaded on next launch) Also selectable via Graphics Settings → "Static & Unsynced Dynamic"
Ball Display-Time Prediction (boosted only)
When launcherBoosted is enabled, the ball rendering position is extrapolated forward in time using its current velocity to compensate for the delay between the last physics update and when the frame will actually be displayed on screen.
The problem: Physics runs at a fixed 1ms step, but between the last physics update and the moment the rendered frame appears on the display, several milliseconds pass (rendering, GPU processing, display latency). During this time, the ball continues moving — but without prediction, it is rendered at its outdated physics position. This causes the ball to visually "lag behind" its true position, appearing to stutter or jerk, especially at high speeds.
The extrapolation accounts for: Time elapsed since the last physics step (msec() - m_time_msec) An estimated display latency offset (3ms) This results in smoother ball motion by showing the ball where it will actually be when the frame reaches the player's eyes, rather than where it was at the last physics tick. The effect is most noticeable in VR where any motion inconsistency is immediately perceived due to the high refresh rate and direct visual tracking.
The feature is only active when: launcherBoosted is enabled The game is not paused The ball is not locked in a kicker Performance impact: Negligible — one additional multiplication and addition per ball per frame.