> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CopyTiles

> バッファーからタイル リソースへ、またはその逆にタイルをコピーします。(ID3D12GraphicsCommandList.CopyTiles)

バッファーからタイル リソースへ、またはその逆にタイルをコピーします。

## 構文

```cpp theme={null}
void CopyTiles(
    ID3D12Resource  pTiledResource,
    const D3D12_TILED_RESOURCE_COORDINATE  pTileRegionStartCoordinate,
    const D3D12_TILE_REGION_SIZE  pTileRegionSize,
    ID3D12Resource  pBuffer,
    UINT64 BufferStartOffsetInBytes,
    D3D12_TILE_COPY_FLAGS Flags
)
```

### パラメーター

*pTiledResource \[in]*\
型: ID3D12Resource \*

タイル リソースへのポインター。

*pTileRegionStartCoordinate \[in]*\
型: const D3D12\_TILED\_RESOURCE\_COORDINATE \*

タイル リソースの開始座標を記述する
[D3D12\_TILED\_RESOURCE\_COORDINATE](/reference/graphics/d3d12/structs/d3d12_tiled_resource_coordinate_public) 構造体へのポインター。

*pTileRegionSize \[in]*\
型: const D3D12\_TILE\_REGION\_SIZE \*

タイル領域のサイズを記述する [D3D12\_TILE\_REGION\_SIZE](/reference/graphics/d3d12/structs/d3d12_tile_region_size_public) 構造体へのポインター。

*pBuffer \[in]*\
型: ID3D12Resource \*

既定、動的、またはステージング バッファーを表す [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) へのポインター。

*BufferStartOffsetInBytes*\
型: UINT64

操作を開始する、<i>pBuffer</i> のバッファーへのバイト単位のオフセット。

*Flags*\
型: D3D12\_TILE\_COPY\_FLAGS

ビットごとの OR 演算を使用して結合された [D3D12\_TILE\_COPY\_FLAGS](/reference/graphics/d3d12/enums/d3d12_tile_copy_flags_public) 型の値の組み合わせ。タイルのコピー方法を識別します。

### 戻り値

型: void

なし。

## 解説

**CopyTiles** は、マップされていない領域への書き込み操作をドロップし、マップされていない領域からの読み取り操作を処理します
(Tier\_1 タイル リソースを除きます。この場合、マップされていない領域の読み書きは無効です。[D3D12\_TILED\_RESOURCES\_TIER](/reference/graphics/d3d12/enums/d3d12_tiled_resources_tier_public) を参照してください)。

コピー操作でコピー先リソース内の複数の場所が同じタイル メモリにマップされているために、同じメモリ位置への書き込みが複数回発生する場合、マルチマップされたタイルへの書き込み操作の結果は
非決定論的で反復不可能です。つまり、タイル メモリへのアクセスは、ハードウェアがコピー操作を実行する順序で発生します。

コピー操作に関与するタイルは、パックされたミップマップを含むタイルを含めることはできません。含めるとコピー操作の結果が未定義になります。ハードウェアがパックされたミップを構成する 1 つ以上のタイルにパックしたミップマップとの間でデータを転送するには、
[CopyTextureRegion](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_copytextureregion_public) のような標準の (つまり、タイル固有ではない) コピー API を使用する必要があります。

**CopyTiles** は、標準のコピー メソッドとは少し異なるパターンでデータをコピーします。

コピー操作のタイル化されていないバッファー リソース側のタイルのメモリ レイアウトは、64 KB タイル内のメモリ内で線形です。ハードウェアとドライバーは、タイル リソースとの間で転送するときに、タイルごとに適切にスウィズルおよびデスウィズルを行います。マルチサンプル アンチエイリアシング (MSAA) サーフェスの場合、ハードウェアとドライバーは各ピクセルのサンプルをサンプル インデックス順に走査してから次のピクセルに移動します。右側が部分的に埋められているタイル (幅がピクセルのタイル幅の倍数ではないサーフェスの場合) について、行を下に移動するピッチとストライドは、タイルが満たされている場合にタイルを横切って収まるピクセル数の完全なサイズ (バイト単位) です。したがって、メモリ内のピクセルの各行の間にギャップがある可能性があります。タイルより小さいミップマップは線形レイアウトで一緒にパックされていないため、メモリ空間の無駄に見えるかもしれませんが、前述のように **CopyTiles** を使用してハードウェアが一緒にパックするミップマップにコピーすることはできません。[CopyTextureRegion](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_copytextureregion_public) のような汎用コピー API を使用して、小さなミップマップを個別にコピーすることはできます。

## 要件

**ヘッダー:** d3d12\_xs.h または d3d12\_x.h\
**ライブラリ:** d3d12\_xs.lib または d3d12\_x.lib\
**サポートされるプラットフォーム**: XBOX Series 本体および XBOX One ファミリ

## 関連項目

[ID3D12GraphicsCommandList](/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/id3d12graphicscommandlist_xs)

[タイル リソース](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/tiled-resources)


## Related topics

- [D3D12_TILE_COPY_FLAGS](/ja-jp/reference/graphics/d3d12/enums/d3d12_tile_copy_flags_public.md)
- [D3D12_TILE_REGION_SIZE](/ja-jp/reference/graphics/d3d12/structs/d3d12_tile_region_size_public.md)
- [D3D12_TILED_RESOURCE_COORDINATE](/ja-jp/reference/graphics/d3d12/structs/d3d12_tiled_resource_coordinate_public.md)
- [CopyTileMappings](/ja-jp/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_copytilemappings_public.md)
- [D3D12_TILE_MAPPING_FLAGS](/ja-jp/reference/graphics/d3d12/enums/d3d12_tile_mapping_flags_public.md)
