перечисление 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по