这是indexloc提供的服务,不要输入任何密码
Skip to content

D3D12 does not support copying between textures of different dimensionality #3723

@kainino0x

Description

@kainino0x

From https://crbug.com/dawn/1216#c9:

@RafaelCintron:

Though the D3D12 API does not forbid copying between resources whose dimensionality does not match (1D rows <-> 2D rows, 1D rows <-> 3D rows, and 2D slices <-> 3D slices) the behavior is undefined unless you check the TextureCopyBetweenDimensionsSupported field of the D3D12_FEATURE_DATA_OPTIONS13 struct and find that it is true. The flaky behavior we're seeing is up to the whims of the driver.

To get portable behavior, we'll need to either forbid these operations for WebGPU v1.0 or workaround the limitations by copying the data first to a buffer and from the buffer to the final destination.

@austinEng:

Wow - the fact that this is in D3D12_FEATURE_DATA_OPTIONS13 is a little discouraging.
"Minimum supported client Windows 11, version 22H2; or DirectX 12 Agility SDK 1.6 or later"

perhaps we need to forbid this in the spec after all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions