---
title: "setStageInRegionWithIndirectBuffer(_:indirectBufferOffset:)"
framework: metal
role: symbol
role_heading: Instance Method
path: "metal/mtlcomputecommandencoder/setstageinregionwithindirectbuffer(_:indirectbufferoffset:)"
---

# setStageInRegionWithIndirectBuffer(_:indirectBufferOffset:)

Sets the region of the stage-in attributes to apply to a compute kernel using an indirect buffer.

## Declaration

```swift
func setStageInRegionWithIndirectBuffer(_ indirectBuffer: any MTLBuffer, indirectBufferOffset: Int)
```

## Parameters

- `indirectBuffer`: The doc://com.apple.metal/documentation/Metal/MTLRegion defining how to interpret a thread’s location as a coordinate for stage-in data.
- `indirectBufferOffset`: Where the data begins, in bytes, from the start of the buffer.

## Discussion

Discussion important: Lay out the data in the buffer as described in the MTLStageInRegionIndirectArguments structure. The region’s origin point, starting from (0,0,0) in the upper left of the bound data, determines the final index of [[stage_in]] data. Note that the total number of threads Metal launches may be larger than your stage-in data. To determine the index used to fetch [[stage_in]] data for a given thread, the GPU adds the values specified by the region’s origin to the thread position in the grid. Threads in the grid outside of the maximum stage-in data size have undefined behavior when accessing the stage-in memory region.

## See Also

### Configuring stage-in data

- [setStageInRegion(_:)](metal/mtlcomputecommandencoder/setstageinregion(_:).md)
