Condividi tramite


Heap del descrittore non shader visibile

Alcuni heap descrittori non possono fare riferimento agli shader tramite tabelle del descrittore, ma esistono per assistere l'app nella gestione temporanea dei descrittori prima di registrare un elenco di comandi o perché non è necessario alcun heap visibile allo shader.

Visualizzazioni non visibili

Tutti gli heap del descrittore, incluso l'heap del descrittore accessibile dello shader descritto in precedenza, possono essere modificati dagli elenchi di comandi e/o CPU a seconda del pool di memoria e delle proprietà di accesso alla CPU selezionati dall'applicazione per un heap descrittore.

Per heap visibile shader heaps, il motivo ovvio per negare l'accesso dello shader a questi heap descrittore è mentre sono in fase di gestione temporanea. Questi heap vengono quindi resi visibili agli shader e accessibili tramite tabelle descrittori all'esecuzione dell'elenco di comandi. Non è tuttavia necessario eseguire lo staging degli heap visibili allo shader, ma possono essere popolati direttamente.

Gli altri descrittori vengono associati alla pipeline registrando il relativo contenuto direttamente nell'elenco di comandi. Questi descrittori servono solo per convertire i parametri di visualizzazione in fase di record dell'elenco dei comandi. Questi heap sono sempre non-shader visibili e contengono quanto segue.

  • Rendering delle visualizzazioni di destinazione (RTV)
  • Visualizzazioni stencil di profondità (DSV)

Le viste buffer di indice (IBV), le viste del buffer dei vertici (VBV) e le viste di output di flusso (SOV) vengono passate direttamente ai metodi API, non hanno tipi di heap specifici.

Dopo la registrazione nell'elenco dei comandi (con una chiamata come OMSetRenderTargets, ad esempio, la memoria usata per contenere i descrittori per questa chiamata è immediatamente disponibile per la ripetizione dell'utilizzo dopo la chiamata.

Anche le tabelle descrittori hanno opzioni in cui un'app può consentire all'implementazione di scegliere di registrare il contenuto del sommario nella registrazione dell'elenco dei comandi (anziché dereferenziare il puntatore alla tabella in fase di esecuzione).

Sommario

Shader visibile, solo scrittura CPU Non-shader visibile, lettura/scrittura CPU
CBV, SRV, UAV
SAMPLER
RTV No
DSV No

 

heap descrittore