é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.
Syntax
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 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 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 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_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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 11 (WDDM 3.0) |
En-tête | d3d12umddi.h |