<!--
{
  "availability" : [
    "macOS: 26.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CompositorServices",
  "identifier" : "/documentation/CompositorServices/LayerRenderer/Frame/endUpdate()",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Compositor Services",
      "CompositorServices"
    ],
    "preciseIdentifier" : "c:@F@cp_frame_end_update"
  },
  "title" : "endUpdate()"
}
-->

# endUpdate()

Notifies Compositor Services that you finished updating the app-specific content
you need to render the frame.

```
func endUpdate()
```

## Discussion

This function helps you optimize your app’s rendering efficiency.
Before you render a frame, you might need to respond to interactions
and update your app’s data structures before you render items in your scene.
Call [`startUpdate()`](/documentation/CompositorServices/LayerRenderer/Frame/startUpdate()) immediately before you start that work,
and call this function as soon as you finish.
Compositor Services uses the frame update time to improve its predictions
for when to start the frame encoding process.

Move as much work as possible into the update phase to minimize encoding time.
Don’t do any work that relies on the current pose information during the update phase.
Instead, make any pose-related changes during the submission phase.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)