Strumenti e funzionalità avanzate

Debugger

Debug con il livello di convalida

Vulkan è progettato per offrire prestazioni elevate e un overhead del conducente ridotto. A questo scopo, per impostazione predefinita include solo un numero molto limitato di funzionalità di controllo degli errori e di debug. Se commetti un errore, spesso il driver si arresta in modo anomalo invece di restituire un codice di errore o, peggio ancora, sembrerà funzionare sulla scheda grafica, ma non su altre.

Per consentire controlli approfonditi durante lo sviluppo, Vulkan fornisce livelli di convalida, ovvero porzioni di codice che possono essere inserite tra l'API e il driver di grafica per, ad esempio, eseguire controlli aggiuntivi sui parametri delle funzioni e monitorare i problemi di gestione della memoria. Puoi abilitare i livelli di convalida durante lo sviluppo e disabilitarli completamente quando rilasci l'applicazione senza overhead.

I livelli di convalida possono essere scritti da chiunque, ma Khronos fornisce un unico set di standard chiamato VK_LAYER_KHRONOS_validation. Scopri i livelli di convalida Vulkan su Android dalla pagina NDK di Android per abilitare il livello di convalida nella tua applicazione.

RenderDoc

RenderDoc è un altro potente strumento open source che consente di acquisire un frame a scopo di ispezione e analisi. È uno strumento molto potente che è stato usato dai programmatori di grafica per eseguire il debug delle scene visualizzate. Supporta bene Vulkan su Android, anche se l'applicazione deve essere impostata come debug affinché funzioni.

Per informazioni su come configurarlo e utilizzarlo nella tua applicazione Android, consulta l'articolo Come faccio a usare RenderDoc su Android.

Acquisisci / riproduci librerie

Ricostruisci GFX

GFXReconstruct è un progetto open source che fornisce strumenti per acquisire e riprodurre le chiamate API grafiche eseguite da un'applicazione. La traccia registrata può essere riprodotta in un secondo momento per ricostruire il comportamento specifico della grafica dell'applicazione acquisita. Uno dei vantaggi principali di GFXReconstruct è che consente di utilizzarlo nell'applicazione rilasciata (dopo aver disattivato android:debuggable).

Per ulteriori informazioni, visita il repository del progetto. Le informazioni sulla configurazione e sull'utilizzo di Vulkan su Android sono disponibili in GFXReconstruct API Capture and Replay per Android.

Tieni presente che i file di traccia non sono portabili, ovvero non puoi acquisirli su un dispositivo e riprodurli su un altro dispositivo (con versione del sistema operativo, chipset o persino versione del driver diverse).

Profiler

Android GPU Inspector (AGI)

Android GPU Inspector (AGI) è un profiler grafico creato per Android che include un profilo di sistema e un frame Profiler. Fornisce informazioni di profilazione di alto livello che ti consentono di comprendere il profilo di rendimento del tuo gioco e identificare i colli di bottiglia.

Per scaricare AGI e scoprire come utilizzarlo, visita il sito web Android GPU Inspector.

Profiler di Android Studio

Android Studio Profiler è uno strumento utile per la profilazione delle prestazioni dell'app. Tuttavia, non è specificamente orientata alla profilazione dei grafici. È composto da CPU Profiler, Memory Profiler, Network Profiler, Energy Profiler, Power Profiler e da Event Monitor.

Per ulteriori informazioni su come configurare e utilizzare Android Studio Profiler, consulta la sezione Profilo delle prestazioni dell'app.

Profiler OEM

Gli strumenti in questa sezione sono specifici per l'OEM e potrebbero non funzionare su dispositivi in esecuzione su altri chip.

ARM Performance Studio per dispositivi mobili

Arm Performance Studio per dispositivi mobili è il nuovo nome di Arm Mobile Studio. Si tratta di una suite di strumenti che include Graphics Analyzer e Frame Advisor per aiutarti a identificare e risolvere i problemi di prestazioni delle GPU ARM.

Per ulteriori informazioni, visita il sito web Arm Performance Studio per dispositivi mobili.

ARM PerfDoc per GPU del Mali

PerfDoc è un livello Vulkan sviluppato per convalidare le applicazioni in base alle best practice per le GPU del Mali di ARM. Da allora è stata unita in VK_LAYER_KHRONOS_validation ed è essenzialmente parte dei livelli di convalida standard Vulkan.

Per informazioni su come utilizzarlo, consulta la sezione Debug con livello di convalida.

Profiler Snapdragon di Qualcomm

Qualcomm Snapdragon Profiler è un software di profilazione sviluppato da Qualcomm che consente agli sviluppatori di applicazioni di analizzare le prestazioni di CPU, GPU, DSP, memoria, potenza, termiche e di rete al fine di identificare colli di bottiglia nei chipset.

