processSystemInfo rejects Apple Vision Pro 4096x4096 decoder capability and halves stream resolution — CloudXR 6.0.2 + visionOS 26.4 FoveatedStreaming

Using CloudXR Runtime 6.0.2 with Apple’s new FoveatedStreaming framework (visionOS 26.4 beta 3). Every session the AVP client negotiates 4096x4096 video streams during connection, then processSystemInfo fires and CloudXR treats it as a streaming dimension mismatch against the negotiated 2400x1920 warped size — penalizing by halving both resolutions for the entire session.

Exact log sequence every connection:

INFO [verifyAndLogStreamSizes] Client connected, color stream size: 4096x4096
INFO [processSystemInfo] Got system info from CloudXR client.
ERROR [processSystemInfo] Ignoring streaming dimensions 4096x4096, expected 2400x1920
INFO [updateFoveationParams] View 0 warped:1200x960 unwarped:3800x3040

Before AVP connects: warped:2400x1920 unwarped:6000x4800
After AVP connects: warped:1200x960 unwarped:3800x3040

Confirmed not caused by our app code — 4096 does not appear anywhere in our Swift or C# source. Tested with deviceProfile: apple-vision-pro, auto-native, and all yaml configurations. Penalty is identical every time.

The 4096x4096 is the stream size Apple’s FoveatedStreaming framework negotiates during the initial connection handshake — it appears to be the device’s video decoder capability. CloudXR should accept a client whose decoder capability exceeds the negotiated stream size rather than penalizing.

Server: Windows 11, CloudXR Runtime 6.0.2, RTX 5080
Client: Apple Vision Pro, visionOS 26.4 beta 3 (23O5225f), FoveatedStreaming framework

Apple Feedback reference: FB22125208

Log file attached.

cxr_server.2026-03-04T113145Z.log (10.0 KB)

Forwarded to the team to take a look.

1 Like

You can set the unwrapped resolution and warped resolution with the cloudxr-config.yaml runtime runtimeFoveationUnwarpedWidth and runtimeFoveationWarpedWidth settings via Stream Manager or in the Cloud XR runtime lifecycle API with the dash syntax e.g. runtime-foveation-warped-width. The default ratio is the central view is 40% of the total view which I think is adjustable with runtimeFoveationInset.

I’ve successfully bumped it up to warped:2720x2176 unwarped:6800x5440 radius:1360,1088 center:3400,2720

The encoding resolution on the other hand seems to be different depending on how you access Cloud XR. When using Cloud XR directly without Apple FoveatedStreaming, NVIDIA exposes a few resolution presets in the CloudXR Session object that their Cloud XR Generic Viewer app lets you select as a drop down: Standard, Performance, and 4K Recording. I’ve surmised through the logs as equivalent to the warped resolution for Standard & Performance (Standard tended towards 90hz refresh rate, Performance 120hz), where as “4K recording” was 3840x2176 @ 30fps.

These options do not exist on Apple’s FoveatedStreaming - it chooses a 1200x960 encoding resolution UNLESS you explicitly configure a runtimeFoveationWarpedWidth, then it will match your warped resolution.