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

Важно!

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

Значение D3D12DDI_BARRIER_ACCESS — это битовое значение ИЛИ из следующих полей, определяющих доступ к ресурсам относительно барьера.

Синтаксис

typedef enum D3D12DDI_BARRIER_ACCESS {
  D3D12DDI_BARRIER_ACCESS_COMMON = 0x0,
  D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  D3D12DDI_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  D3D12DDI_BARRIER_ACCESS_PREDICATION = 0x200,
  D3D12DDI_BARRIER_ACCESS_COPY_DEST = 0x400,
  D3D12DDI_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  D3D12DDI_BARRIER_ACCESS_NO_ACCESS = 0x80000000
} ;

Константы

 
D3D12DDI_BARRIER_ACCESS_COMMON
Значение: 0x0
Начальный доступ по умолчанию для всех ресурсов в заданном область ExecuteCommandLists. Поддерживает любой тип доступа, совместимый с текущим макетом и свойствами ресурсов, включая не более одного доступа на запись. Для буферов и текстур, использующих D3D12DDI_BARRIER_LAYOUT_COMMON, D3D12DDI_BARRIER_ACCESS_COMMON поддерживает одновременный доступ на чтение и запись.

При использовании в качестве AccessAfterD3D12DDI_BARRIER_ACCESS_COMMON можно использовать для возврата ресурса к общей доступности. Обратите внимание, что при неправильном использовании это может привести к ненужным сбросам кэша. По возможности AccessAfter должен быть ограничен явными битами доступа.

Не используйте D3D12DDI_BARRIER_ACCESS_COMMON в качестве барьерного значения AccessBefore . Любые угрозы чтения после записи или записи после записи лучше всего обрабатывать с помощью явных битов AccessBefore .
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Значение: 0x1
Ресурс буфера доступен в виде буфера вершин в текущей очереди выполнения.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Значение: 0x2
Ресурс буфера доступен в виде буфера констант в текущей очереди выполнения.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Значение: 0x4
Ресурс буфера доступен в виде буфера индекса в текущей очереди выполнения.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
Значение: 0x8
Ресурс доступен в качестве целевого объекта отрисовки.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
Значение: 0x10
Ресурс доступен как ресурс неупорядоченного доступа.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
Значение: 0x20
Ресурс доступен как ресурс глубины или набора элементов, доступный для записи.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
Значение: 0x40
Ресурс доступен как ресурс глубины или набора элементов только для чтения.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
Значение: 0x80
Ресурс доступен как ресурс шейдера.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
Значение: 0x100
Буфер доступен в качестве целевого объекта вывода потока.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
Значение: 0x200
Буфер доступен как буфер косвенных аргументов.
D3D12DDI_BARRIER_ACCESS_PREDICATION
Значение: 0x200
Буфер доступен как буфер предикаций. Псевдоним с D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
Значение: 0x400
Ресурс доступен в качестве места назначения копирования.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
Значение: 0x800
Ресурс доступен как источник копирования.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
Значение: 0x1000
Ресурс доступен в качестве назначения разрешения.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Значение: 0x2000
Ресурс доступен в качестве источника разрешения.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Значение: 0x4000
Ресурс доступен для чтения в виде структуры ускорения трассировки лучей. Ресурс должен быть создан с использованием начального состояния D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Значение: 0x8000
Ресурс доступен для записи в виде структуры ускорения трассировки лучей. Ресурс должен быть создан с использованием начального состояния D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
Значение: 0x10000
Ресурс доступен как источник скорости заливки.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
Значение: 0x20000
Ресурс доступен для доступа только для чтения в очереди декодирования видео.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Значение: 0x40000
Ресурс доступен для записи в очереди декодирования видео.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Значение: 0x80000
Ресурс доступен для доступа только для чтения в очереди видеопроцессов.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Значение: 0x100000
Ресурс доступен для записи в очереди видеопроцесса.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Значение: 0x200000
Ресурс доступен для доступа только для чтения в очереди кодирования видео.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Значение: 0x400000
Ресурс доступен для доступа на запись в очереди кодирования видео.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Значение: 0x80000000
Ресурс недоступен для чтения или записи. После перехода доступа к подресурсу в D3D12DDI_BARRIER_ACCESS_NO_ACCESS его необходимо повторно активировать с помощью барьера, для которого AccessBefore задано значение D3D12DDI_BARRIER_ACCESS_NO_ACCESS, прежде чем использовать его в том же область ExecuteCommandLists.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS можно использовать только в сочетании с D3D12DDI_BARRIER_SYNC_NONE или D3D12DDI_BARRIER_SYNC_SPLIT.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS нельзя задать с другими битами доступа. D3D12DDI_BARRIER_ACCESS_NO_ACCESS указывает, что доступ к ресурсу ожидается только после последующего барьера или следующего область ECL.

Это значение полезно для барьеров псевдонимов, когда подресурс не требуется в течение достаточно длительного времени, что имеет смысл очистить подресурс из любого кэша чтения.

Это также полезно для инициации перехода макета в качестве окончательного действия для ресурса до окончания область ExecuteCommandLists. Если параметр SyncAfter имеет D3D12DDI_BARRIER_SYNC_NONE, accessAfter ДОЛЖЕН быть D3D12DDI_BARRIER_ACCESS_NO_ACCESS.

Требования

Требование Значение
Минимальная версия клиента Windows 11 (WDDM 3.0)
Верхняя часть d3d12umddi.h

См. также раздел

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088