> Development branch documentation · commit 327c05c78d2f528e4f4a679fcc7a77d9aa161f48
> Package versions: @zenfg/webgpu 0.1.0, @zenfg/snapshot 0.1.0, @zenfg/inspector 0.1.0, zenfg 0.1.0, zenfg-snapshot 0.1.0
> Source: https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1178

[ZenFG TypeScript API](/zenfg/docs/api/index.md) / [webgpu](/zenfg/docs/api/webgpu/index.md) / [root](/zenfg/docs/api/webgpu/root/index.md) / FrameGraphRecording

# Interface: FrameGraphRecording

Defined in: [packages/webgpu/src/types.ts:1178](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1178)

Runtime-facing graph recording capability exposed to renderer features.

Handles are stable recording-local resource identities. Logical values are
resolved from resource range and node recording position, not handle creation
or use-token creation order.

## Extended by

- [`FrameGraphRecorder`](/zenfg/docs/api/webgpu/root/interfaces/FrameGraphRecorder.md)

## Methods

### clearBuffer()

> **clearBuffer**(`desc`): `void`

Defined in: [packages/webgpu/src/types.ts:1249](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1249)

Declares inferred-access buffer clears.

#### Parameters

##### desc

[`ClearBufferNodeDesc`](/zenfg/docs/api/webgpu/root/type-aliases/ClearBufferNodeDesc.md)

#### Returns

`void`

***

### command()

> **command**(`desc`): `void`

Defined in: [packages/webgpu/src/types.ts:1251](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1251)

Declares caller-defined commands encoded into a FrameGraph-owned segment.

#### Parameters

##### desc

[`CommandNodeDesc`](/zenfg/docs/api/webgpu/root/type-aliases/CommandNodeDesc.md)

#### Returns

`void`

***

### compute()

> **compute**(`desc`): `void`

Defined in: [packages/webgpu/src/types.ts:1245](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1245)

Declares a compute-pass node.

#### Parameters

##### desc

[`ComputePassNodeDesc`](/zenfg/docs/api/webgpu/root/type-aliases/ComputePassNodeDesc.md)

#### Returns

`void`

***

### copy()

> **copy**(`desc`): `void`

Defined in: [packages/webgpu/src/types.ts:1247](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1247)

Declares inferred-access copy operations.

#### Parameters

##### desc

[`CopyNodeDesc`](/zenfg/docs/api/webgpu/root/type-aliases/CopyNodeDesc.md)

#### Returns

`void`

***

### createBuffer()

