Debugger
Proses debug dengan lapisan validasi
Vulkan dirancang untuk berperforma tinggi dan overhead driver yang rendah. Untuk mencapainya, API ini hanya menyertakan kemampuan pemeriksaan error dan proses debug yang sangat terbatas secara default. Jika Anda melakukan sesuatu yang salah, driver sering kali akan error, bukan menampilkan kode error. Atau, lebih buruk lagi, driver akan tampak berfungsi pada kartu grafis Anda, tetapi mengalami kegagalan sama sekali.
Untuk mengaktifkan pemeriksaan ekstensif selama pengembangan, Vulkan menyediakan lapisan validasi, yang merupakan bagian kode yang dapat disisipkan di antara API dan driver grafis untuk melakukan hal-hal seperti menjalankan pemeriksaan tambahan pada parameter fungsi dan melacak masalah pengelolaan memori. Anda dapat mengaktifkan lapisan validasi selama pengembangan dan menonaktifkannya sepenuhnya saat merilis aplikasi dengan overhead nol.
Lapisan validasi dapat ditulis oleh siapa saja, tetapi Khronos menyediakan satu
kumpulan standar yang disebut VK_LAYER_KHRONOS_validation
. Lihat
Lapisan validasi Vulkan di Android
dari halaman Android NDK untuk mengaktifkan lapisan validasi di aplikasi Anda.
Dokumen Render
RenderDoc adalah alat open source canggih lainnya yang memungkinkan Anda merekam frame untuk pemeriksaan dan analisis. Ini adalah alat sangat canggih yang telah digunakan oleh programmer grafis untuk men-debug scene yang dirender. Vulkan mendukung Vulkan di Android dengan baik meskipun aplikasi Anda harus ditetapkan sebagai dapat di-debug agar dapat berfungsi.
Untuk informasi tentang cara menyiapkan dan menggunakannya di aplikasi Android, lihat Cara menggunakan RenderDoc di Android.
Ambil / Replay Library
GFXRekonstruksi
GFXRekonstruksi adalah project open source yang menyediakan alat untuk merekam dan memutar ulang panggilan API grafis yang dijalankan oleh aplikasi. Rekaman aktivitas yang direkam nantinya dapat diputar ulang untuk merekonstruksi perilaku khusus grafis dari aplikasi yang diambil. Salah satu keuntungan utama GFXReMembuat adalah memungkinkan Anda menggunakannya pada aplikasi yang dirilis (saat Anda menonaktifkan android:debuggable).
Untuk mengetahui informasi selengkapnya, buka repositori project. Informasi penyiapan dan penggunaan untuk Vulkan di Android tersedia di GFXRe building API dan Replay untuk Android.
Perlu diperhatikan bahwa file rekaman aktivitas tidak portabel, artinya Anda tidak dapat mengambil file di satu perangkat dan memutarnya ulang di perangkat lain (dengan versi OS, chipset, atau bahkan versi driver yang berbeda).
Profiler
Android GPU Inspector (AGI)
Android GPU Inspector (AGI) adalah profiler grafis yang dibuat untuk Android yang menyertakan System Profile dan Frame Profiler. Fitur ini menyediakan informasi pembuatan profil tingkat tinggi yang memungkinkan Anda memahami profil performa game dan mengidentifikasi bottleneck.
Untuk mendownload AGI dan mempelajari cara menggunakannya, lihat situs Android GPU Inspector.
Profiler Android Studio
Profiler Android Studio adalah alat yang berguna untuk membuat profil performa aplikasi. Namun, panduan ini tidak secara khusus dirancang untuk pembuatan profil grafis. Paket ini terdiri dari CPU Profiler, Memory Profiler, Network Profiler, Energy Profiler, Power Profiler, dan Event Monitor.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan dan menggunakan Profiler Android Studio, lihat bagian Membuat profil performa aplikasi.
Profiler OEM
Alat di bagian ini khusus OEM dan mungkin tidak berfungsi di perangkat yang berjalan di chip lain.
ARM Performance Studio untuk Seluler
Arm Performance Studio for Mobile adalah nama baru untuk Arm Mobile Studio. Ini adalah serangkaian alat yang menyertakan Graphics Analyzer dan Frame Advisor untuk membantu Anda mengidentifikasi dan memperbaiki masalah performa pada GPU ARM.
Untuk mengetahui informasi selengkapnya, lihat situs Arm Performance Studio untuk Seluler.
ARM PerfDoc untuk GPU Mali
PerfDoc adalah lapisan Vulkan yang dikembangkan untuk memvalidasi aplikasi berdasarkan praktik terbaik GPU Mali ARM. Sejak itu, proses ini digabungkan ke dalam VK_LAYER_KHRONOS_validation dan pada dasarnya merupakan bagian dari lapisan validasi Vulkan standar.
Untuk mengetahui informasi tentang cara menggunakannya, lihat bagian Proses debug dengan lapisan validasi.
Profiler Qualcomm Snapdragon
Qualcomm Snapdragon Profiler adalah software pembuatan profil yang dikembangkan oleh Qualcomm untuk developer aplikasi guna menganalisis performa CPU, GPU, DSP, memori, daya, termal, dan jaringan guna mengidentifikasi bottleneck pada chipset.
Untuk mengetahui informasi selengkapnya, lihat Snapdragon Profiler di Qualcomm Developer Network.
GPUWatch Samsung
GPUWatch dari Samsung adalah alat untuk mengamati aktivitas GPU pada perangkat Samsung. Tidak seperti alat lainnya, Anda dapat menggunakan alat ini langsung dari perangkat seluler sehingga sangat praktis untuk memeriksa performa aplikasi dengan segera bahkan saat Anda tidak memiliki akses ke komputer host lain.
Untuk informasi selengkapnya tentang cara mengaktifkannya, lihat Panduan Pengguna.
PVRTune
PVRTune di Creation Technologies memungkinkan developer untuk membuat profil aplikasi di hardware PowerVR secara real-time dengan beragam penghitung dan metrik. Hal ini juga memungkinkan sesi disimpan untuk analisis tingkat rendah lebih lanjut dan untuk mendeteksi bottleneck performa.
Untuk informasi selengkapnya tentang cara menggunakan PVRTune, lihat Manual.
Alat Migrasi
Mengonversi shader dari GLSL ke SPIR-V
Vulkan API mengharapkan program shader disediakan dalam format menengah biner SPIR-V. Konvensi ini berbeda dengan OpenGL ES, yang memungkinkan Anda mengirimkan kode sumber yang ditulis dalam OpenGL Shading Language (GLSL) sebagai string teks.
NDK r12 dan yang lebih baru menyertakan library runtime untuk mengompilasi shader GLSL ke SPIR-V yang dapat digunakan oleh Vulkan. Compiler shaderc dapat digunakan untuk mengompilasi program shader yang ditulis dalam GLSL menjadi SPIR-V. Jika game Anda menggunakan HLSL, DirectXShaderCompiler mendukung output SPIR-V.
Biasanya, Anda harus mengompilasi program shader secara offline sebagai bagian dari proses build aset untuk game dan menyertakan modul SPIR-V sebagai bagian dari aset runtime.
Untuk mengetahui informasi selengkapnya tentang proses kompilasi shader untuk aplikasi Vulkan, lihat compiler shader Vulkan di Android di bagian Android NDK.
Fitur Lanjutan
Mengintegrasikan Android Frame Pacing ke dalam perender Vulkan
Library Android Frame Pacing (juga dikenal sebagai Swappy) membantu game Vulkan mencapai rendering yang lancar dan kecepatan yang benar agar loop rendering game tetap sinkron dengan subsistem tampilan OS dan hardware tampilan yang mendasarinya.
Kecepatan yang benar menghilangkan artefak visual yang dikenal sebagai tearing, mengoptimalkan konsumsi daya melalui sinkronisasi antara refresh tampilan dan presentasi frame, serta menghilangkan jank dengan menstabilkan kecepatan frame. Untuk mempelajari lebih lanjut pentingnya kecepatan frame, lihat bagian Library Kecepatan Frame dalam AGDK.
Untuk informasi selengkapnya tentang cara mengintegrasikan kecepatan frame ke dalam game, lihat Mengintegrasikan Android Frame Pacing ke dalam perender Vulkan.
Menangani orientasi perangkat dengan pra-rotasi Vulkan
Penanganan rotasi platform di luar aplikasi mungkin tidak gratis. Bahkan pada beberapa perangkat kelas atas dengan Unit Pemrosesan Tampilan (DPU) khusus, kemungkinan akan ada masalah performa yang terukur yang harus dibayar dan dampaknya akan bergantung pada aplikasi Anda yang terikat dengan CPU atau GPU.
Vulkan memberi developer kemampuan untuk menentukan lebih banyak informasi ke perangkat tentang status rendering dibandingkan dengan OpenGL. Salah satu informasi tersebut adalah orientasi perangkat dan hubungannya dengan orientasi platform render. Kemampuan ini memungkinkan Anda menerapkan pra-rotasi untuk memaksimalkan penggunaan Vulkan di Android.
Untuk mengetahui informasi selengkapnya tentang cara menangani rotasi perangkat secara efisien di aplikasi Vulkan, lihat Menangani orientasi perangkat dengan pra-rotasi Vulkan dan aplikasi demo yang menyertainya.
Mengoptimalkan dengan presisi yang lebih rendah
Format numerik data grafis dan penghitungan shader dapat berdampak signifikan pada performa game. Sebagian besar penghitungan dan data dalam grafis 3D modern menggunakan bilangan floating point. Vulkan di Android menggunakan bilangan floating point yang berukuran 32 atau 16 bit. Bilangan floating point 32-bit biasanya disebut sebagai presisi tunggal atau presisi penuh. Meskipun jenis floating point 64-bit ditentukan di Vulkan, jenis ini biasanya tidak didukung dan penggunaannya tidak direkomendasikan.
Lihat Mengoptimalkan dengan presisi yang lebih rendah untuk mengetahui informasi tentang cara mengoptimalkan aplikasi Vulkan guna mendapatkan performa terbaik pada aritmetika Anda.