Penyiapan Vulkan

Dokumen ini menjelaskan cara memulai penggunaan library grafik Vulkan dengan mendownload, mengompilasi, dan menjalankan beberapa aplikasi contoh.

Sebelum memulai, pastikan Anda telah mempersiapkan hardware dan versi platform yang tepat. Sebaiknya gunakan perangkat yang mendukung Vulkan, yang menjalankan Android API level 24 atau lebih tinggi.

Anda dapat mengonfirmasi versi Android dengan membuka menu Setelan, lalu memilih Tentang <perangkat> > Versi Android. Setelah mengonfirmasi bahwa Anda memiliki hardware dan versi platform yang tepat, Anda dapat mendownload software yang diperlukan.

Mendownload

Sebelum memulai, Anda harus mendownload sejumlah alat dan software lainnya. Perlu diperhatikan bahwa di host Windows, sebaiknya jangan gunakan hierarki jalur file yang dalam untuk alat dan kode sumber agar terhindar dari batas jalur file yang ada di beberapa versi OS Windows.

  1. Jika belum memiliki Android Studio, download di sini. File ini mencakup Android SDK terbaru.
  2. Instal NDK dari Android Studio atau download secara manual.

Mengimpor

Di bagian ini, Anda perlu mendownload repositori LunarG Vulkan©, membuat project Android Studio untuk contoh API, lalu mengimpor project ini ke IDE:

  1. Buka terminal dan download kode sumber ke direktori pengembangan Anda:

    cd dev-directory
    git clone --recursive https://github.com/LunarG/VulkanSamples.git
    
  2. Ikuti petunjuk ini (dari Building on Android) guna membuat project contoh untuk Android:

    cd VulkanSamples/API-Samples
    cmake -DANDROID=ON -DABI_NAME=abi
    cd android
    python3 compile_shaders.py
    

    ABI yang didukung mencakup:

    • armeabi-v7a
    • arm64-v8a
    • x86
    • x86_64
  3. Tetapkan variabel lingkungan untuk menentukan jalur ke Android NDK dan SDK:

    export ANDROID_SDK_ROOT=/path/to/sdk-directory
    export ANDROID_NDK_HOME=/path/to/ndk-directory
    

    Versi targetSdk untuk contoh saat ini adalah 26 sehingga Anda mungkin perlu mengupdate alat Anda dengan SDK Manager.

  4. Buka Android Studio. Pilih File > Open lalu pilih VulkanSamples/API-Samples/android/build.gradle.

Panel Project terlihat seperti jendela yang ditunjukkan dalam Gambar 1.

Panel Project setelah mengimpor contoh ke Android Studio

Gambar 1. Panel project yang menampilkan contoh setelah diimpor.

Mengompilasi

Anda dapat mengompilasi project Anda di Android Studio atau dari command line.

Android Studio

  1. Pilih File > Project Structure. Pilih SDK Location dan pastikan lokasi SDK dan NDK sudah ditetapkan.
  2. Pilih project Anda di panel Project Android Studio.
  3. Dari menu Build, pilih Buat Modul <nama-modul>; atau pilih Buat APK untuk membuat APK.
  4. Selesaikan semua masalah dependensi, lalu jalankan kompilasi. Seperti terlihat pada Gambar 2, Anda dapat memilih project tertentu untuk dikompilasi dengan memilihnya dari menu pulldown konfigurasi.
  5. Memilih project drawcube dari pulldown config

    Gambar 2. Memilih satu project untuk dikompilasi.

Command line

Gunakan perintah berikut untuk membuat project dari command line (pastikan Anda masih membuka direktori VulkanSamples/API-Samples/android):

./gradlew build

Menjalankan

Untuk menjalankan project Anda, tentukan APK yang ingin dijalankan dengan memilih Run > Run <project-name>.

Untuk men-debug APK, pilih Run > Debug <project-name>. Misalnya, untuk drawcube, jalankan 15-draw_cube.

Sebagian besar contoh memiliki fungsionalitas sederhana untuk menunjukkan cara menggunakan satu API tertentu, dan sebagian besar akan otomatis berhenti setelah berjalan. Contoh drawcube adalah salah satu contoh yang menarik secara visual. Setelah Anda menjalankannya, drawcube akan menampilkan gambar seperti pada Gambar 3

. Jika berhasil dijalankan, kubus warna-warni akan ditampilkan

Gambar 3. Program yang berhasil dikompilasi akan berjalan dan menghasilkan tampilan.

Menggunakan Loader Dinamis

Contoh menggunakan fungsi helper loader dinamis yang ditentukan dalam vulkan_wrapper.h/cpp untuk mengambil pointer Vulkan API menggunakan dlopen() dan dlsym(). Contoh tersebut tidak menautkannya secara statis dengan vulkan.so.

Penggunaan loader ini memungkinkan kode terhubung ke API level 23 dan versi platform yang lebih lama. Platform versi lama tidak menyertakan library bersama vulkan.so, tetapi dapat berjalan di perangkat yang mendukung Vulkan API.

Cuplikan berikut menunjukkan cara menggunakan loader dinamis.

#include "vulkan_wrapper.h" // Include Vulkan_wrapper and dynamically load symbols.
...
// Before any Vulkan API usage,
InitVulkan();

Referensi lainnya

  • Spesifikasi Vulkan

    Khronos Group mempertahankan spesifikasi Vulkan. Buka halaman beranda Vulkan untuk mengetahui spesifikasi, pelatihan, dan tutorial lengkapnya.

  • Shaderc

    Kode Shaderc di NDK merupakan downstream dari repositori Shaderc. Jika Anda memerlukan Shaderc terbaru, buka Compiler Shader.