Search Issue Tracker
Fixed
Fixed in 2022.3.69f1, 6000.0.62f1, 6000.2.11f1, 6000.3.0b10, 6000.4.0a5, 6000.5.X
Votes
4
Found in
2022.3.67f1
6000.0.56f1
6000.1.8f1
6000.2.0a4
6000.3.0a2
6000.4.0a2
6000.5.0a1
Issue ID
UUM-123207
Regression
Yes
[Metal] Game freezes after command buffer Timeout error - Disable CAMetalDisplayLink by default
Description
CAMetalDisplayLink is causing kIOGPUCommandBufferCallbackErrorTimeout errors. Disabling the CAMetalDisplayLink and using CADisplayLink instead does not cause games to freeze.
IMPORTANT: This issue tracks which fixed versions CAMetalDisplayLink is disabled by default. Check https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-125778 for the actual fix.
IMPORTANT: For previous affected Unity versions you can disable the CAMetalDisplayLink. See https://discussions.unity.com/t/freeze-on-ios-with-metal-display-link/1693201
Reproduction steps
1. Open a project using the Unity editor.
2. Make sure that the CAMetalDisplayLink is enabled in the iOS Player Settings ("Use MetalDisplayLink").
3. Make a build for iOS.
4. Play the game. Confirm that CAMetalDisplayLink was enabled by looking at the XCode console.
5. Continue to play the game possibly for more than 30 minutes until the image freezes. A Timeout error is shown in XCode.
Expected behaviour
The game does not freeze.
Actual behavior
The game freezes.
Comments (1)
-
dnecesal
Nov 19, 2025 09:28
Adding to this:
When using OnDemandRendering the app will hard freeze on several iOS versions when the CAMetalDisplayLink is enabled.
I have had to disable it using post process build to ensure OnDemandRendering can be used in our app.
The main thread freeze happens right after OnDemandRendering.renderFrameInterval is modified.
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
- [RenderGraph] Outputs from camera stack override each other when using OpenGLES3 with a custom renderer feature
- An "RefreshInternalV2 is called before InitialRefresh" error is thrown when opening a project where a build profile with Player settings added is selected
- MeshCollider preview gizmo disappears from the Scene view when overriding the mesh asset using any 3D editing tool
- Tutorial project is not created when started from the Get set up tab
- Audio Listener Component expands when selected
Resolution Note (fix version 2022.3.69f1):
The CAMetalDisplayLink is disabled until we find a fix for the underlying issue.