Hey everyone,
I’ve been running into a strange issue with Tonemap Subpass on Quest (UE 5.6, Meta fork).
Everything works perfectly as long as Passthrough is disabled in the Meta XR settings.
But the moment I enable the “Passthrough Enabled” checkbox — even if I never actually start passthrough at runtime — the image in the headset changes completely.
It becomes much darker, and things like color tint or post-process adjustments stop having any visible effect.
What’s weird is that this happens even when passthrough is set as an underlay, and even though I never call any passthrough functions (so the camera feed never shows up).
It’s enough to just enable it in the project settings.
I captured the frame with RenderDoc, and you can clearly see that part of the frame still goes through the Tonemap pass, but something happens afterward — it looks like the final composition changes or the tonemap result is being blended incorrectly.
Almost as if enabling passthrough changes the way the swapchain or alpha blending is handled internally, even when it’s not used.
Repro steps:
-
Set r.Mobile.TonemapSubpass=1
-
Keep HDR off
-
Run on Quest → Tonemap looks fine
-
Enable Insight Passthrough in Meta XR settings
-
Run again (without initiating passthrough at runtime)
-
The image becomes darker, tint/post-process doesn’t work anymore
Tested on:
Device: Quest 3
Engine: UE 5.6 (Meta fork)
MSAA: 2x
HDR: Off
r.PostProcessing.PropagateAlpha: tested both 0 and 1
It looks like just having Passthrough enabled in project settings changes how the Tonemap Subpass behaves — even when the passthrough feed isn’t being used at all.
Anyone else seeing this? Or any idea what might be happening under the hood?