# GPUDeviceDescriptor.Builder

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

*** ** * ** ***


```
public final class GPUDeviceDescriptor.Builder
```

<br />

*** ** * ** ***

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

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#Builder(java.util.concurrent.Executor,java.util.concurrent.Executor,androidx.webgpu.DeviceLostCallback,androidx.webgpu.UncapturedErrorCallback)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html deviceLostCallbackExecutor, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html uncapturedErrorCallbackExecutor, https://developer.android.com/reference/androidx/webgpu/DeviceLostCallback deviceLostCallback, https://developer.android.com/reference/androidx/webgpu/UncapturedErrorCallback uncapturedErrorCallback )` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#build()()` Builds the `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder` | `@https://developer.android.com/reference/androidx/webgpu/ExperimentalWebGpuApi https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#setDawnTogglesDescriptor(androidx.webgpu.GPUDawnTogglesDescriptor)( https://developer.android.com/reference/androidx/webgpu/GPUDawnTogglesDescriptor dawnTogglesDescriptor )` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#setDefaultQueue(androidx.webgpu.GPUQueueDescriptor)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUQueueDescriptor defaultQueue)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#setLabel(kotlin.String)(https://developer.android.com/reference/java/lang/String.html label)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#setRequiredFeatures(kotlin.IntArray)(@https://developer.android.com/reference/androidx/annotation/NonNull int[] requiredFeatures)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder#setRequiredLimits(androidx.webgpu.GPULimits)(https://developer.android.com/reference/androidx/webgpu/GPULimits requiredLimits)` |

## Public constructors

### Builder

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

```
public Builder(
    @NonNull Executor deviceLostCallbackExecutor,
    @NonNull Executor uncapturedErrorCallbackExecutor,
    DeviceLostCallback deviceLostCallback,
    UncapturedErrorCallback uncapturedErrorCallback
)
```

## Public methods

### build

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

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

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

### setDawnTogglesDescriptor

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

```
@ExperimentalWebGpuApi
public final @NonNull GPUDeviceDescriptor.Builder setDawnTogglesDescriptor(
    GPUDawnTogglesDescriptor dawnTogglesDescriptor
)
```

### setDefaultQueue

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

```
public final @NonNull GPUDeviceDescriptor.Builder setDefaultQueue(@NonNull GPUQueueDescriptor defaultQueue)
```

### setLabel

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

```
public final @NonNull GPUDeviceDescriptor.Builder setLabel(String label)
```

### setRequiredFeatures

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

```
public final @NonNull GPUDeviceDescriptor.Builder setRequiredFeatures(@NonNull int[] requiredFeatures)
```

### setRequiredLimits

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

```
public final @NonNull GPUDeviceDescriptor.Builder setRequiredLimits(GPULimits requiredLimits)
```