Метод 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 |