Condividi tramite


Invio di lavoro in Direct3D 12

Per migliorare l'efficienza della CPU delle app Direct3D, a partire dalla versione 12, Direct3D non supporta più un contesto immediato associato a un dispositivo. Al contrario, l'applicazione registra e quindi invia elenchi di comandi, che contengono chiamate di disegno e gestione delle risorse. È possibile inviare questi elenchi di comandi da più thread a una o più code di comandi, che gestiscono l'esecuzione dei comandi. Questa modifica fondamentale aumenta l'efficienza a thread singolo consentendo all'applicazione di pre-calcolo il lavoro di rendering per un riutilizzo successivo e sfrutta i sistemi multicore distribuendo il lavoro di rendering tra più thread.

Contenuto della sezione

Argomento Descrizione
Filosofia di progettazione delle code dei comandi e degli elenchi di comandi Gli obiettivi dell'abilitazione del riutilizzo del lavoro di rendering e del ridimensionamento multithread, richiedevano modifiche fondamentali al modo in cui le app Direct3D inviano il lavoro di rendering alla GPU.
Creazione e registrazione di elenchi di comandi e bundle Questo argomento descrive la registrazione di elenchi di comandi e bundle nelle app Direct3D 12. Gli elenchi di comandi e i bundle consentono alle app di registrare chiamate di disegno o di modifica dello stato per un'esecuzione successiva nell'unità di elaborazione grafica (GPU).
Esecuzione e sincronizzazione degli elenchi di comandi In Microsoft Direct3D 12 la modalità immediata delle versioni precedenti non è più presente. Al contrario, le app creano elenchi di comandi e bundle e quindi set di record di comandi GPU. Le code dei comandi vengono usate per inviare elenchi di comandi da eseguire. Questo modello consente agli sviluppatori di avere un maggiore controllo sull'utilizzo efficiente sia della GPU che della CPU.
Gestione dello stato della pipeline grafica in Direct3D 12 Questo argomento descrive come viene impostato lo stato della pipeline grafica in Direct3D 12.
Uso delle barriere delle risorse per sincronizzare gli stati delle risorse in Direct3D 12 Per ridurre l'utilizzo complessivo della CPU e abilitare il multithreading e la pre-elaborazione dei driver, Direct3D 12 sposta la responsabilità della gestione dello stato per risorsa dal driver grafico all'applicazione.
Pipeline e shader con Direct3D 12 La pipeline programmabile Direct3D 12 aumenta significativamente le prestazioni di rendering rispetto alle interfacce di programmazione grafica di generazione precedenti.
Ombreggiatura a frequenza variabile (VRS) L'ombreggiatura a frequenza variabile, o l'ombreggiatura in pixel grossolana, è un meccanismo che consente di allocare prestazioni/potenza di rendering a velocità che variano in base all'immagine di cui è stato eseguito il rendering.
Passaggi di rendering La funzionalità di rendering passa consente al renderer di migliorare l'efficienza della GPU riducendo il traffico di memoria verso/dalla memoria fuori chip; a tale scopo, consentendo all'applicazione di identificare meglio i requisiti di ordinamento e le dipendenze dei dati per il rendering delle risorse.