# GpuSurfaceDescriptor

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

Surface configuration descriptor.

```ds title="GpuSurfaceDescriptor"
export struct GpuSurfaceDescriptor {
    usage: GpuTextureUsage;
    viewFormats: [GpuTextureFormat];
    width: uint32;
    height: uint32;
    format: GpuTextureFormat;
    presentMode: GpuPresentMode;
    alphaMode: GpuCompositeAlphaMode;
    colorSpace: DisplayColorSpace;
    hdrMode: DisplayHdrMode;
    hdrMetadata: GpuSurfaceHdrMetadata;
    frameLatency: uint32;
}
```

[language/library/src/gpu/binding/present.ds:100:123](https://github.com/destack-sh/destack/blob/main/language/library/src/gpu/binding/present.ds#L100-L123)

## Members

### `usage: GpuTextureUsage`

Texture usage flags.

### `viewFormats: [GpuTextureFormat]`

Additional compatible view formats.

### `width: uint32`

Surface width in pixels.

### `height: uint32`

Surface height in pixels.

### `format: GpuTextureFormat`

Surface texture format.

### `presentMode: GpuPresentMode`

Present mode.

### `alphaMode: GpuCompositeAlphaMode`

Composite alpha mode.

### `colorSpace: DisplayColorSpace`

Output color space.

### `hdrMode: DisplayHdrMode`

Output HDR mode.

### `hdrMetadata: GpuSurfaceHdrMetadata`

HDR metadata.

### `frameLatency: uint32`

Requested maximum frame latency in refresh intervals.
