Post

Replies

Boosts

Views

Activity

Reply to Reality kit Entities Appearing to Lag in a Full or Progressive Style Immersive Space When Opened with Environment Turned On
I'm seeing what may be the same issue on visionOS 27.0.1 (Apple Vision Pro), and I have measurements that may help narrow it down. Setup: SwiftUI app, RealityView in a full ImmersiveSpace. The world moves around the user every frame, so any change in content latency shows as judder during turns. Symptom: when the space is opened without a tap in the app's UI (system launch via UIApplicationPreferredDefaultSceneSessionRole, or openImmersiveSpace from code, even after a delay), RealityKit content judders while moving. When the space is opened by tapping a button in a window, or after the user taps any SwiftUI control inside the space (e.g. a ViewAttachmentComponent), motion becomes smooth and stays smooth for the rest of the session. A pinch in empty air doesn't help. What changes: frame rate, CPU and GPU load are the same in both states. Only the timing of the app's UI update cycle changes. With a UIUpdateLink on the immersive UIWindowScene, in .beforeCATransactionCommit: estimatedPresentationTime - now: ~23.9 ms (judder) -> ~17.1 ms (smooth) at 100 Hz completionDeadlineTime - now: ~13.9 ms -> ~7.1 ms The switch happens exactly on the first tap delivered to the app's UI. In RealityKit Trace, the app's entity commits land 3–6 ms after the render server's frame start before the tap (close to its latch, so content latency alternates between frames) and 0–2 ms after it. RealityKit's app-side update runs inside UIKit's update cycle (_UIUpdateSequenceRunNext -> CA commit -> re::Engine::doUpdate), so the UI update scheduler seems to stay in a "waiting for input" timing mode until the first digitizer event arrives. Workarounds: open the space from a window button, or require a tap on an in-space SwiftUI control at start
Topic: Spatial Computing SubTopic: ARKit Tags:
7h
Reply to Reality kit Entities Appearing to Lag in a Full or Progressive Style Immersive Space When Opened with Environment Turned On
I'm seeing what may be the same issue on visionOS 27.0.1 (Apple Vision Pro), and I have measurements that may help narrow it down. Setup: SwiftUI app, RealityView in a full ImmersiveSpace. The world moves around the user every frame, so any change in content latency shows as judder during turns. Symptom: when the space is opened without a tap in the app's UI (system launch via UIApplicationPreferredDefaultSceneSessionRole, or openImmersiveSpace from code, even after a delay), RealityKit content judders while moving. When the space is opened by tapping a button in a window, or after the user taps any SwiftUI control inside the space (e.g. a ViewAttachmentComponent), motion becomes smooth and stays smooth for the rest of the session. A pinch in empty air doesn't help. What changes: frame rate, CPU and GPU load are the same in both states. Only the timing of the app's UI update cycle changes. With a UIUpdateLink on the immersive UIWindowScene, in .beforeCATransactionCommit: estimatedPresentationTime - now: ~23.9 ms (judder) -> ~17.1 ms (smooth) at 100 Hz completionDeadlineTime - now: ~13.9 ms -> ~7.1 ms The switch happens exactly on the first tap delivered to the app's UI. In RealityKit Trace, the app's entity commits land 3–6 ms after the render server's frame start before the tap (close to its latch, so content latency alternates between frames) and 0–2 ms after it. RealityKit's app-side update runs inside UIKit's update cycle (_UIUpdateSequenceRunNext -> CA commit -> re::Engine::doUpdate), so the UI update scheduler seems to stay in a "waiting for input" timing mode until the first digitizer event arrives. Workarounds: open the space from a window button, or require a tap on an in-space SwiftUI control at start
Topic: Spatial Computing SubTopic: ARKit Tags:
Replies
Boosts
Views
Activity
7h