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
- Out-of-bounds memory access with multiple CanvasRenderers under a Canvas when using Mesh API
- Inspector tries to access file after it was deleted when the file was locked in Inspector window
- Changing Transform values in Search window Inspector loses focus while dragging and stopping mouse without releasing dragging action
- Saving changes on the dirty VFX Graph during the Play mode throws "The referenced script (Unknown) on this Behaviour is missing!" warnings
- VFX Graph Debug Info overlaps the "Initialize" block debug info by default
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.