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 fitur 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.
  3. Buat Shaderc dengan membuka <ndk-root>/sources/third_party/shaderc/, lalu jalankan perintah berikut:
  4. Di Mac atau Linux:

        ../../../ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk \
          APP_STL:=c++_static APP_ABI=all NDK_TOOLCHAIN_VERSION:=clang libshaderc_combined \
          -j16
        

    Di Windows:

        ..\..\..\ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk ^
         APP_ABI=all APP_PLATFORM=android-24 APP_STL=c++_static ^
         -j8 clean libshaderc_combined
        

    Buka Compiler Shader untuk membaca dokumentasi Shaderc lainnya.

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_ROOT=/path/to/ndk-directory
        

    Versi targetSdk untuk contoh saat ini adalah 26 sehingga Anda mungkin perlu mengupdate alat 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 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, 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 sampel 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

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

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

Cuplikan berikut ini 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. Kunjungi 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.