<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/LowLevelRenderContext/makeArgumentTable(descriptor:buffers:textures:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:19RealityCoreRenderer21LowLevelRenderContextP17makeArgumentTable10descriptor7buffers8texturesAA0deiJ0CAI10DescriptorV_SayAA0dE11BufferSliceVGSayAA0dE15TextureResourceCGtKF"
  },
  "title" : "makeArgumentTable(descriptor:buffers:textures:)"
}
-->

# makeArgumentTable(descriptor:buffers:textures:)

Creates an argument table that binds the provided buffer slices and textures.

```
func makeArgumentTable(descriptor: LowLevelArgumentTable.Descriptor, buffers: [LowLevelBufferSlice], textures: [LowLevelTextureResource]) throws -> LowLevelArgumentTable
```

## Parameters

`descriptor`

The argument table layout describing expected buffer and texture slots.

`buffers`

The buffer slices to bind, in slot order.

`textures`

The texture resources to bind, in slot order.

## Return Value

A newly created [`LowLevelArgumentTable`](/documentation/RealityKit/LowLevelArgumentTable).

## Discussion

The `descriptor` must match the `argumentTableDescriptor` of the corresponding
material function. The counts and sizes of `buffers` and `textures` must match
the slots declared in the descriptor.

> Throws: An error if the counts or sizes of `buffers` or `textures` do not match the descriptor, or if the underlying GPU allocation fails.

---

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)