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


Метод ID3D11DeviceContext2::TiledResourceBarrier (d3d11_2.h)

Задает ограничение порядка доступа к данным между несколькими мозаичными ресурсами. Дополнительные сведения об этом ограничении см. в разделе Примечания.

Синтаксис

void TiledResourceBarrier(
  [in, optional] ID3D11DeviceChild *pTiledResourceOrViewAccessBeforeBarrier,
  [in, optional] ID3D11DeviceChild *pTiledResourceOrViewAccessAfterBarrier
);

Параметры

[in, optional] pTiledResourceOrViewAccessBeforeBarrier

Тип: ID3D11DeviceChild*

Указатель на ID3D11Resource или ID3D11View для ресурса, созданного с флагом D3D11_RESOURCE_MISC_TILED . Операции доступа к этому объекту должны быть завершены до операций доступа к объекту, который указывает pTiledResourceOrViewAccessAfterBarrier .

[in, optional] pTiledResourceOrViewAccessAfterBarrier

Тип: ID3D11DeviceChild*

Указатель на ID3D11Resource или ID3D11View для ресурса, созданного с флагом D3D11_RESOURCE_MISC_TILED . Операции доступа к этому объекту должны начинаться после операций доступа к объекту, который указывает pTiledResourceOrViewAccessBeforeBarrier .

Возвращаемое значение

None

Remarks

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

Например, приложение может отрисовывать некоторые плитки в пуле плиток с одним ресурсом с плитками, но затем считывать данные из тех же плиток с помощью другого ресурса с плитками. Эти операции с плитками отличаются от использования одного ресурса, а затем просто переключаются с записи с помощью ID3D11RenderTargetView на чтение с помощью ID3D11ShaderResourceView. Среда выполнения уже отслеживает и обрабатывает эти операции ресурсов с помощью ID3D11RenderTargetView и ID3D11ShaderResourceView.

Когда приложение переходит от доступа (чтения или записи) к определенному расположению в пуле плиток с одним ресурсом на доступ к той же памяти (чтение или запись) через другой ресурс с плитками (с сопоставлениями с той же памятью), приложение должно вызывать TiledResourceBarrier после первого использования ресурса и перед вторым. Параметрами являются pTiledResourceOrViewAccessBeforeBarrier для доступа до барьера (через отрисовку, копирование) и pTiledResourceOrViewAccessAfterBarrier для доступа после барьера с использованием той же памяти пула плиток. Если ресурсы идентичны, приложению не нужно вызывать TiledResourceBarrier , так как этот тип опасности уже отслеживается и обрабатывается.

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

Любой из параметров (до или после барьера) может иметь значение NULL. Значение NULL перед барьером означает, что все доступы к плиткам ресурсов должны быть завершены до того, как ресурс, указанный после барьера, может ссылаться на графический процессор (GPU). Значение NULL после барьера означает, что все плитки ресурсов, к которым осуществляется доступ после барьера, могут выполняться gpu только после доступа к ресурсам с плитками до завершения барьера. Оба значения NULL означают, что все предыдущие доступы к ресурсам с плитками будут завершены до того, как можно будет продолжить любой последующий доступ к ресурсам с плитками.

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

Дополнительные сведения о ресурсах с плитками см. в разделе Плитки ресурсов.

Требования

   
Минимальная версия клиента Windows 8.1 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d3d11_2.h
Библиотека D3D11.lib

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

ID3D11DeviceContext2