<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/LowLevelArgumentTable",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:19RealityCoreRenderer21LowLevelArgumentTableC"
  },
  "title" : "LowLevelArgumentTable"
}
-->

# LowLevelArgumentTable

A table of buffer slices and textures bound to a single shader function.

```
final class LowLevelArgumentTable
```

## Overview

A `LowLevelArgumentTable` binds a set of `LowLevelBufferSlice` and
`LowLevelTextureResource` objects at indexed slots. Its layout is described by an
`LowLevelArgumentTable.Descriptor` that must match the `argumentTableDescriptor` on
the corresponding material function.

Create a `LowLevelArgumentTable` using
[`makeArgumentTable(descriptor:buffers:textures:)`](/documentation/RealityKit/LowLevelRenderContext/makeArgumentTable(descriptor:buffers:textures:)).

## Topics

### Inspecting the table

[`var descriptor: LowLevelArgumentTable.Descriptor`](/documentation/RealityKit/LowLevelArgumentTable/descriptor-swift.property)

The descriptor that describes the buffer and texture slots of this argument table.

[`struct Descriptor`](/documentation/RealityKit/LowLevelArgumentTable/Descriptor-swift.struct)

The buffer and texture slot configuration for an argument table.

### Accessing textures

[`func texture(at: Int) -> LowLevelTextureResource?`](/documentation/RealityKit/LowLevelArgumentTable/texture(at:))

Returns the texture bound at the given index, or `nil` if the slot is unset.

[`func setTexture(LowLevelTextureResource, at: Int) throws(LowLevelRenderContextError)`](/documentation/RealityKit/LowLevelArgumentTable/setTexture(_:at:))

Binds a texture to the slot at the given index.

### Accessing buffer slices

[`func bufferSlice(at: Int) -> LowLevelBufferSlice?`](/documentation/RealityKit/LowLevelArgumentTable/bufferSlice(at:))

Returns the buffer slice bound at the given index, or `nil` if the slot is unset.

[`func setBufferSlice(LowLevelBufferSlice, at: Int) throws(LowLevelRenderContextError)`](/documentation/RealityKit/LowLevelArgumentTable/setBufferSlice(_:at:))

Binds a buffer slice to the slot at the given index.



---

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)