> ## 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

> Copie des vignettes d'une mémoire tampon vers une ressource en mosaïque, ou inversement. (ID3D12GraphicsCommandList.CopyTiles)

Copie des vignettes d'une mémoire tampon vers une ressource en mosaïque, ou inversement.

## Syntaxe

```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
)
```

### Paramètres

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

Pointeur vers une ressource en mosaïque.

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

Pointeur vers une structure
[D3D12\_TILED\_RESOURCE\_COORDINATE](/fr-CA/reference/graphics/d3d12/structs/d3d12_tiled_resource_coordinate_public) qui décrit les coordonnées de départ de la ressource en mosaïque.

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

Pointeur vers une structure [D3D12\_TILE\_REGION\_SIZE](/fr-CA/reference/graphics/d3d12/structs/d3d12_tile_region_size_public) qui décrit la taille de la région en mosaïque.

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

Pointeur vers un [ID3D12Resource](/fr-CA/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) qui représente une mémoire tampon par défaut, dynamique ou intermédiaire.

*BufferStartOffsetInBytes*\
Type : UINT64

Décalage en octets dans la mémoire tampon à <i>pBuffer</i> où commencer l'opération.

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

Combinaison de valeurs de type [D3D12\_TILE\_COPY\_FLAGS](/fr-CA/reference/graphics/d3d12/enums/d3d12_tile_copy_flags_public) combinées à l'aide d'une opération OR au niveau du bit et qui identifient la façon de copier les vignettes.

### Valeur de retour

Type : void

Aucune.

## Remarques

**CopyTiles** ignore les opérations d'écriture vers
les zones non mappées et gère les opérations de lecture à partir des zones non mappées
(sauf sur les ressources en mosaïque Tier\_1,
où la lecture et l'écriture de zones non mappées ne sont pas valides - consultez [D3D12\_TILED\_RESOURCES\_TIER](/fr-CA/reference/graphics/d3d12/enums/d3d12_tiled_resources_tier_public)).

Si une opération de copie implique d'écrire plusieurs fois au même emplacement mémoire parce que plusieurs emplacements de la
ressource de destination sont mappés à la même mémoire de vignette, les opérations d'écriture résultantes vers les vignettes multimappées sont
non déterministes et non reproductibles; autrement dit, les accès à la mémoire de vignette se produisent dans l'ordre, quel qu'il soit, dans lequel le matériel
exécute l'opération de copie.

Les vignettes concernées par l'opération de copie ne peuvent pas inclure de vignettes contenant des mipmaps compactés, sinon les résultats de l'opération de
copie ne sont pas définis. Pour transférer des données vers et depuis les mipmaps que le matériel compacte dans la ou les vignettes qui constituent les mips compactés, vous devez
utiliser les API de copie standard (c'est-à-dire non propres aux vignettes)
comme [CopyTextureRegion](/fr-CA/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_copytextureregion_public).

**CopyTiles** copie les données selon un modèle légèrement différent de celui des méthodes de copie standard.

La disposition en mémoire des vignettes du côté de la ressource de mémoire tampon non en mosaïque de l'opération de copie est linéaire en mémoire à l'intérieur de vignettes de 64 Ko, que le matériel et le pilote réorganisent (swizzle) et rétablissent (de-swizzle) par vignette, selon le cas, lors des transferts vers et depuis une ressource en mosaïque. Pour les surfaces d'anticrénelage multiéchantillon (MSAA), le matériel et le pilote parcourent les échantillons de chaque pixel dans l'ordre des index d'échantillon avant de passer au pixel suivant. Pour les vignettes partiellement remplies du côté droit (pour une surface dont la largeur n'est pas un multiple de la largeur de vignette en pixels), le pas et l'enjambement pour descendre d'une rangée correspondent à la taille complète en octets du nombre de pixels qui tiendraient dans la largeur de la vignette si celle-ci était pleine. Il peut donc y avoir un espace entre chaque rangée de pixels en mémoire. Les mipmaps plus petits qu'une vignette ne sont pas compactés ensemble dans la disposition linéaire, ce qui peut sembler un gaspillage d'espace mémoire, mais comme mentionné, vous ne pouvez pas utiliser **CopyTiles** pour copier vers les mipmaps que le matériel compacte ensemble. Vous pouvez simplement utiliser des API de copie génériques, comme [CopyTextureRegion](/fr-CA/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_copytextureregion_public), pour copier individuellement les petits mipmaps.

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h\
**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib\
**Plateformes prises en charge :** consoles XBOX Series et famille XBOX One

## Voir aussi

[ID3D12GraphicsCommandList](/fr-CA/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/id3d12graphicscommandlist_xs)

[Ressources en mosaïque](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/tiled-resources)


## Related topics

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