> **createBuffer**(`desc`): [`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

Defined in: [packages/webgpu/src/types.ts:1209](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1209)

Registers a transient buffer owned by this recording.

#### Parameters

##### desc

[`BufferDesc`](/zenfg/docs/api/webgpu/root/type-aliases/BufferDesc.md)

#### Returns

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

***

### createTexture()

> **createTexture**(`desc`): [`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

Defined in: [packages/webgpu/src/types.ts:1201](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1201)

Registers a transient texture owned by this recording.

#### Parameters

##### desc

[`TextureDesc`](/zenfg/docs/api/webgpu/root/type-aliases/TextureDesc.md)

#### Returns

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

#### Remarks

The descriptor is snapshotted and physical allocation is deferred
until execution.

#### Throws

If the descriptor is invalid, or the runtime/recorder is unusable.

***

### createTextureView()

> **createTextureView**(`texture`, `desc?`): [`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md)

Defined in: [packages/webgpu/src/types.ts:1205](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1205)

Creates a logical view whose subresource selection participates in dependencies.

#### Parameters

##### texture

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

##### desc?

[`TextureViewDesc`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewDesc.md)

#### Returns

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md)

***

### externalSubmission()

> **externalSubmission**(`desc`): `void`

Defined in: [packages/webgpu/src/types.ts:1258](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1258)

Declares an opaque caller-owned submission node; retained nodes split
execution segments.

#### Parameters

##### desc

[`ExternalSubmissionNodeDesc`](/zenfg/docs/api/webgpu/root/type-aliases/ExternalSubmissionNodeDesc.md)

#### Returns

`void`

#### Remarks

The callback is an ordering boundary, not a GPU-completion fence.

***

### getBufferDesc()

> **getBufferDesc**(`handle`): `Readonly`\<[`BufferDesc`](/zenfg/docs/api/webgpu/root/type-aliases/BufferDesc.md)\>

Defined in: [packages/webgpu/src/types.ts:1211](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1211)

Returns snapshotted metadata for a buffer owned by this recording.

#### Parameters

##### handle

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

#### Returns

`Readonly`\<[`BufferDesc`](/zenfg/docs/api/webgpu/root/type-aliases/BufferDesc.md)\>

***

### getTextureDesc()

> **getTextureDesc**(`handle`): `Readonly`\<[`TextureDesc`](/zenfg/docs/api/webgpu/root/type-aliases/TextureDesc.md)\>

Defined in: [packages/webgpu/src/types.ts:1203](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1203)

Returns snapshotted metadata for a texture owned by this recording.

#### Parameters

##### handle

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

#### Returns

`Readonly`\<[`TextureDesc`](/zenfg/docs/api/webgpu/root/type-aliases/TextureDesc.md)\>

***

### getTextureViewDesc()

> **getTextureViewDesc**(`handle`): `Readonly`\<[`NormalizedTextureViewDesc`](/zenfg/docs/api/webgpu/root/type-aliases/NormalizedTextureViewDesc.md)\>

Defined in: [packages/webgpu/src/types.ts:1207](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1207)

Returns normalized metadata for a logical texture view.

#### Parameters

##### handle

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md)

#### Returns

`Readonly`\<[`NormalizedTextureViewDesc`](/zenfg/docs/api/webgpu/root/type-aliases/NormalizedTextureViewDesc.md)\>

***

### importBuffer()

> **importBuffer**(`buffer`, `options?`): [`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

Defined in: [packages/webgpu/src/types.ts:1225](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1225)

Borrows a caller-owned buffer with fixed identity for this recording.

#### Parameters

##### buffer

[`GPUBuffer`](https://gpuweb.github.io/gpuweb/#gpubuffer)

##### options?

[`ImportBufferOptions`](/zenfg/docs/api/webgpu/root/type-aliases/ImportBufferOptions.md)

#### Returns

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

***

### importSwapchainTexture()

> **importSwapchainTexture**(`texture`, `options?`): [`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

Defined in: [packages/webgpu/src/types.ts:1223](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1223)

Borrows the current swapchain texture; call `markPresent()` separately and
execute the compiled frame while that borrowed texture remains current.

#### Parameters

##### texture

[`GPUTexture`](https://gpuweb.github.io/gpuweb/#gputexture)

##### options?

[`ImportSwapchainTextureOptions`](/zenfg/docs/api/webgpu/root/type-aliases/ImportSwapchainTextureOptions.md)

#### Returns

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

***

### importTexture()

> **importTexture**(`texture`, `options?`): [`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

Defined in: [packages/webgpu/src/types.ts:1218](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1218)

Borrows a caller-owned texture with fixed identity for this recording.

#### Parameters

##### texture

[`GPUTexture`](https://gpuweb.github.io/gpuweb/#gputexture)

##### options?

[`ImportTextureOptions`](/zenfg/docs/api/webgpu/root/type-aliases/ImportTextureOptions.md)

#### Returns

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

#### Remarks

Ownership and destruction remain with the caller.

#### Throws

If the exposure options conflict with the native texture.

***

### markDebugCapture()

#### Call Signature

> **markDebugCapture**(`resource`): `void`

Defined in: [packages/webgpu/src/types.ts:1280](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1280)

Retains the final visible producer of a resource for debug capture.

##### Parameters

###### resource

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md) \| [`ResourceHandle`](/zenfg/docs/api/webgpu/root/type-aliases/ResourceHandle.md)

##### Returns

`void`

#### Call Signature

> **markDebugCapture**(`buffer`, `range`): `void`

Defined in: [packages/webgpu/src/types.ts:1281](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1281)

##### Parameters

###### buffer

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

###### range

[`BufferRange`](/zenfg/docs/api/webgpu/root/type-aliases/BufferRange.md)

##### Returns

`void`

***

### markOutput()

#### Call Signature

> **markOutput**(`resource`): `void`

Defined in: [packages/webgpu/src/types.ts:1269](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1269)

Marks the final logical value of a texture or buffer as a required graph output.

This marker only retains the value's visible producers. It does not return,
unwrap, transfer ownership of, or extend the execution lifetime of a
transient physical resource. Post-execution access requires caller-owned
imported storage.

##### Parameters

###### resource

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md) \| [`ResourceHandle`](/zenfg/docs/api/webgpu/root/type-aliases/ResourceHandle.md)

##### Returns

`void`

#### Call Signature

> **markOutput**(`buffer`, `range`): `void`

Defined in: [packages/webgpu/src/types.ts:1270](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1270)

##### Parameters

###### buffer

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

###### range

[`BufferRange`](/zenfg/docs/api/webgpu/root/type-aliases/BufferRange.md)

##### Returns

`void`

***

### markPersistentState()

#### Call Signature

> **markPersistentState**(`resource`): `void`

Defined in: [packages/webgpu/src/types.ts:1272](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1272)

Retains the final producer of caller-owned state needed by a later frame.

##### Parameters

###### resource

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md) \| [`ResourceHandle`](/zenfg/docs/api/webgpu/root/type-aliases/ResourceHandle.md)

##### Returns

`void`

#### Call Signature

> **markPersistentState**(`buffer`, `range`): `void`

Defined in: [packages/webgpu/src/types.ts:1273](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1273)

##### Parameters

###### buffer

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

###### range

[`BufferRange`](/zenfg/docs/api/webgpu/root/type-aliases/BufferRange.md)

##### Returns

`void`

***

### markPresent()

> **markPresent**(`resource`): `void`

Defined in: [packages/webgpu/src/types.ts:1260](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1260)

Retains the final visible producer of a swapchain texture for presentation.

#### Parameters

##### resource

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

#### Returns

`void`

***

### markReadback()

> **markReadback**(`resource`, `range?`): `void`

Defined in: [packages/webgpu/src/types.ts:1278](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1278)

Retains the final visible producer of a caller-owned staging buffer imported
with graph-visible `GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ`.

#### Parameters

##### resource

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

##### range?

[`BufferRange`](/zenfg/docs/api/webgpu/root/type-aliases/BufferRange.md)

#### Returns

`void`

***

### popDebugGroup()

> **popDebugGroup**(): `void`

Defined in: [packages/webgpu/src/types.ts:1185](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1185)

Closes the innermost diagnostic group.

#### Returns

`void`

***

### pushDebugGroup()

> **pushDebugGroup**(`label`): `void`

Defined in: [packages/webgpu/src/types.ts:1183](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1183)

Opens a distinct diagnostic-only group for subsequently registered
resources and nodes. Labels need not be unique.

#### Parameters

##### label

`string`

#### Returns

`void`

***

### render()

> **render**(`desc`): `void`

Defined in: [packages/webgpu/src/types.ts:1243](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1243)

Declares a render-pass node.

#### Parameters

##### desc

[`RenderPassNodeDesc`](/zenfg/docs/api/webgpu/root/type-aliases/RenderPassNodeDesc.md)

#### Returns

`void`

#### Throws

If an attachment, declared use, or encode callback contract is invalid.

***

### use()

#### Call Signature

> **use**\<`TAccess`\>(`resource`, `access`): [`TextureUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureUse.md)\<`TAccess`\>

Defined in: [packages/webgpu/src/types.ts:1227](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1227)

Creates a reusable texture-read declaration resolved at each node that lists it.

##### Type Parameters

###### TAccess

`TAccess` *extends* `TextureReadAccess`

##### Parameters

###### resource

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

###### access

`TAccess`

##### Returns

[`TextureUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureUse.md)\<`TAccess`\>

#### Call Signature

> **use**\<`TAccess`\>(`resource`, `access`, `options`): [`TextureUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureUse.md)\<`TAccess`\>

Defined in: [packages/webgpu/src/types.ts:1229](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1229)

Creates a reusable texture-write declaration resolved at each node that lists it.

##### Type Parameters

###### TAccess

`TAccess` *extends* `TextureWriteAccess`

##### Parameters

###### resource

[`TextureHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureHandle.md)

###### access

`TAccess`

###### options

[`WriteUseOptions`](/zenfg/docs/api/webgpu/root/type-aliases/WriteUseOptions.md)

##### Returns

[`TextureUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureUse.md)\<`TAccess`\>

#### Call Signature

> **use**\<`TAccess`\>(`resource`, `access`): [`TextureViewUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewUse.md)\<`TAccess`\>

Defined in: [packages/webgpu/src/types.ts:1231](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1231)

Creates a reusable read declaration for a subresource-selecting logical view.

##### Type Parameters

###### TAccess

`TAccess` *extends* `TextureViewReadAccess`

##### Parameters

###### resource

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md)

###### access

`TAccess`

##### Returns

[`TextureViewUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewUse.md)\<`TAccess`\>

#### Call Signature

> **use**\<`TAccess`\>(`resource`, `access`, `options`): [`TextureViewUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewUse.md)\<`TAccess`\>

Defined in: [packages/webgpu/src/types.ts:1233](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1233)

Creates a reusable write declaration for a subresource-selecting logical view.

##### Type Parameters

###### TAccess

`TAccess` *extends* `TextureViewWriteAccess`

##### Parameters

###### resource

[`TextureViewHandle`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewHandle.md)

###### access

`TAccess`

###### options

[`WriteUseOptions`](/zenfg/docs/api/webgpu/root/type-aliases/WriteUseOptions.md)

##### Returns

[`TextureViewUse`](/zenfg/docs/api/webgpu/root/type-aliases/TextureViewUse.md)\<`TAccess`\>

#### Call Signature

> **use**\<`TAccess`\>(`resource`, `access`, `options?`): [`BufferUse`](/zenfg/docs/api/webgpu/root/type-aliases/BufferUse.md)\<`TAccess`\>

Defined in: [packages/webgpu/src/types.ts:1235](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1235)

Creates a reusable buffer-read declaration and snapshots its optional byte range.

##### Type Parameters

###### TAccess

`TAccess` *extends* `BufferReadAccess`

##### Parameters

###### resource

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

###### access

`TAccess`

###### options?

[`BufferUseOptions`](/zenfg/docs/api/webgpu/root/type-aliases/BufferUseOptions.md)

##### Returns

[`BufferUse`](/zenfg/docs/api/webgpu/root/type-aliases/BufferUse.md)\<`TAccess`\>

#### Call Signature

> **use**\<`TAccess`\>(`resource`, `access`, `options`): [`BufferUse`](/zenfg/docs/api/webgpu/root/type-aliases/BufferUse.md)\<`TAccess`\>

Defined in: [packages/webgpu/src/types.ts:1237](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1237)

Creates a reusable buffer-write declaration with range and content semantics.

##### Type Parameters

###### TAccess

`TAccess` *extends* `BufferWriteAccess`

##### Parameters

###### resource

[`BufferHandle`](/zenfg/docs/api/webgpu/root/type-aliases/BufferHandle.md)

###### access

`TAccess`

###### options

[`BufferWriteUseOptions`](/zenfg/docs/api/webgpu/root/type-aliases/BufferWriteUseOptions.md)

##### Returns

[`BufferUse`](/zenfg/docs/api/webgpu/root/type-aliases/BufferUse.md)\<`TAccess`\>

***

### withDebugGroup()

> **withDebugGroup**\<`T`\>(`label`, `record`): `T`

Defined in: [packages/webgpu/src/types.ts:1190](https://github.com/uinosoft/zenfg/blob/327c05c78d2f528e4f4a679fcc7a77d9aa161f48/packages/webgpu/src/types.ts#L1190)

Runs synchronous recording work inside a distinct diagnostic-only group.
Promise-like return values are rejected. Labels need not be unique.

#### Type Parameters

##### T

`T`

#### Parameters

##### label

`string`

##### record

() => `T` *extends* `PromiseLike`\<`unknown`\> ? `never` : `T`

#### Returns

`T`
