Dela via


Kopiera deskriptorer

ID3D12Device::CopyDescriptors och ID3D12Device::CopyDescriptorsSimple metoder i enhetsgränssnittet använder processorn för att omedelbart kopiera beskrivningar. De kan kallas fri trådade så länge flera trådar på processorn eller GPU:n inte utför några potentiellt motstridiga skrivningar.

Kopiera deskriptorer omedelbart (CPU-tidslinje)

Antalet källbeskrivningar (som ska kopieras från), som anges som en uppsättning beskrivande intervall, måste vara lika med antalet målbeskrivningar (att kopiera till), som anges som en separat uppsättning deskriptorintervall. Käll- och målintervallen behöver annars inte överensstämma. Till exempel kan en gles mängd deskriptorer kopieras till ett sammanhängande mål, vice versa eller i någon kombination.

Flera deskriptorhögar kan ingå i kopieringsoperationen, både som källa och mål. Användningen av deskriptorhandtag som parametrar innebär att kopieringsmetoderna inte bryr sig om i vilka högar en viss deskriptor ligger – allt är bara minne.

De deskriptorheaptyper som kopieras från och till måste matcha, så metoderna tar en enda deskriptorheaptyp som indata. Drivrutinen måste känna till heap-typen för alla deskriptorer i den angivna kopieringsåtgärden, så att den vet vilken storlek på data som ingår i kopieringsåtgärden. Drivrutinen kan också behöva utföra anpassat kopieringsarbete om en viss deskriptorshögtyp motiverar det – en implementeringsdetalj. Observera att deskriptorhandtag inte i sig själva identifierar vilken typ de pekar på; därför krävs en ytterligare parameter för kopieringsoperationen.

Ett alternativt API till CopyDescriptors tillhandahålls för det enkla fallet att kopiera ett enda intervall med deskriptorer från en plats till en annan – CopyDescriptorsSimple.

För dessa enhetsbaserade (CPU-tidslinje) beskrivningskopieringsmetoder måste källbeskrivningar komma från en icke skugg-synlig deskriptorhög. Måldeskriptorerna kan finnas i valfri deskriptorhög som är CPU-synlig (shader-synlig eller inte).

Deskriptorer