From e7118fa8a1198a0a8f24b5779d2e307c763580db Mon Sep 17 00:00:00 2001 From: Javier Segura Date: Fri, 16 Oct 2026 07:57:50 +0200 Subject: [PATCH] [Patch] The render test setup resets the immersion style, which the graph builder's immersion-mode case left at AR RenderGraphBuilderTest's testSupportedRenderExtensionStagesResolveAcrossImmersionModes tries .none, .mixed, .full and .ar in turn and left renderInfo.immersionStyle at the last one. Nothing reset it: resetGlobalEngineState did not touch it and the renderer created for the next test keeps it, so every later test in the same process drew the AR base pass. In a serial run the temporal rate-map test failed behind that class (lit pixels lost to a history drawn through the other map); CI never saw it because it runs each render test method in its own process. The base setup now resets the style to .none with the other per-test globals, and the case restores what it found. --- Tests/UntoldEngineRenderTests/BaseRenderSetup.swift | 4 ++++ Tests/UntoldEngineRenderTests/RenderGraphBuilderTest.swift | 2 ++ 2 files changed, 6 insertions(+) diff --git a/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift b/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift index 1d8c0e223..348284594 100644 --- a/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift +++ b/Tests/UntoldEngineRenderTests/BaseRenderSetup.swift @@ -86,6 +86,10 @@ class BaseRenderSetup: XCTestCase { applyIBL = false antiAliasingMode = .fxaa renderDebugViewMode = .lit + // A test that tries the other immersion modes leaves renderInfo.immersionStyle at the + // last one, and the renderer created here keeps it: every later test would draw that + // mode's graph. The temporal rate-map test showed it, behind RenderGraphBuilderTest. + renderInfo.immersionStyle = .none currentGlobalTime = 0.0 // Engine defaults (RuntimeGlobalsStore's cameraDefaultFOV/cameraNearPlane/cameraFarPlane // initial values). A scene-authored asset load (e.g. loadSceneAuthored) overwrites these diff --git a/Tests/UntoldEngineRenderTests/RenderGraphBuilderTest.swift b/Tests/UntoldEngineRenderTests/RenderGraphBuilderTest.swift index 382ba9cd7..ff01dbfe5 100644 --- a/Tests/UntoldEngineRenderTests/RenderGraphBuilderTest.swift +++ b/Tests/UntoldEngineRenderTests/RenderGraphBuilderTest.swift @@ -1683,11 +1683,13 @@ final class RenderGraphBuilderTest: BaseRenderSetup { func testSupportedRenderExtensionStagesResolveAcrossImmersionModes() throws { let immersionModes: [UntoldImmersionMode] = [.none, .mixed, .full, .ar] + let savedImmersionStyle = renderInfo.immersionStyle bypassPostProcessing = true antiAliasingMode = .none defer { bypassPostProcessing = false antiAliasingMode = .fxaa + renderInfo.immersionStyle = savedImmersionStyle } for (modeIndex, immersionMode) in immersionModes.enumerated() {