# GPUDeviceDescriptor

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) Added in [1.0.0-alpha06](https://developer.android.com/jetpack/androidx/releases/webgpu#1.0.0-alpha06)

*** ** * ** ***


```
public final class GPUDeviceDescriptor
```

<br />

*** ** * ** ***

Describes a device to be created.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor.Builder` Builder for `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor`. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#GPUDeviceDescriptor(java.util.concurrent.Executor,java.util.concurrent.Executor,kotlin.String,kotlin.IntArray,androidx.webgpu.GPULimits,androidx.webgpu.GPUQueueDescriptor,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/java/lang/String.html label, @https://developer.android.com/reference/androidx/annotation/NonNull int[] requiredFeatures, https://developer.android.com/reference/androidx/webgpu/GPULimits requiredLimits, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUQueueDescriptor defaultQueue, https://developer.android.com/reference/androidx/webgpu/DeviceLostCallback deviceLostCallback, https://developer.android.com/reference/androidx/webgpu/UncapturedErrorCallback uncapturedErrorCallback )` |
| `@https://developer.android.com/reference/androidx/webgpu/ExperimentalWebGpuApi https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#GPUDeviceDescriptor(java.util.concurrent.Executor,java.util.concurrent.Executor,kotlin.String,kotlin.IntArray,androidx.webgpu.GPULimits,androidx.webgpu.GPUQueueDescriptor,androidx.webgpu.DeviceLostCallback,androidx.webgpu.UncapturedErrorCallback,androidx.webgpu.GPUDawnTogglesDescriptor)( @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/java/lang/String.html label, @https://developer.android.com/reference/androidx/annotation/NonNull int[] requiredFeatures, https://developer.android.com/reference/androidx/webgpu/GPULimits requiredLimits, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUQueueDescriptor defaultQueue, https://developer.android.com/reference/androidx/webgpu/DeviceLostCallback deviceLostCallback, https://developer.android.com/reference/androidx/webgpu/UncapturedErrorCallback uncapturedErrorCallback, https://developer.android.com/reference/androidx/webgpu/GPUDawnTogglesDescriptor dawnTogglesDescriptor )` |

| ### Public methods |
|---|---|
| `final https://developer.android.com/reference/androidx/webgpu/GPUDawnTogglesDescriptor` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getDawnTogglesDescriptor()()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUQueueDescriptor` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getDefaultQueue()()` |
| `final https://developer.android.com/reference/androidx/webgpu/DeviceLostCallback` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getDeviceLostCallback()()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getDeviceLostCallbackExecutor()()` |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getLabel()()` A human-readable label for debugging. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull int[]` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getRequiredFeatures()()` |
| `final https://developer.android.com/reference/androidx/webgpu/GPULimits` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getRequiredLimits()()` |
| `final https://developer.android.com/reference/androidx/webgpu/UncapturedErrorCallback` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getUncapturedErrorCallback()()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#getUncapturedErrorCallbackExecutor()()` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setDawnTogglesDescriptor(androidx.webgpu.GPUDawnTogglesDescriptor)(https://developer.android.com/reference/androidx/webgpu/GPUDawnTogglesDescriptor value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setDefaultQueue(androidx.webgpu.GPUQueueDescriptor)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/webgpu/GPUQueueDescriptor value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setDeviceLostCallback(androidx.webgpu.DeviceLostCallback)(https://developer.android.com/reference/androidx/webgpu/DeviceLostCallback value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setDeviceLostCallback(java.util.concurrent.Executor,androidx.webgpu.DeviceLostCallback)( @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/webgpu/DeviceLostCallback deviceLostCallback )` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setDeviceLostCallbackExecutor(java.util.concurrent.Executor)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setLabel(kotlin.String)(https://developer.android.com/reference/java/lang/String.html value)` A human-readable label for debugging. |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setRequiredFeatures(kotlin.IntArray)(@https://developer.android.com/reference/androidx/annotation/NonNull int[] value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setRequiredLimits(androidx.webgpu.GPULimits)(https://developer.android.com/reference/androidx/webgpu/GPULimits value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setUncapturedErrorCallback(androidx.webgpu.UncapturedErrorCallback)(https://developer.android.com/reference/androidx/webgpu/UncapturedErrorCallback value)` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setUncapturedErrorCallback(java.util.concurrent.Executor,androidx.webgpu.UncapturedErrorCallback)( @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/UncapturedErrorCallback uncapturedErrorCallback )` |
| `final void` | `https://developer.android.com/reference/androidx/webgpu/GPUDeviceDescriptor#setUncapturedErrorCallbackExecutor(java.util.concurrent.Executor)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html value)` |

## Public constructors

### GPUDeviceDescriptor

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

```
public GPUDeviceDescriptor(
    @NonNull Executor deviceLostCallbackExecutor,
    @NonNull Executor uncapturedErrorCallbackExecutor,
    String label,
    @NonNull int[] requiredFeatures,
    GPULimits requiredLimits,
    @NonNull GPUQueueDescriptor defaultQueue,
    DeviceLostCallback deviceLostCallback,
    UncapturedErrorCallback uncapturedErrorCallback
)
```

### GPUDeviceDescriptor

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

```
@ExperimentalWebGpuApi
public GPUDeviceDescriptor(
    @NonNull Executor deviceLostCallbackExecutor,
    @NonNull Executor uncapturedErrorCallbackExecutor,
    String label,
    @NonNull int[] requiredFeatures,
    GPULimits requiredLimits,
    @NonNull GPUQueueDescriptor defaultQueue,
    DeviceLostCallback deviceLostCallback,
    UncapturedErrorCallback uncapturedErrorCallback,
    GPUDawnTogglesDescriptor dawnTogglesDescriptor
)
```

## Public methods

### getDawnTogglesDescriptor

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

```
public final GPUDawnTogglesDescriptor getDawnTogglesDescriptor()
```

### getDefaultQueue

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

```
public final @NonNull GPUQueueDescriptor getDefaultQueue()
```

### getDeviceLostCallback

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

```
public final DeviceLostCallback getDeviceLostCallback()
```

### getDeviceLostCallbackExecutor

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

```
public final @NonNull Executor getDeviceLostCallbackExecutor()
```

### getLabel

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

```
public final String getLabel()
```

A human-readable label for debugging.

### getRequiredFeatures

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

```
public final @NonNull int[] getRequiredFeatures()
```

### getRequiredLimits

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

```
public final GPULimits getRequiredLimits()
```

### getUncapturedErrorCallback

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

```
public final UncapturedErrorCallback getUncapturedErrorCallback()
```

### getUncapturedErrorCallbackExecutor

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

```
public final @NonNull Executor getUncapturedErrorCallbackExecutor()
```

### setDawnTogglesDescriptor

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

```
public final void setDawnTogglesDescriptor(GPUDawnTogglesDescriptor value)
```

### setDefaultQueue

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

```
public final void setDefaultQueue(@NonNull GPUQueueDescriptor value)
```

### setDeviceLostCallback

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

```
public final void setDeviceLostCallback(DeviceLostCallback value)
```

### setDeviceLostCallback

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

```
public final void setDeviceLostCallback(
    @NonNull Executor deviceLostCallbackExecutor,
    DeviceLostCallback deviceLostCallback
)
```

### setDeviceLostCallbackExecutor

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

```
public final void setDeviceLostCallbackExecutor(@NonNull Executor value)
```

### setLabel

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

```
public final void setLabel(String value)
```

A human-readable label for debugging.

### setRequiredFeatures

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

```
public final void setRequiredFeatures(@NonNull int[] value)
```

### setRequiredLimits

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

```
public final void setRequiredLimits(GPULimits value)
```

### setUncapturedErrorCallback

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

```
public final void setUncapturedErrorCallback(UncapturedErrorCallback value)
```

### setUncapturedErrorCallback

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

```
public final void setUncapturedErrorCallback(
    @NonNull Executor uncapturedErrorCallbackExecutor,
    UncapturedErrorCallback uncapturedErrorCallback
)
```

### setUncapturedErrorCallbackExecutor

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

```
public final void setUncapturedErrorCallbackExecutor(@NonNull Executor value)
```