Sintaxis
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 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 que describe el tamaño de la región en mosaico. pBuffer [in]
Tipo: ID3D12Resource * Un puntero a un ID3D12Resource que representa un búfer predeterminado, dinámico o de almacenamiento provisional. BufferStartOffsetInBytes
Tipo: UINT64 El desplazamiento en bytes dentro del búfer en pBuffer 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 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). 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. 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, para copiar mipmaps pequeños individualmente.Requisitos
Encabezado: d3d12_xs.h o d3d12_x.hBiblioteca: d3d12_xs.lib o d3d12_x.lib
Plataformas compatibles: consolas XBOX Series y familia XBOX One
