Поделиться через


перечисление D3D12DDI_BARRIER_LAYOUT (d3d12umddi.h)

Значение D3D12DDI_BARRIER_LAYOUT описывает возможные макеты, используемые подресурсами D3D12 в отношении барьеров текстуры. Макеты применяются только к ресурсам текстур.

Синтаксис

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
} ;

Константы

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
Предоставляет поддержку изменений макета подресурса, в которых предыдущий макет не имеет значения или не определен. Как правило, это используется для команд full-subresource или полноресурсной очистки, отмены и копирования.

Переход макета с LayoutBefore и LayoutAfter для D3D12_BARRIER_LAYOUT_UNDEFINED указывает барьер только для доступа к памяти. Многие операции чтения и записи поддерживают D3D12_BARRIER_LAYOUT_COMMON. В частности, команды копирования могут записываться в текстуры с помощью D3D12_BARRIER_LAYOUT_COMMON или D3D12_BARRIER_LAYOUT_COPY. Барьер только для доступа к памяти можно использовать для очистки копирования операций записи в текстуру без изменения макета текстуры.
D3D12DDI_BARRIER_LAYOUT_COMMON
Это макет, используемый D3D12_RESOURCE_STATE_COMMON. Подресурсы с этим макетом доступны для чтения в любом типе очереди, не требуя изменения макета. Они также записываются как место назначения копирования в любом типе очереди.

Для презентации цепочки буферов требуется, чтобы задний буфер использовал D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_PRESENT
Псевдоним для D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
Предоставляет поддержку любого доступа только для чтения (например, SHADER_RESOURCE, COPY_SOURCE). Это значение следует использовать только для текстур, требующих нескольких одновременных операций чтения, так как это может быть не так оптимально, как более конкретный макет чтения.
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
Соответствует макету, используемому D3D12_RESOURCE_STATE_RENDER_TARGET.
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
Соответствует макету, используемому D3D12_RESOURCE_STATE_UNORDERED_ACCESS.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
Соответствует макету, используемому D3D12_RESOURCE_STATE_DEPTH_WRITE.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
Соответствует макету, используемому D3D12_RESOURCE_STATE_DEPTH_READ.
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
Соответствует макету, используемому D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE и D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
Соответствует макету, используемому D3D12_RESOURCE_STATE_COPY_SOURCE.
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
Соответствует макету, используемому D3D12_RESOURCE_STATE_COPY_DEST.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
Соответствует макету, используемому D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
Соответствует макету, используемому D3D12DDI_RESOURCE_STATE_RESOLVE_DEST.
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
Соответствует макету, используемому D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
Соответствует макету, используемому D3D12_RESOURCE_STATE_VIDEO_DECODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
Соответствует макету, используемому D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
Соответствует макету, используемому D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
Соответствует макету, используемому D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
Соответствует макету, используемому D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
Соответствует макету, используемому D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
Поддерживает общее использование (бесплатного барьера) только в прямых очередях. Это значение является более оптимальным, чем более общие D3D12DDI_BARRIER_LAYOUT_COMMON. Можно использовать только в барьерах в прямых очередях.

Обратите внимание, что это нельзя использовать для present. D3D12_BARRIER_LAYOUT_COMMON (также известный как D3D12_BARRIER_LAYOUT_PRESENT) по-прежнему является обязательным макетом для презентации.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
То же, что и D3D12_BARRIER_LAYOUT_GENERIC_READ, за исключением оптимизаций, характерных для прямых очередей. Можно использовать только в барьерах в прямых очередях.

Кроме того, D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ включает поддержку только для чтения глубины, источника стенения и разрешения доступа к источникам в прямых очередях.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
То же, что и D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS, за исключением оптимизаций, характерных для прямых очередей. Можно использовать только в барьерах в прямых очередях.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
То же, что и D3D12_BARRIER_LAYOUT_SHADER_RESOURCE, за исключением оптимизаций, характерных для прямых очередей. Можно использовать только в барьерах в прямых очередях.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
То же, что и D3D12_BARRIER_LAYOUT_COPY_SOURCE, кроме оптимизации, конкретной для прямых очередей. Можно использовать только в барьерах в прямых очередях.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
То же, что и D3D12_BARRIER_LAYOUT_COPY_DEST, кроме оптимизации, конкретной для прямых очередей. Можно использовать только в барьерах в прямых очередях. Может предотвратить дорогостоящие и ненужные декомпрессии для некоторых переходов макета на ресурсы с последующим доступом в очереди Direct.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
Поддерживает общее (бесплатное) использование только в очередях вычислений. Может быть более оптимальным, чем более общий D3D12_BARRIER_LAYOUT_COMMON. Можно использовать только в барьерах в очередях вычислений.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
То же, что и D3D12_BARRIER_LAYOUT_GENERIC_READ, за исключением оптимизаций, характерных для очередей вычислений. Можно использовать только в барьерах в очередях вычислений.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
То же, что и D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS, за исключением оптимизаций, характерных для очередей вычислений. Можно использовать только в барьерах в очередях вычислений.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
То же, что и D3D12_BARRIER_LAYOUT_SHADER_RESOURCE, за исключением оптимизаций, характерных для очередей вычислений. Можно использовать только в барьерах в очередях вычислений.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
То же, что и D3D12_BARRIER_LAYOUT_COPY_SOURCE, за исключением оптимизаций, характерных для очередей вычислений. Можно использовать только в барьерах в очередях вычислений.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
То же, что и D3D12_BARRIER_LAYOUT_COPY_DEST, за исключением оптимизаций, характерных для очередей вычислений. Можно использовать только в барьерах в очередях вычислений.
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
Поддерживает общее использование (бесплатного барьера) только в очередях видео. Может быть более оптимальным, чем более общий D3D12_BARRIER_LAYOUT_COMMON. Можно использовать только в барьерах в очередях видео.
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE
Поддерживает состояние устаревшего ресурса с внутренним переводом. С этим значением не сопоставляют расширенные API-интерфейсы барьеров.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
Поддерживает состояние устаревшего ресурса с внутренним переводом. С этим значением не сопоставляют расширенные API-интерфейсы барьеров.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
Поддерживает состояние устаревшего ресурса с внутренним переводом. С этим значением не сопоставляют расширенные API-интерфейсы барьеров.
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
Поддерживает состояние устаревшего ресурса с внутренним переводом. С этим значением не сопоставляют расширенные API-интерфейсы барьеров.
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
Поддерживает состояние устаревшего ресурса с внутренним переводом. С этим значением не сопоставляют расширенные API-интерфейсы барьеров.

Замечания

Ресурсы буфера имеют только линейный макет независимо от типа доступа.

Макеты ресурсов должны быть совместимы с типом очереди, выполняющей переход макета.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 11 (WDDM 3.0)
заголовка d3d12umddi.h

См. также

D3D12DDI_TEXTURE_BARRIER_0088