enumeración D3D12DDI_BARRIER_LAYOUT (d3d12umddi.h)

Un valor de D3D12DDI_BARRIER_LAYOUT describe los posibles diseños usados por los subrecursos D3D12 con respecto a las barreras de textura. Los diseños solo se aplican a los recursos de textura.

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
Proporciona compatibilidad con los cambios de diseño de subrecursos en los que el diseño anterior es irrelevante o no está definido. Normalmente, se usa para los comandos Clear, Discard y Copy de recursos completos o subrecursos completos.

Una transición de diseño con LayoutBefore y LayoutAfter establecido en D3D12_BARRIER_LAYOUT_UNDEFINED indica una barrera de solo acceso a memoria. Muchas operaciones de lectura y escritura admiten D3D12_BARRIER_LAYOUT_COMMON. En concreto, los comandos copy pueden escribir en texturas mediante el D3D12_BARRIER_LAYOUT_COMMON o D3D12_BARRIER_LAYOUT_COPY. Se puede usar una barrera de solo acceso a memoria para vaciar las escrituras de copia en una textura sin cambiar el diseño de la textura.
D3D12DDI_BARRIER_LAYOUT_COMMON
Este es el diseño usado por D3D12_RESOURCE_STATE_COMMON. Los subrecursos con este diseño son legibles en cualquier tipo de cola sin necesidad de un cambio de diseño. También se pueden escribir como destino de copia en cualquier tipo de cola.

La presentación de la cadena de intercambio requiere que el búfer de reserva use D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_PRESENT
Alias para D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
Proporciona compatibilidad con cualquier acceso de solo lectura (por ejemplo: SHADER_RESOURCE, COPY_SOURCE). Este valor solo se debe usar para texturas que requieren varios accesos de lectura simultáneos, ya que esto podría no ser tan óptimo como un diseño de lectura más específico.
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
Coincide con el diseño usado por D3D12_RESOURCE_STATE_RENDER_TARGET.
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
Coincide con el diseño usado por D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
Coincide con el diseño usado por D3D12_RESOURCE_STATE_DEPTH_WRITE.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
Coincide con el diseño usado por D3D12_RESOURCE_STATE_DEPTH_READ.
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
Coincide con el diseño usado por D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE y D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
Coincide con el diseño usado por D3D12_RESOURCE_STATE_COPY_SOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
Coincide con el diseño usado por D3D12_RESOURCE_STATE_COPY_DEST.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
Coincide con el diseño usado por D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
Coincide con el diseño usado por D3D12DDI_RESOURCE_STATE_RESOLVE_DEST.
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
Coincide con el diseño usado por D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
Coincide con el diseño usado por D3D12_RESOURCE_STATE_VIDEO_DECODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
Coincide con el diseño usado por D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
Coincide con el diseño usado por D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
Coincide con el diseño usado por D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
Coincide con el diseño usado por D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
Coincide con el diseño usado por D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
Admite el uso común (sin barreras) solo en colas directas. Este valor es más óptimo que el D3D12DDI_BARRIER_LAYOUT_COMMON más general. Solo se puede usar en barreras en colas directas.

Tenga en cuenta que no se puede usar para Present. D3D12_BARRIER_LAYOUT_COMMON (también conocido como D3D12_BARRIER_LAYOUT_PRESENT) sigue siendo el diseño necesario para Presentation.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
Igual que D3D12_BARRIER_LAYOUT_GENERIC_READ excepto con optimizaciones específicas para las colas directas. Solo se puede usar en barreras en colas directas.

Además, D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ incluye compatibilidad con la profundidad de solo lectura, el origen de frecuencia de sombreado y la resolución de accesos de origen en colas directas.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
Igual que D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS excepto con optimizaciones específicas para las colas directas. Solo se puede usar en barreras en colas directas.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
Igual que D3D12_BARRIER_LAYOUT_SHADER_RESOURCE excepto con optimizaciones específicas para las colas directas. Solo se puede usar en barreras en colas directas.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
Igual que D3D12_BARRIER_LAYOUT_COPY_SOURCE excepto con optimizaciones específicas para las colas directas. Solo se puede usar en barreras en colas directas.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
Igual que D3D12_BARRIER_LAYOUT_COPY_DEST excepto con optimizaciones específicas para las colas directas. Solo se puede usar en barreras en colas directas. Puede evitar una descompresión costosa e innecesaria en algunas transiciones de diseño en los recursos con acceso siguiente en una cola directa.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
Admite el uso común (sin barreras) solo en las colas de proceso. Puede ser más óptimo que el D3D12_BARRIER_LAYOUT_COMMON más general. Solo se puede usar en barreras en las colas de proceso.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
Igual que D3D12_BARRIER_LAYOUT_GENERIC_READ excepto con optimizaciones específicas para las colas de proceso. Solo se puede usar en barreras en las colas de proceso.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
Igual que D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS excepto con optimizaciones específicas para las colas de proceso. Solo se puede usar en barreras en las colas de proceso.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
Igual que D3D12_BARRIER_LAYOUT_SHADER_RESOURCE , excepto con optimizaciones específicas para las colas de proceso. Solo se puede usar en barreras en las colas de proceso.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
Igual que D3D12_BARRIER_LAYOUT_COPY_SOURCE excepto con optimizaciones específicas para las colas de proceso. Solo se puede usar en barreras en las colas de proceso.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
Igual que D3D12_BARRIER_LAYOUT_COPY_DEST excepto con optimizaciones específicas para las colas de proceso. Solo se puede usar en barreras en las colas de proceso.
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
Solo admite el uso común (sin barreras) en las colas de vídeo. Puede ser más óptimo que el D3D12_BARRIER_LAYOUT_COMMON más general. Solo se puede usar en barreras en las colas de vídeo.
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE
Admite un estado de recurso heredado traducido internamente. Ninguna API de barrera mejorada se asigna a este valor.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
Admite un estado de recurso heredado traducido internamente. Ninguna API de barrera mejorada se asigna a este valor.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
Admite un estado de recurso heredado traducido internamente. Ninguna API de barrera mejorada se asigna a este valor.
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
Admite un estado de recurso heredado traducido internamente. Ninguna API de barrera mejorada se asigna a este valor.
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
Admite un estado de recurso heredado traducido internamente. Ninguna API de barrera mejorada se asigna a este valor.

Comentarios

Los recursos de búfer solo tienen un diseño lineal, independientemente del tipo de acceso.

Los diseños de recursos deben ser compatibles con el tipo de cola que realiza la transición de diseño.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 11 (WDDM 3.0)
Encabezado d3d12umddi.h

Consulte también

D3D12DDI_TEXTURE_BARRIER_0088