Partager via


énumération D3D12DDI_BARRIER_LAYOUT (d3d12umddi.h)

Une valeur D3D12DDI_BARRIER_LAYOUT décrit les dispositions possibles utilisées par les sous-ressources D3D12 en ce qui concerne les barrières de texture . Les dispositions s’appliquent uniquement aux ressources de texture.

Syntaxe

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED,
  D3D12DDI_BARRIER_LAYOUT_COMMON,
  D3D12DDI_BARRIER_LAYOUT_PRESENT,
  D3D12DDI_BARRIER_LAYOUT_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET,
  D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ,
  D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST,
  D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

Constantes

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
Fournit la prise en charge des modifications de disposition de sous-ressources où la disposition précédente n’est pas pertinente ou non définie. En règle générale, cela est utilisé pour les commandes Clear, Discard et Copy complètes pour les sous-ressources complètes.

Une transition de disposition avec les deux LayoutBefore et LayoutAfter définie sur D3D12_BARRIER_LAYOUT_UNDEFINED indique une barrière d’accès en mémoire uniquement. De nombreuses opérations de lecture/écriture prennent en charge D3D12_BARRIER_LAYOUT_COMMON. En particulier, les commandes de copie peuvent écrire dans des textures à l’aide de la D3D12_BARRIER_LAYOUT_COMMON ou D3D12_BARRIER_LAYOUT_COPY. Une barrière d’accès à la mémoire uniquement peut être utilisée pour vider les écritures de copie dans une texture sans modifier la disposition de texture.
D3D12DDI_BARRIER_LAYOUT_COMMON
Il s’agit de la disposition utilisée par D3D12_RESOURCE_STATE_COMMON. Les sous-ressources avec cette disposition sont lisibles dans n’importe quel type de file d’attente sans nécessiter de modification de disposition. Ils peuvent également être écrits en tant que destination de copie dans n’importe quel type de file d’attente.

La présentation de la chaîne d’échange nécessite que la mémoire tampon back utilise D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_PRESENT
Alias pour D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
Fournit la prise en charge d’un accès en lecture seule (par exemple : SHADER_RESOURCE, COPY_SOURCE). Cette valeur ne doit être utilisée que pour les textures qui nécessitent plusieurs accès en lecture simultanés, car cela peut ne pas être aussi optimal qu’une disposition de lecture plus spécifique.
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_RENDER_TARGET.
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_DEPTH_WRITE.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_DEPTH_READ.
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE et D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_COPY_SOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_COPY_DEST.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
Correspond à la disposition utilisée par D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
Correspond à la disposition utilisée par D3D12DDI_RESOURCE_STATE_RESOLVE_DEST.
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
Correspond à la disposition utilisée par D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_VIDEO_DECODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
Correspond à la disposition utilisée par D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
Prend uniquement en charge l’utilisation courante (sans barrière) sur les files d’attente directes. Cette valeur est plus optimale que la D3D12DDI_BARRIER_LAYOUT_COMMONplus générale. Ne peut être utilisé que dans les barrières sur les files d’attente directes.

Notez que cela ne peut pas être utilisé pour Present. D3D12_BARRIER_LAYOUT_COMMON (également appelée D3D12_BARRIER_LAYOUT_PRESENT) est toujours la disposition requise pour La présentation.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
Identique à D3D12_BARRIER_LAYOUT_GENERIC_READ sauf avec des optimisations spécifiques aux files d’attente directes. Ne peut être utilisé que dans les barrières sur les files d’attente directes.

En outre, D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ inclut la prise en charge de la profondeur en lecture seule, de la source de taux d’ombrage et de la résolution des accès sources sur les files d’attente directes.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
Identique à D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS sauf avec des optimisations spécifiques aux files d’attente directes. Ne peut être utilisé que dans les barrières sur les files d’attente directes.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
Identique à D3D12_BARRIER_LAYOUT_SHADER_RESOURCE sauf avec des optimisations spécifiques aux files d’attente directes. Ne peut être utilisé que dans les barrières sur les files d’attente directes.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
Identique à D3D12_BARRIER_LAYOUT_COPY_SOURCE sauf avec des optimisations spécifiques aux files d’attente directes. Ne peut être utilisé que dans les barrières sur les files d’attente directes.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
Identique à D3D12_BARRIER_LAYOUT_COPY_DEST sauf avec des optimisations spécifiques aux files d’attente directes. Ne peut être utilisé que dans les barrières sur les files d’attente directes. Peut empêcher la décompression coûteuse et inutile sur certaines transitions de disposition sur les ressources avec un accès suivant dans une file d’attente directe.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
Prend uniquement en charge l’utilisation courante (sans barrière) sur les files d’attente de calcul. Peut être plus optimal que le D3D12_BARRIER_LAYOUT_COMMONplus général. Ne peut être utilisé que dans les barrières sur les files d’attente de calcul.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
Identique à D3D12_BARRIER_LAYOUT_GENERIC_READ sauf avec des optimisations spécifiques aux files d’attente de calcul. Ne peut être utilisé que dans les barrières sur les files d’attente de calcul.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
Identique à D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS sauf avec des optimisations spécifiques aux files d’attente de calcul. Ne peut être utilisé que dans les barrières sur les files d’attente de calcul.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
Identique à D3D12_BARRIER_LAYOUT_SHADER_RESOURCE sauf avec des optimisations spécifiques aux files d’attente de calcul. Ne peut être utilisé que dans les barrières sur les files d’attente de calcul.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
Identique à D3D12_BARRIER_LAYOUT_COPY_SOURCE sauf avec des optimisations spécifiques aux files d’attente de calcul. Ne peut être utilisé que dans les barrières sur les files d’attente de calcul.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
Identique à D3D12_BARRIER_LAYOUT_COPY_DEST sauf avec des optimisations spécifiques aux files d’attente de calcul. Ne peut être utilisé que dans les barrières sur les files d’attente de calcul.
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
Prend en charge l’utilisation courante (sans barrière) sur les files d’attente vidéo uniquement. Peut être plus optimal que le D3D12_BARRIER_LAYOUT_COMMONplus général. Ne peut être utilisé que dans les barrières sur les files d’attente vidéo.
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE
Prend en charge un état de ressource hérité traduit en interne. Aucune API de barrière améliorée n’est mappée à cette valeur.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
Prend en charge un état de ressource hérité traduit en interne. Aucune API de barrière améliorée n’est mappée à cette valeur.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
Prend en charge un état de ressource hérité traduit en interne. Aucune API de barrière améliorée n’est mappée à cette valeur.
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
Prend en charge un état de ressource hérité traduit en interne. Aucune API de barrière améliorée n’est mappée à cette valeur.
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
Prend en charge un état de ressource hérité traduit en interne. Aucune API de barrière améliorée n’est mappée à cette valeur.

Remarques

Les ressources de mémoire tampon ont uniquement une disposition linéaire, quel que soit le type d’accès.

Les dispositions de ressources doivent être compatibles avec le type de file d’attente effectuant la transition de disposition.

Exigences

Exigence Valeur
client minimum pris en charge Windows 11 (WDDM 3.0)
d’en-tête d3d12umddi.h

Voir aussi

D3D12DDI_TEXTURE_BARRIER_0088