перечисление 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 |