Syntaxe
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 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 qui décrit la taille de la région en mosaïque. pBuffer [in]
Type : ID3D12Resource * Pointeur vers un ID3D12Resource 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 à pBuffer où commencer l’opération. Flags
Type : D3D12_TILE_COPY_FLAGS Combinaison de valeurs de type D3D12_TILE_COPY_FLAGS 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). 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. 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, pour copier individuellement les petits mipmaps.Configuration requise
En-tête : d3d12_xs.h ou d3d12_x.hBibliothèque : d3d12_xs.lib ou d3d12_x.lib
Plateformes prises en charge : consoles XBOX Series et famille XBOX One
