Inizia a utilizzare Vulkan

Questo documento descrive come iniziare a utilizzare la libreria grafica Vulkan scaricando, compilando ed eseguendo l'app di esempio Khronos©.

Prerequisiti

Prima di iniziare, assicurati di avere a disposizione la versione corretta dell'hardware e della piattaforma. Devi utilizzare un dispositivo o un emulatore che supporti Vulkan, con Android 7.0 (Nougat), livello API 24 o successivo.

Puoi verificare la tua versione di Android andando al menu Impostazioni e selezionando Informazioni sul telefono > Versione di Android. Dopo aver verificato che la versione dell'hardware e della piattaforma sia configurata correttamente, puoi scaricare il software necessario.

Scarica

Prima di iniziare, devi scaricare diversi strumenti e altri software. Tieni presente che su un host Windows è consigliabile evitare una gerarchia dettagliata dei percorsi dei file per strumenti e codice sorgente. Questa operazione è necessaria per aggirare i limiti dei percorsi dei file su alcune versioni del sistema operativo Windows.

  1. Se non hai ancora Android Studio, scaricalo. È incluso l'SDK Android più recente.
  2. Installa NDK e CMake da Android Studio oppure scaricali e installali separatamente.
  3. Crea ed esegui l'esempio Hello JNI per assicurarti che Android Studio funzioni correttamente.
  4. Installa python3 e gli altri componenti elencati in build.md per la tua piattaforma host.

Importa

In questa sezione scaricherai il repository di esempio di Khronos© Vulkan©, genererai un progetto Android Gradle, quindi lo aprirai con l'IDE di Android Studio.

  1. Imposta le seguenti variabili di ambiente:
    export ANDROID_HOME=/path/to/sdk-directory
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
    
  2. Aggiungi CMake al $PATH, utilizzato per generare script di build Android:
    export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
    
  3. Apri un terminale e scarica il codice sorgente nella directory di sviluppo:
    cd dev-directory
    git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
    
  4. Segui queste istruzioni (in Build.md) per generare il progetto Android di esempio:
    cd Vulkan-Samples
    ./scripts/generate.py android
    
  5. Apri Android Studio. Scegli File > Apri e seleziona Vulkan-Samples/build/android_gradle/build.gradle. Dopo il caricamento del progetto in Android Studio, dovresti visualizzare qualcosa di simile a quanto segue:
    Importazione del progetto di esempio in Studio in corso.

    Figura 1. Il progetto di esempio all'interno di Android Studio.

Compila

Tutti gli esempi in questo repository sono organizzati in un unico progetto Android. Per compilare il progetto, esegui una delle seguenti operazioni:

  • Per compilare soltanto le sorgenti, utilizza il menu Crea > Crea progetto oppure digita la scorciatoia da tastiera Ctrl-F9.
  • Per generare l'APK di esempio, seleziona il menu Build > Build Bundle/APK(s) > Build APK.

Dovresti vedere il messaggio relativo alla build riuscita nella finestra Build di Android Studio. Se vengono visualizzati errori, correggili e compila di nuovo.

Compilazione del progetto di esempio con Studio.

Figura 2. Una build di esempio di successo.

Esegui

Prima di eseguire il progetto di esempio, assicurati che Android Studio riconosca il dispositivo Vulkan o l'emulatore Android connesso. Il risultato dovrebbe essere simile a questo:

Connessione del dispositivo di test a Studio in corso...

Figura 3. Collega il dispositivo di test ad Android Studio.

