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

> Copia mosaicos de un búfer a un recurso en mosaico o viceversa. (ID3D12GraphicsCommandList.CopyTiles)

Copia mosaicos de un búfer a un recurso en mosaico o viceversa.

## Sintaxis

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

### Parámetros

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

Un puntero a un recurso en mosaico.

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

Un puntero a una estructura
[D3D12\_TILED\_RESOURCE\_COORDINATE](/reference/graphics/d3d12/structs/d3d12_tiled_resource_coordinate_public) que describe las coordenadas iniciales del recurso en mosaico.

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

Un puntero a una estructura [D3D12\_TILE\_REGION\_SIZE](/reference/graphics/d3d12/structs/d3d12_tile_region_size_public) que describe el tamaño de la región en mosaico.

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

Un puntero a un [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) que representa un búfer predeterminado, dinámico o de almacenamiento provisional.

*BufferStartOffsetInBytes*\
Tipo: UINT64

El desplazamiento en bytes dentro del búfer en <i>pBuffer</i> en el que se iniciará la operación.

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

Una combinación de valores de tipo [D3D12\_TILE\_COPY\_FLAGS](/reference/graphics/d3d12/enums/d3d12_tile_copy_flags_public) que se combinan mediante una operación OR bit a bit y que identifica cómo copiar los mosaicos.

### Valor devuelto

Tipo: void

Ninguno.

## Comentarios

**CopyTiles** descarta las operaciones de escritura en
áreas no asignadas y controla las operaciones de lectura desde áreas no asignadas
(excepto en los recursos en mosaico de nivel Tier\_1,
donde leer y escribir en áreas no asignadas no es válido; consulte [D3D12\_TILED\_RESOURCES\_TIER](/reference/graphics/d3d12/enums/d3d12_tiled_resources_tier_public)).

Si una operación de copia implica escribir en la misma ubicación de memoria varias veces porque varias ubicaciones del
recurso de destino están asignadas a la misma memoria de mosaico, las operaciones de escritura resultantes en mosaicos con varias asignaciones son
no deterministas y no repetibles; es decir, los accesos a la memoria del mosaico se producen en el orden en que el hardware
ejecute la operación de copia.

Los mosaicos implicados en la operación de copia no pueden incluir mosaicos que contengan mipmaps empaquetados o los resultados de la operación de
copia serán indefinidos. Para transferir datos hacia y desde mipmaps que el hardware empaqueta en el mosaico o mosaicos que constituyen los mips empaquetados, debe
usar las API de copia estándar (es decir, no específicas de mosaicos)
como [CopyTextureRegion](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_copytextureregion_public).

**CopyTiles** copia los datos con un patrón ligeramente diferente al de los métodos de copia estándar.

El diseño de memoria de los mosaicos en el lado del recurso de búfer no en mosaico de la operación de copia es lineal en memoria dentro de mosaicos de 64 KB, que el hardware y el controlador aplican y deshacen el swizzle por mosaico según corresponda cuando se transfieren hacia y desde un recurso en mosaico. Para las superficies con suavizado de contorno multimuestreo (MSAA), el hardware y el controlador recorren las muestras de cada píxel en orden de índice de muestra antes de pasar al píxel siguiente. Para los mosaicos que están parcialmente rellenos en el lado derecho (para una superficie cuyo ancho no es múltiplo del ancho del mosaico en píxeles), el paso y la separación para bajar una fila es el tamaño completo en bytes del número de píxeles que cabrían a lo ancho del mosaico si este estuviera lleno. Por lo tanto, puede haber un espacio entre cada fila de píxeles en memoria. Los mipmaps más pequeños que un mosaico no se empaquetan juntos en el diseño lineal, lo que podría parecer un desperdicio de espacio de memoria, pero, como se ha mencionado, no puede usar **CopyTiles** para copiar en mipmaps que el hardware empaqueta juntos. Puede usar simplemente API de copia genéricas, como [CopyTextureRegion](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_copytextureregion_public), para copiar mipmaps pequeños individualmente.

## Requisitos

**Encabezado:** d3d12\_xs.h o d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib o d3d12\_x.lib\
**Plataformas compatibles**: consolas XBOX Series y familia XBOX One

## Consulte también

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

[Recursos en mosaico](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/tiled-resources)


## Related topics

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