énumération D3D12DDI_BARRIER_LAYOUT (d3d12umddi.h)

Important

Certaines informations se rapportent à un produit de préversion qui peut être sensiblement modifié avant sa commercialisation. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.

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.

Syntax

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
  D3D12DDI_BARRIER_LAYOUT_COMMON = 0,
  D3D12DDI_BARRIER_LAYOUT_PRESENT = 0,
  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_COPY_SOURCE = 0x80000000,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

Constantes

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
Valeur : 0xffffffff
Fournit la prise en charge des modifications de disposition de sous-ressources lorsque la disposition précédente n’est pas pertinente ou n’est pas définie. En règle générale, il est utilisé pour les commandes Effacer, Ignorer et Copier en sous-ressource complète ou en sous-ressource complète.

Une transition de disposition avec LayoutBefore et LayoutAfter définis sur D3D12_BARRIER_LAYOUT_UNDEFINED indique une barrière d’accès uniquement à la mémoire. De nombreuses opérations de lecture/écriture prennent en charge les D3D12_BARRIER_LAYOUT_COMMON. En particulier, les commandes Copier peuvent écrire dans des textures à l’aide de l’D3D12_BARRIER_LAYOUT_COMMON ou de l’D3D12_BARRIER_LAYOUT_COPY. Une barrière d’accès uniquement à la mémoire peut être utilisée pour vider les écritures de copie dans une texture sans modifier la disposition de texture.
D3D12DDI_BARRIER_LAYOUT_COMMON
Valeur : 0
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 arrière utilise D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_PRESENT
Valeur : 0
Alias pour D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
Prend en charge tout 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 en charge l’utilisation courante (sans obstacle) sur les files d’attente directes uniquement. Cette valeur est plus optimale que la D3D12DDI_BARRIER_LAYOUT_COMMON plus générale. Peut uniquement être utilisé dans les barrières sur les files d’attente directes.

Notez que cela ne peut pas être utilisé pour Présent. D3D12_BARRIER_LAYOUT_COMMON (également appelé 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 pour les files d’attente directes. Peut uniquement être utilisé 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 à taux d’ombrage et de la résolution des accès aux 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 pour les files d’attente directes. Peut uniquement être utilisé 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 pour les files d’attente directes. Peut uniquement être utilisé 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 les optimisations spécifiques pour les files d’attente directes. Peut uniquement être utilisé 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 pour les files d’attente directes. Peut uniquement être utilisé dans les barrières sur les files d’attente directes. Peut empêcher la décompression coûteuse et inutile de certaines transitions de disposition sur les ressources avec un accès suivant dans une file d’attente direct.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
Prend en charge l’utilisation courante (sans obstacle) sur les files d’attente de calcul uniquement. Peut être plus optimal que les D3D12_BARRIER_LAYOUT_COMMON plus généraux. 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 pour les 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 les optimisations spécifiques pour les 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 les optimisations spécifiques pour les 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 les optimisations spécifiques pour les 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 pour les 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 obstacle) sur les files d’attente vidéo uniquement. Peut être plus optimal que les D3D12_BARRIER_LAYOUT_COMMON plus généraux. Ne peut être utilisé que dans les barrières sur les files d’attente vidéo.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
Valeur : 0x80000000
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.

Configuration requise

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

Voir aussi

D3D12DDI_TEXTURE_BARRIER_0088