перечисление 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 Обеспечивает поддержку изменений макета подресурсов, если предыдущий макет не имеет значения или не определен. Как правило, это используется для полного подресурса или полноресурсных команд Очистки, Отмены и Копирования. Переход макета с параметром 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 за исключением оптимизаций, характерных для прямых очередей. Может использоваться только в барьерах в прямых очередях. Может предотвратить дорогостоящую и ненужную распаковку при некоторых переходах макета в ресурсах со следующим доступом в прямой очереди. |
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 |