перечисление 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_COMMOND3D12DDI_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. Если SyncAfterD3D12DDI_BARRIER_SYNC_NONE, AccessAfter должен быть D3D12DDI_BARRIER_ACCESS_NO_ACCESS. |
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 11 (WDDM 3.0) |
заголовка | d3d12umddi.h |