Partager via


ID3D11DeviceContext2::UpdateTiles, méthode (d3d11_2.h)

Mises à jour vignettes en copiant de la mémoire de l’application vers la ressource en mosaïque.

Syntaxe

void UpdateTiles(
  [in] ID3D11Resource                        *pDestTiledResource,
  [in] const D3D11_TILED_RESOURCE_COORDINATE *pDestTileRegionStartCoordinate,
  [in] const D3D11_TILE_REGION_SIZE          *pDestTileRegionSize,
  [in] const void                            *pSourceTileData,
  [in] UINT                                  Flags
);

Paramètres

[in] pDestTiledResource

Type : ID3D11Resource*

Pointeur vers une ressource en mosaïque à mettre à jour.

[in] pDestTileRegionStartCoordinate

Type : const D3D11_TILED_RESOURCE_COORDINATE*

Pointeur vers une structure D3D11_TILED_RESOURCE_COORDINATE qui décrit les coordonnées de départ de la ressource en mosaïque.

[in] pDestTileRegionSize

Type : const D3D11_TILE_REGION_SIZE*

Pointeur vers une structure D3D11_TILE_REGION_SIZE qui décrit la taille de la région en mosaïque.

[in] pSourceTileData

Type : const void*

Pointeur vers la mémoire qui contient les données de vignette source que UpdateTiles utilise pour mettre à jour la ressource en mosaïque.

[in] Flags

Type : UINT

Combinaison de valeurs de type D3D11_TILE_COPY_FLAG qui sont combinées à l’aide d’une opération OR au niveau du bit. La seule valeur valide est D3D11_TILE_COPY_NO_OVERWRITE. Les autres valeurs ne sont pas significatives ici, bien que, par définition, la valeur D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE correspond essentiellement à ce que fait UpdateTiles , mais aux sources de la mémoire de l’application.

Valeur de retour

Aucune

Remarques

UpdateTiles supprime les opérations d’écriture dans les zones non mappées (sauf sur Tier_1 ressources en mosaïques, où l’écriture dans des zones non mappées n’est pas valide).

Si une opération de copie implique l’écriture dans le même emplacement mémoire plusieurs fois, car plusieurs emplacements de la ressource de destination sont mappés à la même mémoire de vignette, les opérations d’écriture résultantes sur des vignettes multi mappées sont non déterministes et non reproductibles ; Autrement dit, les accès à la mémoire des vignettes se produisent dans l’ordre dans lequel le matériel exécute l’opération de copie.

Les vignettes impliquées dans l’opération de copie ne peuvent pas inclure de vignettes contenant des mipmaps compressés ou les résultats de l’opération de copie ne sont pas définis. Pour transférer des données vers et depuis des mipmaps que le matériel packpe dans une vignette, vous devez utiliser les API de copie et de mise à jour standard (c’est-à-dire non spécifiques aux vignettes) (telles que ID3D11DeviceContext1::CopySubresourceRegion1 et ID3D11DeviceContext1::UpdateSubresource1) ou ID3D11DeviceContext::GenerateMips pour l’ensemble de la chaîne mipmap.

La disposition en mémoire des données du côté source de l’opération de copie est linéaire en mémoire dans des vignettes de 64 Ko, que le matériel et le pilote swizzle et deswizzle par vignette, selon le cas, quand ils sont transférés vers et depuis une ressource en mosaïque. Pour les surfaces MSAA (Multisample Antialiasing), le matériel et le pilote parcourent les échantillons de chaque pixel dans l’ordre d’échantillonnage-index avant de passer au pixel suivant. Pour les vignettes qui sont partiellement remplies sur le côté droit (pour une surface dont la largeur n’est pas un multiple de largeur de vignette en pixels), la hauteur et la foulée pour se déplacer vers le bas d’une ligne sont la taille complète, en octets, du nombre de pixels qui correspondrait à la vignette si la vignette était pleine. Ainsi, il peut y avoir un espace entre chaque ligne de pixels en mémoire. Les Mipmaps plus petits qu’une vignette ne sont pas regroupés dans la disposition linéaire, ce qui peut sembler être une perte d’espace mémoire, mais comme mentionné, vous ne pouvez pas utiliser ID3D11DeviceContext2::CopyTiles ou UpdateTiles pour copier dans des mipmaps que le matériel regroupe. Vous pouvez simplement utiliser les API de copie et de mise à jour génériques (comme ID3D11DeviceContext1::CopySubresourceRegion1 et ID3D11DeviceContext1::UpdateSubresource1) pour copier individuellement de petits mipmaps. Bien que dans le cas d’une API de copie générique (comme ID3D11DeviceContext1::CopySubresourceRegion1), la mémoire linéaire doit avoir la même dimension que la ressource en mosaïque ; ID3D11DeviceContext1::CopySubresourceRegion1 ne peut pas copier à partir d’une ressource de mémoire tampon vers une texture2D pour instance.

Pour plus d’informations sur les ressources en mosaïques, consultez Ressources en mosaïque.

Configuration requise

   
Client minimal pris en charge Windows 8.1 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d3d11_2.h
Bibliothèque D3D11.lib

Voir aussi

ID3D11DeviceContext2