Поделиться через


структура D3D12DDI_TEXTURE_BARRIER_0088 (d3d12umddi.h)

Структура D3D12DDI_TEXTURE_BARRIER_0088 описывает переходы доступа к текстурам.

Синтаксис

typedef struct D3D12DDI_TEXTURE_BARRIER_0088 {
  D3D12DDI_BARRIER_SYNC                   SyncBefore;
  D3D12DDI_BARRIER_SYNC                   SyncAfter;
  D3D12DDI_BARRIER_ACCESS                 AccessBefore;
  D3D12DDI_BARRIER_ACCESS                 AccessAfter;
  D3D12DDI_BARRIER_LAYOUT                 LayoutBefore;
  D3D12DDI_BARRIER_LAYOUT                 LayoutAfter;
  D3D12DDI_HRESOURCE                      hResource;
  D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 Subresources;
  D3D12DDI_TEXTURE_BARRIER_FLAGS_0088     Flags;
} D3D12DDI_TEXTURE_BARRIER_0088;

Члены

SyncBefore

Значение D3D12DDI_BARRIER_SYNC, указывающее область синхронизации всех предыдущих работ GPU, которые необходимо выполнить перед выполнением барьера.

SyncAfter

Значение D3D12DDI_BARRIER_SYNC, указывающее область синхронизации всех последующих работ GPU, которые должны ждать завершения выполнения барьера.

AccessBefore

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

AccessAfter

Значение D3D12DDI_BARRIER_ACCESS , указывающее состояние доступа текстуры после завершения выполнения барьера.

LayoutBefore

Значение D3D12DDI_BARRIER_LAYOUT , указывающее макет текстуры перед выполнением барьера.

LayoutAfter

Значение D3D12DDI_BARRIER_LAYOUT , указывающее макет текстуры после завершения выполнения барьера.

hResource

Дескриптор ресурса текстуры, использующий барьер.

Subresources

Структура D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 , задающая диапазон барьерных подресурсов текстуры.

Flags

Значение D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 , указывающее необязательные флаги.

Комментарии

Общие сведения см. в разделе Расширенные барьеры .

Синхронизация

Графические процессоры предназначены для выполнения как можно большей работы в параллельном режиме. Любая работа GPU, которая зависит от предыдущей работы GPU, должна быть синхронизирована перед доступом к зависимым данным. Значения SyncBefore и SyncAfter — это маски логических битовых полей, которые определяют любую синхронизируемую работу.

Барьер должен дождаться завершения всех предыдущих команд SyncBefore scopes перед выполнением барьера. Аналогичным образом, барьер должен блокировать все последующие области SyncAfter до тех пор, пока барьер не будет завершен.

Переходы макета

Подресурсы текстур могут использовать разные макеты для различных методов доступа. Например, текстуры часто сжимаются при использовании в качестве целевого объекта отрисовки или набора элементов глубины и часто распаковываются для команд чтения или копирования шейдера. Барьеры текстуры используют LayoutBefore и LayoutAfter для описания переходов макета.

Переходы макета необходимы только для текстур, поэтому они выражаются только в этой структуре данных.

LayoutBefore и LayoutAfter должны быть совместимы с типом очереди, выполняющей барьер. Например, очередь вычислений не может перенести подресурс в D3D12_BARRIER_LAYOUT_RENDER_TARGET или из него.

Чтобы обеспечить четко определенный порядок барьеров, макет подресурса после завершения последовательности барьеров является окончательным макетом LayoutAfter в последовательности.

Требования

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

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

D3D12DDI_BARRIER_ACCESS

D3D12DDI_BARRIER_LAYOUT

D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088

D3D12DDI_BARRIER_SYNC

D3D12DDI_TEXTURE_BARRIER_FLAGS_0088

D3D12DDIARG_BARRIER_0088

PFND3D12DDI_BARRIER_0088