<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Metal",
  "identifier" : "/documentation/Metal/MTL4ComputeCommandEncoder/copyAndCompact(sourceAccelerationStructure:destinationAccelerationStructure:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Metal"
    ],
    "preciseIdentifier" : "c:objc(pl)MTL4ComputeCommandEncoder(im)copyAndCompactAccelerationStructure:toAccelerationStructure:"
  },
  "title" : "copyAndCompact(sourceAccelerationStructure:destinationAccelerationStructure:)"
}
-->

# copyAndCompact(sourceAccelerationStructure:destinationAccelerationStructure:)

Encodes a command to copy and compact an acceleration structure.

```
func copyAndCompact(sourceAccelerationStructure: any MTLAccelerationStructure, destinationAccelerationStructure: any MTLAccelerationStructure)
```

## Parameters

`sourceAccelerationStructure`

Acceleration structure to copy and compact.

`destinationAccelerationStructure`

Acceleration structure to copy to.

## Discussion

You are responsible for ensuring that the source and destination acceleration structures don’t overlap in memory.
If this is an instance acceleration structure, Metal preserves references to primitive acceleration structures it
references.

This operation requires that the destination acceleration structure is at least as large as the compacted size of
the source acceleration structure. You can compute this size by calling the
[`writeCompactedSize(sourceAccelerationStructure:destinationBuffer:)`](/documentation/Metal/MTL4ComputeCommandEncoder/writeCompactedSize(sourceAccelerationStructure:destinationBuffer:)) method.

---

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)