Partager via


énumération D3D12DDI_BARRIER_ACCESS (d3d12umddi.h)

Une valeur D3D12DDI_BARRIER_ACCESS est un OR au niveau du bit des champs suivants qui spécifient l’accès aux ressources par rapport à un obstacle.

Syntax

typedef enum D3D12DDI_BARRIER_ACCESS {
  D3D12DDI_BARRIER_ACCESS_COMMON = 0x0,
  D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  D3D12DDI_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  D3D12DDI_BARRIER_ACCESS_PREDICATION = 0x200,
  D3D12DDI_BARRIER_ACCESS_COPY_DEST = 0x400,
  D3D12DDI_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  D3D12DDI_BARRIER_ACCESS_NO_ACCESS = 0x80000000
} ;

Constantes

 
D3D12DDI_BARRIER_ACCESS_COMMON
Valeur : 0x0
Accès initial par défaut pour toutes les ressources dans une étendue ExecuteCommandLists donnée. Prend en charge tout type d’accès compatible avec la disposition actuelle et les propriétés de ressource, y compris un accès en écriture. Pour les mémoires tampons et les textures utilisant D3D12DDI_BARRIER_LAYOUT_COMMON, D3D12DDI_BARRIER_ACCESS_COMMON prend en charge les accès simultanés en lecture et en écriture.

Lorsqu’il est utilisé en tant qu’AccessAfter, D3D12DDI_BARRIER_ACCESS_COMMON peut être utilisé pour renvoyer une ressource à l’accessibilité courante. Notez que cela peut forcer des vidages de cache inutiles en cas d’utilisation incorrecte. Lorsque cela est possible, AccessAfter doit être limité aux bits d’accès explicites.

Évitez d’utiliser D3D12DDI_BARRIER_ACCESS_COMMON comme valeur AccessBefore . Les risques de lecture après écriture ou d’écriture après écriture sont mieux gérés à l’aide de bits AccessBefore explicites.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Valeur : 0x1
Une ressource de mémoire tampon est accessible en tant que tampon de vertex dans la file d’attente d’exécution actuelle.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Valeur : 0x2
Une ressource de mémoire tampon est accessible en tant que mémoire tampon constante dans la file d’attente d’exécution actuelle.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Valeur : 0x4
Une ressource de mémoire tampon est accessible en tant que mémoire tampon d’index dans la file d’attente d’exécution actuelle.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
Valeur : 0x8
Une ressource est accessible en tant que cible de rendu.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
Valeur : 0x10
Une ressource est accessible en tant que ressource d’accès non ordonné.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
Valeur : 0x20
Une ressource est accessible en tant que ressource de profondeur/gabarit pouvant être écrit.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
Valeur : 0x40
Une ressource est accessible en tant que ressource de profondeur/gabarit en lecture seule.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
Valeur : 0x80
Une ressource est accessible en tant que ressource de nuanceur.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
Valeur : 0x100
Une mémoire tampon est accessible en tant que cible de sortie de flux.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
Valeur : 0x200
Une mémoire tampon est accessible en tant que mémoire tampon d’argument indirect.
D3D12DDI_BARRIER_ACCESS_PREDICATION
Valeur : 0x200
Une mémoire tampon est accessible en tant que mémoire tampon de prédication. Alias avec D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
Valeur : 0x400
Une ressource est accessible en tant que destination de copie.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
Valeur : 0x800
Une ressource est accessible en tant que source de copie.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
Valeur : 0x1000
Une ressource est accessible en tant que destination de résolution.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Valeur : 0x2000
Une ressource est accessible en tant que source de résolution.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Valeur : 0x4000
Une ressource est accessible en lecture en tant que structure d’accélération du suivi de rayons. La ressource doit avoir été créée à l’aide d’un état initial de D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Valeur : 0x8000
Une ressource est accessible pour l’écriture en tant que structure d’accélération de traçage de rayons. La ressource doit avoir été créée à l’aide d’un état initial de D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
Valeur : 0x10000
Une ressource est accessible en tant que source de taux d’ombrage.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
Valeur : 0x20000
Une ressource est accessible en lecture seule dans une file d’attente de décodage vidéo.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Valeur : 0x40000
Une ressource est accessible pour l’accès en écriture dans une file d’attente de décodage vidéo.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Valeur : 0x80000
Une ressource est accessible pour un accès en lecture seule dans une file d’attente de processus vidéo.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Valeur : 0x100000
Une ressource est accessible pour l’accès en écriture dans une file d’attente de processus vidéo.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Valeur : 0x200000
Une ressource est accessible pour un accès en lecture seule dans une file d’attente d’encodage vidéo.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Valeur : 0x400000
Une ressource est accessible pour l’accès en écriture dans une file d’attente d’encodage vidéo.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Valeur : 0x80000000
Une ressource n’est pas accessible en lecture ou en écriture. Une fois qu’un accès de sous-ressource a été transféré vers D3D12DDI_BARRIER_ACCESS_NO_ACCESS, il doit être réactivé par un obstacle avec AccessBefore défini sur D3D12DDI_BARRIER_ACCESS_NO_ACCESS avant de l’utiliser dans la même étendue ExecuteCommandLists.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS ne peut être utilisé qu’avec D3D12DDI_BARRIER_SYNC_NONE ou D3D12DDI_BARRIER_SYNC_SPLIT.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS ne peut pas être défini avec d’autres bits d’accès. D3D12DDI_BARRIER_ACCESS_NO_ACCESS indique qu’une ressource n’est pas censée être accessible avant un obstacle suivant ou l’étendue ECL suivante.

Cette valeur est utile dans les barrières d’alias lorsqu’une sous-ressource n’est pas nécessaire pendant une période suffisamment longue pour qu’il soit judicieux de vider la sous-ressource d’un cache de lecture.

Il est également utile pour lancer une transition de disposition en tant qu’acte final sur une ressource avant la fin d’une étendue ExecuteCommandLists. Si SyncAfter est D3D12DDI_BARRIER_SYNC_NONE, AccessAfter doit être D3D12DDI_BARRIER_ACCESS_NO_ACCESS.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11 (WDDM 3.0)
En-tête d3d12umddi.h

Voir aussi

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088