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


Копирование дескрипторов

Методы ID3D12Device::CopyDescriptors и ID3D12Device::CopyDescriptorsSimple на интерфейсе устройства используют ЦП для немедленного копирования дескрипторов. Они могут считаться независимыми потоками, если несколько потоков на ЦПУ или ГПУ не выполняют потенциально конфликтующие операции записи.

Копирование дескрипторов немедленно (временная шкала ЦП)

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

Несколько куч дескрипторов могут быть вовлечены в операцию копирования как источника, так и приёмника. Использование указателей дескрипторов в качестве параметров означает, что методы копирования не заботятся о том, в каких кучах находится любой из данных дескрипторов — они все просто рассматриваются как память.

Типы кучи дескрипторов, из которых копируют и в которые копируют, должны совпадать, поэтому методы принимают один тип кучи дескрипторов в качестве входных данных. Драйвер должен знать тип кучи всех дескрипторов в данной операции копирования, поэтому он знает, какой размер данных участвует в операции копирования. Драйверу может потребоваться выполнение индивидуальной копировальной работы, если это требуется заданным типом кучи дескриптора — деталь реализации. Обратите внимание, что дескрипторы сами по себе не определяют тип, на который они указывают; поэтому для операции копирования требуется дополнительный параметр.

Альтернативный API для предоставляется для простого случая копирования одного диапазона дескрипторов из одного места в другое — CopyDescriptorsSimple.

Для этих устройствозависимых методов копирования дескрипторов (временная шкала центрального процессора) исходные дескрипторы должны поступать из невидимой для шейдера кучи дескрипторов. Дескрипторы назначения могут находиться в любой куче дескрипторов, видимой ЦП (видимой шейдеру или нет).

дескрипторов