Verrouillage des ressources (Direct3D 9)

Le verrouillage d’une ressource signifie accorder l’accès du processeur à son stockage. Les options de verrouillage suivantes sont définies pour les ressources :

  • D3DLOCK_DISCARD
  • D3DLOCK_READONLY
  • D3DLOCK_NOOVERWRITE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_NO_DIRTY_UPDATE

Pour plus d’informations sur les indicateurs de verrouillage et leur relation avec des ressources spécifiques, consultez les pages de référence sur les méthodes de verrouillage de ressources individuelles. Les développeurs d’applications doivent noter que les indicateurs D3DLOCK_DISCARD, D3DLOCK_READONLY et D3DLOCK_NOOVERWRITE ne sont que des indicateurs. Le temps d’exécution n’case activée pas que les applications suivent les fonctionnalités spécifiées par ces indicateurs. Une application qui spécifie D3DLOCK_READONLY, mais qui écrit ensuite dans la ressource doit s’attendre à des résultats non définis. En général, le travail contre les indicateurs de verrouillage, y compris les indicateurs d’utilisation de verrouillage, n’est pas garanti pour fonctionner dans les versions ultérieures et peut entraîner une pénalité de performances importante.

Une opération de verrouillage est suivie d’une opération de déverrouillage. Par exemple, après le verrouillage d’une texture, l’application abandonne ensuite l’accès direct aux textures verrouillées en les déverrouillant. En plus d’accorder l’accès au processeur, toutes les autres opérations impliquant cette ressource sont sérialisées pendant la durée d’un verrou. Un seul verrou pour une ressource est autorisé, même pour les régions qui ne se chevauchent pas, et aucune opération d’accélérateur sur une surface ne peut être en cours pendant qu’une opération de verrouillage est en suspens sur cette surface.

Chaque interface de ressource a des méthodes pour verrouiller les mémoires tampons contenues. Chaque ressource de texture peut également verrouiller une sous-partie de cette ressource. Les ressources 2D (surfaces) permettent le verrouillage de sous-rectangles, et les ressources de volume autorisent le verrouillage de sous-volumes ou de zones. Chaque méthode de verrouillage retourne une structure qui contient un pointeur vers le stockage qui sauvegarde la ressource et des valeurs représentant les distances entre les lignes ou les plans de données, en fonction du type de ressource. Pour plus d’informations, consultez les listes de méthodes pour les interfaces de ressources. Le pointeur retourné pointe toujours vers l’octet supérieur gauche dans les sous-régions verrouillées.

Lorsque vous utilisez des mémoires tampons d’index et de vertex, vous pouvez effectuer plusieurs appels de verrouillage ; Toutefois, vous devez vous assurer que le nombre d’appels de verrouillage correspond au nombre d’appels de déverrouillage.

Le DXTn stocke les pixels dans des blocs 4x4 encodés et ne peut être verrouillé que sur des limites 4x4.

Ressources Direct3D