Per maggiori informazioni, visita la pagina relativa a Snapdragon Profiler sulla rete di sviluppatori Qualcomm.

GPUWatch Samsung

GPUWatch di Samsung è uno strumento per osservare l'attività della GPU sui dispositivi Samsung. A differenza degli altri strumenti, puoi utilizzare questo strumento direttamente dal tuo dispositivo mobile, pertanto è molto utile verificare immediatamente le prestazioni dell'applicazione anche quando non hai accesso a un altro computer host.

Per ulteriori informazioni su come attivarlo, consulta la Guida dell'utente.

PVRTune

PVRTune di Imagination Technologies consente agli sviluppatori di profilare le applicazioni sull'hardware PowerVR in tempo reale con un'ampia gamma di contatori e metriche. Consente inoltre di salvare la sessione per ulteriori analisi di basso livello e rilevare i colli di bottiglia delle prestazioni.

Per ulteriori informazioni su come utilizzare PVRTune, consulta il Manuale.

Strumenti di migrazione

Conversione degli Shader da GLSL a SPIR-V

L'API Vulkan prevede che i programmi Shadr siano forniti nel formato binario intermedio SPIR-V. Questa convenzione è diversa da OpenGL ES, in cui puoi inviare il codice sorgente scritto in GLSL (OpenGL Shading Language) come stringhe di testo.

NDK r12 e versioni successive includono una libreria di runtime per la compilazione degli smoother GLSL in SPIR-V, che può essere utilizzata da Vulkan. Il compilatore shaderc può essere utilizzato per compilare i programmi Shaderc scritti in GLSL in SPIR-V. Se il gioco utilizza HLSL, DirectXShaderCompiler supporta l'output SPIR-V.

In genere, devi compilare i programmi Shader offline nell'ambito del processo di creazione degli asset per il tuo gioco e includere i moduli SPIR-V come parte degli asset di runtime.

Per ulteriori informazioni sulla procedura di compilazione dello strumento Vulkan, consulta l'articolo sui compilatori di Shaderr Vulkan su Android nella sezione NDK per Android.

Funzionalità avanzate

Integra il pacing dei frame Android nel renderer Vulkan

La libreria di pacing dei frame Android (nota anche come Stackpy) consente ai giochi Vulkan di ottenere un rendering uniforme e un pacing corretto per mantenere il loop di rendering del gioco sincronizzato con il sottosistema di visualizzazione del sistema operativo e l'hardware di visualizzazione sottostante.

Il pacing corretto elimina gli artefatti visivi noti come tearing, ottimizza il consumo di energia tramite la sincronizzazione tra gli aggiornamenti del display e la presentazione dei fotogrammi ed elimina i jank stabilizzando la frequenza dei fotogrammi. Per scoprire di più sull'importanza del pacing frame, consulta la sezione Libreria del pacing di frame di AGDK.

Per ulteriori informazioni su come integrare il pacing frame nel tuo gioco, consulta Integrare il pacing frame Android nel renderer Vulkan.

Gestisci l'orientamento del dispositivo con la pre-rotazione Vulkan

La gestione della rotazione della superficie al di fuori dell'applicazione potrebbe non essere senza costi. Anche su alcuni dispositivi di fascia alta con una Display Processing Unit (DPU) dedicata è comunque probabile che il pagamento sia misurabile in termini di prestazioni e l'impatto dipenderà dal fatto che l'applicazione sia vincolata alla CPU o alla GPU.

Vulkan consente agli sviluppatori di specificare ai dispositivi molte più informazioni sullo stato di rendering rispetto a OpenGL. Una di queste informazioni è l'orientamento del dispositivo e la sua relazione con l'orientamento della superficie di visualizzazione. Questa funzionalità consente di implementare la pre-rotazione per ottenere il massimo da Vulkan su Android.

Per maggiori informazioni su come gestire in modo efficiente la rotazione dei dispositivi nella tua applicazione Vulkan, consulta gli articoli sull'articolo Gestire l'orientamento del dispositivo con la pre-rotazione Vulkan e l'applicazione demo associata.

Ottimizza con precisione ridotta

Il formato numerico dei dati grafici e dei calcoli dello shabby può avere un impatto significativo sulle prestazioni del tuo gioco. La maggior parte dei calcoli e dei dati nei moderni grafici 3D utilizzano numeri in virgola mobile. Vulkan su Android utilizza numeri in virgola mobile di 32 o 16 bit. Un numero in virgola mobile a 32 bit viene comunemente chiamato precisione singola o precisione completa. Sebbene in Vulkan sia definito il tipo in virgola mobile a 64 bit, non è comunemente supportato e il suo utilizzo non è consigliato.

Consulta Ottimizza con precisione ridotta per informazioni su come ottimizzare la tua applicazione Vulkan per ottenere il massimo rendimento in termini di aritmetica.