Condividi tramite


Sottorilevazione all'interno di buffer

I buffer hanno tutte le funzionalità necessarie in D3D12 per consentire alle applicazioni di trasferire una vasta gamma di dati temporanei dalla CPU alla GPU. Questa sezione illustra quattro scenari comuni per l'uso e la gestione di risorse e buffer.

Analogamente a D3D11, le applicazioni in D3D12 devono comunque dichiarare l'utilizzo della memoria durante l'allocazione dei buffer in D3D12 rispetto alle risorse dinamiche/di staging in D3D11, ma in D3D12 gli sviluppatori hanno maggiore flessibilità e maggiore controllo sull'utilizzo della memoria. I buffer, attraverso la sottorilevazione, hanno tutte le funzionalità necessarie per la gestione della memoria di basso livello.

In questa sezione

Argomento Descrizione
caricamento di diversi tipi di risorse
Illustra come usare un buffer per caricare i dati del buffer costante e i dati del buffer dei vertici nella GPU e come allocare e posizionare correttamente i dati all'interno dei buffer. L'uso di un singolo buffer aumenta la flessibilità di utilizzo della memoria e offre alle applicazioni un controllo più rigoroso dell'utilizzo della memoria. Mostra anche le differenze tra i modelli D3D11 e D3D12 per il caricamento di diversi tipi di risorse.
caricamento dei dati delle trame tramite buffer
Il caricamento di dati di trama 2D o 3D è simile al caricamento di dati 1D, ad eccezione del fatto che le applicazioni devono prestare maggiore attenzione all'allineamento dei dati correlato all'inclinazione delle righe. I buffer possono essere usati in modo ortogonale e simultaneo da più parti della pipeline grafica e sono molto flessibili.
Leggere i dati tramite un buffer
La lettura dei dati dalla GPU, ad esempio l'acquisizione di uno screenshot, comporta l'uso dell'heap di readback.
Fence-Based gestione risorse
Illustra come gestire l'intervallo di vita dei dati delle risorse monitorando lo stato della GPU tramite recinzioni. La memoria può essere riutilizzata in modo efficace con recinti che gestiscono attentamente la disponibilità di spazio libero in memoria, ad esempio in un'implementazione del buffer circolare per un heap di caricamento.

gestione della memoria