Search Issue Tracker
Third Party Issue
Votes
0
Found in
6000.0.61f1
6000.2.10f1
6000.3.0b8
Issue ID
UUM-125089
Regression
No
Duplicate External Textures start appearing when a Texture created with "CreateExternalTexture" is modified causing Memory Usage spikes on VisionOS
How to reproduce:
1. Open the attached “IN-121810.zip” project
2. Switch the Platform to VisionOS (File → Build Settings → VisionOS → Switch Platform)
3. Build and Run the “Scenes/BasicScene” and run the App via Xcode
4. In Xcode, turn on the “Metal Debugger” (Product → Scheme → Edit Scheme → Options → GPU Frame Capture → Metal)
5. Run the Application on VisionOS and observe the Memory Debugger
5. Idle in the App for ~30 seconds
6. Observe the Memory Debugger in Xcode
Expected result: Texture Memory is stable
Actual result: Texture Memory significantly spikes, usage multiplies twice
Reproducible with: 2.4.2 (6000.0.61f1, 6000.2.10f1), 3.0.2 (6000.3.0b8)
Couldn’t Test with:
1.3.13 (2022.3.68f1) - AR Foundation Package unfixable errors due to downgrade
3.0.4 (6000.4.0a3) - Editor crashes when building, (not reproducible on new project)
Testing environment: macOS 26.0.1 (M3 Pro), Xcode 26.0.1
Reproducible on: Apple Vision Pro 2.6
Note: Reporter mentioned that the issue is reproduced using “CreateExternalTexture”, as soon as the textured is edited in any way, several more copies appear
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- “FMOD failed to set the software format to the custom sample rate…” warnings are thrown as System Sample Rate value is being changed in Audio section of Project Settings window
- VFX Marquee selection does match the visual indicator
- “Invalid AABB aabb” errors are spammed when “Infinity” value is entered in Collider Component fields
- Editor Role does not sync with the MPPM Play Mode Scenario Role when entering Play mode
- Long asset names cause overlap with the “Find” function in search result tabs
Resolution Note:
This is fundamentally an issue with the RealityKit API that we use to update textures (LowLevelTexture.replace). We will be ameliorating this by adding a PolySpatial API to mark a texture as "streaming," meaning that it will use the (DrawableQueue) path that we use for RenderTextures, which limits the number of extra copies. Apart from that, I would recommend raising the issue (being able to use an external texture directly in RealityKit, and/or reducing the number of extra texture copies created by LowLevelTexture.replace) with Apple via their Feedback Assistant.