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


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

Методы ID3D12Device::CopyDescriptors и ID3D12Device::CopyDescriptorsSimple в интерфейсе устройства используют ЦП для немедленного копирования дескрипторов. Их можно назвать свободными потоками, если несколько потоков на ЦП или GPU не выполняют потенциально конфликтующие операции записи.

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

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

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

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

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

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

Дескрипторы