Partager via


énumération D3D10_MAP (d3d10.h)

Identifie une ressource accessible pour la lecture et l’écriture par le processeur. Les applications peuvent combiner un ou plusieurs de ces indicateurs.

Syntax

typedef enum D3D10_MAP {
  D3D10_MAP_READ = 1,
  D3D10_MAP_WRITE = 2,
  D3D10_MAP_READ_WRITE = 3,
  D3D10_MAP_WRITE_DISCARD = 4,
  D3D10_MAP_WRITE_NO_OVERWRITE = 5
} ;

Constantes

 
D3D10_MAP_READ
Valeur : 1
La ressource est mappée pour la lecture. La ressource doit avoir été créée avec un accès en lecture (voir D3D10_CPU_ACCESS_READ).
D3D10_MAP_WRITE
Valeur : 2
La ressource est mappée pour l’écriture. La ressource doit avoir été créée avec un accès en écriture (voir D3D10_CPU_ACCESS_WRITE).
D3D10_MAP_READ_WRITE
Valeur : 3
La ressource est mappée pour la lecture et l’écriture. La ressource doit avoir été créée avec un accès en lecture et en écriture (voir D3D10_CPU_ACCESS_READ et D3D10_CPU_ACCESS_WRITE).
D3D10_MAP_WRITE_DISCARD
Valeur : 4
La ressource est mappée pour l’écriture ; le contenu précédent de la ressource n’est pas défini. La ressource doit avoir été créée avec un accès en écriture (voir D3D10_CPU_ACCESS_WRITE).
D3D10_MAP_WRITE_NO_OVERWRITE
Valeur : 5
La ressource est mappée pour l’écriture ; le contenu existant de la ressource ne peut pas être remplacé (voir remarques). Cet indicateur est valide uniquement sur les tampons de vertex et d’index. La ressource doit avoir été créée avec un accès en écriture (voir D3D10_CPU_ACCESS_WRITE). Ne peut pas être utilisé sur une ressource créée avec l’indicateur D3D10_BIND_CONSTANT_BUFFER .

Remarques

Cette énumération est utilisée dans ID3D10Buffer ::Map, ID3D10Texture1D ::Map, ID3D10Texture2D ::Map et ID3D10Texture3D ::Map.

Signification de D3D10_MAP_WRITE_NO_OVERWRITE

D3D10_MAP_WRITE_NO_OVERWRITE signifie que l’application promet de ne pas écrire dans les données que la phase d’assembleur d’entrée (IA) utilise. En échange, le GPU permet à l’application d’écrire dans d’autres parties de la même mémoire tampon. L’application doit s’assurer qu’elle n’écrit pas sur les données utilisées par la phase IA.

Par exemple, considérez la mémoire tampon illustrée dans le diagramme suivant. Si un appel Draw qui utilise les sommets 4 à 6 a été émis, une application qui appelle Map sur cette mémoire tampon doit s’assurer qu’elle n’écrit pas dans les sommets auxquels l’appel Draw accède pendant le rendu.

Diagramme des données de vertex à différentes étapes d’utilisation Toutefois, il peut être difficile de s’assurer que cela peut être difficile, car le GPU est souvent de nombreuses trames derrière le processeur en termes de l’image qu’il traite actuellement. Le suivi des sections d’une ressource qui sont utilisées en raison d’appels effectués il y a 2 à 5 images est difficile et sujet aux erreurs. Pour cette raison, il est recommandé que les applications écrivent uniquement dans les parties non initialisées d’une ressource lors de l’utilisation de D3D10_MAP_WRITE_NO_OVERWRITE.

Utilisation courante de D3D10_MAP_WRITE_DISCARD avec D3D10_MAP_WRITE_NO_OVERWRITE

D3D10_MAP_WRITE_DISCARD et D3D10_MAP_WRITE_NO_OVERWRITE sont normalement utilisés conjointement avec des mémoires tampons d’index/vertex dynamiques, bien qu’ils puissent également être utilisés avec des textures dynamiques.

Une utilisation courante de ces deux indicateurs implique de remplir les mémoires tampons d’index/vertex dynamiques avec une géométrie visible à partir de la position actuelle de la caméra. La première fois que les données sont entrées dans la mémoire tampon sur une trame donnée, Map est appelée avec D3D10_MAP_WRITE_DISCARD ; Cela invalide le contenu précédent de la mémoire tampon. La mémoire tampon est ensuite remplie avec toutes les données disponibles.

Les écritures suivantes dans la mémoire tampon dans la même trame doivent utiliser D3D10_MAP_WRITE_NO_OVERWRITE. Cela permet au processeur d’accéder à une ressource potentiellement utilisée par le GPU tant que les restrictions décrites précédemment sont respectées.

Configuration requise

Condition requise Valeur
En-tête d3d10.h

Voir aussi

Énumérations de ressources