# GpuDeviceDescriptor

`import { GpuDeviceDescriptor } from "destack:gpu/binding";`

GPU device descriptor.

```ds title="GpuDeviceDescriptor"
export struct GpuDeviceDescriptor {
    label: string;
    requiredFeatures: [GpuFeatureId];
    requiredLimits: GpuAdapterLimits;
    memoryHint: GpuMemoryHint;
    manualMemoryHint: GpuManualMemoryHint;
    allowExperimentalFeatures: boolean;
    traceMode: GpuTraceMode;
    traceDirectory: string;
    backend: GpuBackend;
}
```

[language/library/src/gpu/binding/device.ds:64:83](https://github.com/destack-sh/destack/blob/main/language/library/src/gpu/binding/device.ds#L64-L83)

## Members

### `label: string`

Debug label.

### `requiredFeatures: [GpuFeatureId]`

Required feature identifiers.

### `requiredLimits: GpuAdapterLimits`

Required minimum limits.

### `memoryHint: GpuMemoryHint`

Memory allocation hint.

### `manualMemoryHint: GpuManualMemoryHint`

Manual memory-allocation guidance when `memoryHint` is `Manual`.

### `allowExperimentalFeatures: boolean`

Whether experimental feature identifiers are allowed.

### `traceMode: GpuTraceMode`

Trace mode selector.

### `traceDirectory: string`

Trace output directory when `traceMode` is `Directory`.

### `backend: GpuBackend`

Preferred backend override.