Per eseguire il progetto:

  1. Utilizza il menu Esegui > Esegui vulkan_sample oppure fai clic sul pulsante Esegui nella barra degli strumenti e attendi che l'anteprima venga installata e avviata sul dispositivo connesso.
  2. Sul dispositivo Android connesso, autorizza le richieste di accesso necessarie.
    • attivare l'opzione Consenti l'accesso per gestire tutti i file, quindi tocca la freccia Pulsante Indietro per tornare alla schermata iniziale principale di esempio.
    • consenti l'accesso al disco:
      consentendo l'accesso al disco.

      Figura 4. Abilita l'accesso al disco.

  3. Dovresti visualizzare una schermata del menu principale di esempio, simile alla seguente:
    menu principale di esempio.

    Figura 5. Menu principale di esempio.

  4. Scorri l'elenco di esempio e selezionane alcuni da eseguire. Se non hai mai utilizzato lo sviluppo di Vulkan, puoi iniziare con degli esempi di "API". Ad esempio, se tocchi "Ciao triangolo" dovresti visualizzare un triangolo simile al seguente:
    Triangolo

    Figura 6. Esempio di Hello Triange.

Il tuo sistema di sviluppo è ora configurato per eseguire esempi sul tuo dispositivo di test.

Vulkan Samples è sviluppato per diversi sistemi operativi, inclusi quelli per computer e dispositivi mobili. Alcuni esempi in Prestazioni, Estensioni e Strumenti potrebbero essere instabili e avere un arresto anomalo sul dispositivo. Ciò potrebbe essere dovuto a vari motivi, ad esempio:

  • Le funzionalità specifiche di Vulkan non sono state progettate per Android.
  • La tua versione del sistema operativo Android non è supportata.
  • La capacità di GPU della tua piattaforma hardware.

Esplorare

La sezione Java dell'esempio Vulkan deriva dalla classe NativeActivity. Passa i tipici eventi del ciclo di vita dell'applicazione, come la creazione, l'avvio, l'arresto e l'eliminazione delle app nel codice C/C++. Nella sezione C/C++ dell'esempio, è presente un framework di esempio che implementa la funzionalità di cambio di esempio secondario in tempo di esecuzione. A livello molto generale, gli eventi e i messaggi di sistema Android passano attraverso il seguente percorso per raggiungere il codice Vulkan dell'app di esempio:

  • Sezione Java NativeSampleActivity
  • NativeSampleActivity sezione C/C++
  • Codice android_native_glue
  • android_main
  • Framework di esempio
  • Codice di esempio secondario di un singolo utente

android_main è il bridge tra NativeSampleActivity e il codice dell'app, che può essere il punto di partenza per seguire il codice di esempio. Se vuoi concentrarti solo sulle origini specifiche di Vulkan, puoi esplorare il codice in Vulkan_Samples\samples, che contiene quanto segue:

  • Gli esempi di categoria "api".
  • Gli esempi di categoria "rendimento".
  • Gli esempi di categorie "estensioni".
  • Gli esempi di "strumenti".

I Vulkan_Samples\shaders sono il punto di riferimento per tutti gli utenti di colore.

Puoi iniziare a sfogliare gli esempi di categoria "API" per acquisire familiarità con l'utilizzo di base di Vulkan e il framework di esempio. A questo punto, puoi passare agli esempi di categoria "Rendimento" ed "Estensioni". Per il codice mesh, puoi utilizzare la vista Progetto in Android Studio.

Shader triangolari.

Figura 7. Esplora lo showr con Studio.

Risorse aggiuntive

L'API Vulkan ha diverse versioni, quindi sta maturando. Il comitato standard di Vulkan e la community Vulkan hanno creato un ricco set di materiali Vulkan che dimostra l'utilizzo e le best practice dell'API. Il seguente elenco contiene alcune risorse per lo sviluppo di applicazioni Vulkan:

  • Specifiche di Vulkan. Il gruppo Khronos mantiene la specifica Vulkan. Visita la home page di Vulkan per consultare le specifiche complete, i corsi di formazione, le guide e i tutorial.

  • Livelli di convalida. I livelli di convalida sono essenziali per lo sviluppo di applicazioni. Per ulteriori dettagli, consulta la documentazione sui livelli di convalida Vulkan su Android.

  • Shaderc. Il codice Shaderc nell'NDK è il downstream del repository Shaderc. Per la documentazione sull'utilizzo e le istruzioni per ottenere la versione più recente, consulta i compilatori Shader.