# GPULimits.Builder

Artifact: [androidx.webgpu:webgpu](https://developer.android.com/jetpack/androidx/releases/webgpu) [View Source](https://cs.android.com/search?q=file:androidx/webgpu/GPULimits.kt+class:androidx.webgpu.GPULimits.Builder) Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

*** ** * ** ***


```
public final class GPULimits.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/webgpu/GPULimits`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#build()()` Builds the `https://developer.android.com/reference/androidx/webgpu/GPULimits`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setCompatibilityModeLimits(androidx.webgpu.GPUCompatibilityModeLimits)( https://developer.android.com/reference/androidx/webgpu/GPUCompatibilityModeLimits compatibilityModeLimits )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxBindGroups(kotlin.Int)(int maxBindGroups)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxBindGroupsPlusVertexBuffers(kotlin.Int)(int maxBindGroupsPlusVertexBuffers)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxBindingsPerBindGroup(kotlin.Int)(int maxBindingsPerBindGroup)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxBufferSize(kotlin.Long)(long maxBufferSize)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxColorAttachmentBytesPerSample(kotlin.Int)( int maxColorAttachmentBytesPerSample )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxColorAttachments(kotlin.Int)(int maxColorAttachments)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxComputeInvocationsPerWorkgroup(kotlin.Int)( int maxComputeInvocationsPerWorkgroup )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxComputeWorkgroupSizeX(kotlin.Int)(int maxComputeWorkgroupSizeX)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxComputeWorkgroupSizeY(kotlin.Int)(int maxComputeWorkgroupSizeY)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxComputeWorkgroupSizeZ(kotlin.Int)(int maxComputeWorkgroupSizeZ)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxComputeWorkgroupStorageSize(kotlin.Int)(int maxComputeWorkgroupStorageSize)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxComputeWorkgroupsPerDimension(kotlin.Int)( int maxComputeWorkgroupsPerDimension )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxDynamicStorageBuffersPerPipelineLayout(kotlin.Int)( int maxDynamicStorageBuffersPerPipelineLayout )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxDynamicUniformBuffersPerPipelineLayout(kotlin.Int)( int maxDynamicUniformBuffersPerPipelineLayout )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxImmediateSize(kotlin.Int)(int maxImmediateSize)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxInterStageShaderVariables(kotlin.Int)(int maxInterStageShaderVariables)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxSampledTexturesPerShaderStage(kotlin.Int)( int maxSampledTexturesPerShaderStage )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxSamplersPerShaderStage(kotlin.Int)(int maxSamplersPerShaderStage)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxStorageBufferBindingSize(kotlin.Long)(long maxStorageBufferBindingSize)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxStorageBuffersPerShaderStage(kotlin.Int)( int maxStorageBuffersPerShaderStage )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxStorageTexturesPerShaderStage(kotlin.Int)( int maxStorageTexturesPerShaderStage )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxTextureArrayLayers(kotlin.Int)(int maxTextureArrayLayers)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxTextureDimension1D(kotlin.Int)(int maxTextureDimension1D)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxTextureDimension2D(kotlin.Int)(int maxTextureDimension2D)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxTextureDimension3D(kotlin.Int)(int maxTextureDimension3D)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxUniformBufferBindingSize(kotlin.Long)(long maxUniformBufferBindingSize)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxUniformBuffersPerShaderStage(kotlin.Int)( int maxUniformBuffersPerShaderStage )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxVertexAttributes(kotlin.Int)(int maxVertexAttributes)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxVertexBufferArrayStride(kotlin.Int)(int maxVertexBufferArrayStride)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMaxVertexBuffers(kotlin.Int)(int maxVertexBuffers)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMinStorageBufferOffsetAlignment(kotlin.Int)( int minStorageBufferOffsetAlignment )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPULimits.Builder#setMinUniformBufferOffsetAlignment(kotlin.Int)( int minUniformBufferOffsetAlignment )` |

## Public constructors

### Builder

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public Builder()
```

## Public methods

### build

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits build()
```

Builds the `https://developer.android.com/reference/androidx/webgpu/GPULimits`.

### setCompatibilityModeLimits

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setCompatibilityModeLimits(
    GPUCompatibilityModeLimits compatibilityModeLimits
)
```

### setMaxBindGroups

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxBindGroups(int maxBindGroups)
```

### setMaxBindGroupsPlusVertexBuffers

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxBindGroupsPlusVertexBuffers(int maxBindGroupsPlusVertexBuffers)
```

### setMaxBindingsPerBindGroup

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxBindingsPerBindGroup(int maxBindingsPerBindGroup)
```

### setMaxBufferSize

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxBufferSize(long maxBufferSize)
```

### setMaxColorAttachmentBytesPerSample

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxColorAttachmentBytesPerSample(
    int maxColorAttachmentBytesPerSample
)
```

### setMaxColorAttachments

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxColorAttachments(int maxColorAttachments)
```

### setMaxComputeInvocationsPerWorkgroup

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxComputeInvocationsPerWorkgroup(
    int maxComputeInvocationsPerWorkgroup
)
```

### setMaxComputeWorkgroupSizeX

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxComputeWorkgroupSizeX(int maxComputeWorkgroupSizeX)
```

### setMaxComputeWorkgroupSizeY

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxComputeWorkgroupSizeY(int maxComputeWorkgroupSizeY)
```

### setMaxComputeWorkgroupSizeZ

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxComputeWorkgroupSizeZ(int maxComputeWorkgroupSizeZ)
```

### setMaxComputeWorkgroupStorageSize

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxComputeWorkgroupStorageSize(int maxComputeWorkgroupStorageSize)
```

### setMaxComputeWorkgroupsPerDimension

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxComputeWorkgroupsPerDimension(
    int maxComputeWorkgroupsPerDimension
)
```

### setMaxDynamicStorageBuffersPerPipelineLayout

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxDynamicStorageBuffersPerPipelineLayout(
    int maxDynamicStorageBuffersPerPipelineLayout
)
```

### setMaxDynamicUniformBuffersPerPipelineLayout

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxDynamicUniformBuffersPerPipelineLayout(
    int maxDynamicUniformBuffersPerPipelineLayout
)
```

### setMaxImmediateSize

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxImmediateSize(int maxImmediateSize)
```

### setMaxInterStageShaderVariables

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxInterStageShaderVariables(int maxInterStageShaderVariables)
```

### setMaxSampledTexturesPerShaderStage

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxSampledTexturesPerShaderStage(
    int maxSampledTexturesPerShaderStage
)
```

### setMaxSamplersPerShaderStage

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxSamplersPerShaderStage(int maxSamplersPerShaderStage)
```

### setMaxStorageBufferBindingSize

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxStorageBufferBindingSize(long maxStorageBufferBindingSize)
```

### setMaxStorageBuffersPerShaderStage

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxStorageBuffersPerShaderStage(
    int maxStorageBuffersPerShaderStage
)
```

### setMaxStorageTexturesPerShaderStage

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxStorageTexturesPerShaderStage(
    int maxStorageTexturesPerShaderStage
)
```

### setMaxTextureArrayLayers

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxTextureArrayLayers(int maxTextureArrayLayers)
```

### setMaxTextureDimension1D

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxTextureDimension1D(int maxTextureDimension1D)
```

### setMaxTextureDimension2D

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxTextureDimension2D(int maxTextureDimension2D)
```

### setMaxTextureDimension3D

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxTextureDimension3D(int maxTextureDimension3D)
```

### setMaxUniformBufferBindingSize

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxUniformBufferBindingSize(long maxUniformBufferBindingSize)
```

### setMaxUniformBuffersPerShaderStage

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxUniformBuffersPerShaderStage(
    int maxUniformBuffersPerShaderStage
)
```

### setMaxVertexAttributes

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxVertexAttributes(int maxVertexAttributes)
```

### setMaxVertexBufferArrayStride

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxVertexBufferArrayStride(int maxVertexBufferArrayStride)
```

### setMaxVertexBuffers

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMaxVertexBuffers(int maxVertexBuffers)
```

### setMinStorageBufferOffsetAlignment

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMinStorageBufferOffsetAlignment(
    int minStorageBufferOffsetAlignment
)
```

### setMinUniformBufferOffsetAlignment

Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

```
public final @NonNull GPULimits.Builder setMinUniformBufferOffsetAlignment(
    int minUniformBufferOffsetAlignment
)
```