Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Значение 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 |