Hata ayıklayıcılar
Doğrulama katmanı ile hata ayıklama
Vulkan, yüksek performans ve düşük sürücü ek yükü için tasarlanmıştır. Bunun için varsayılan olarak çok sınırlı hata kontrolü ve hata ayıklama özellikleri kullanılır. Yanlış bir şey yaparsanız sürücü genellikle hata kodu göndermek yerine kilitlenir, daha da kötüsü, grafik kartınızda çalışıyormuş gibi görünürken diğerlerinde tamamen başarısız olur.
Geliştirme süreciniz sırasında kapsamlı kontrolleri etkinleştirmek amacıyla Vulkan, doğrulama katmanları sağlar. Bunlar, işlev parametrelerinde ek kontroller yapmak ve bellek yönetimi sorunlarını takip etmek gibi işlemler için API ile grafik sürücüsü arasına eklenebilen kod parçalarıdır. Geliştirme sırasında doğrulama katmanlarını etkinleştirebilir ve uygulamanızı sıfır ek yük ile yayınlarken tamamen devre dışı bırakabilirsiniz.
Doğrulama katmanları herkes tarafından yazılabilir ancak Khronos, VK_LAYER_KHRONOS_validation
adlı tek bir standart küme sağlar. Uygulamanızda doğrulama katmanını etkinleştirmek için Android NDK sayfasından Android'de Vulkan doğrulama katmanları'na göz atın.
Belge Oluşturma
RenderDoc, inceleme ve analiz için çerçeve oluşturmanıza olanak tanıyan, güçlü bir açık kaynak aracıdır. Grafik programcıları tarafından oluşturulan sahnelerde hata ayıklamak için kullanılan çok güçlü bir araçtır. Uygulamanızın çalışması için hata ayıklanabilir olarak ayarlanması gerekse de Vulkan'ı Android'de destekler.
Bu API'yi Android uygulamanızda nasıl kuracağınız ve kullanacağınız hakkında bilgi edinmek için RenderDoc'u Android'de nasıl kullanırım? bölümüne göz atın.
Kayıt / Tekrar Oynatma Kitaplıkları
GFXYeniden Oluşturma
GFXRestruct, bir uygulama tarafından yürütülen grafik API çağrılarını yakalayan ve tekrar oynatan araçlar sunan bir açık kaynak projesidir. Kaydedilen iz, yakalanan uygulamanın grafiğe özgü davranışını yeniden oluşturmak için daha sonra tekrar oynatılabilir. GFXRebuilding'in temel avantajlarından biri, bunu yayınlanan uygulamanızda (android:debuggable parametresini kapattığınızda) kullanabilmenizdir.
Daha fazla bilgi için proje deposunu ziyaret edin. Android'de Vulkan ile ilgili kurulum ve kullanım bilgilerini Android için GFXRestruct API Capture and Replay konusunda bulabilirsiniz.
İzleme dosyalarının taşınabilir olmadığını unutmayın. Diğer bir deyişle, dosyayı bir cihaza yakalayıp başka bir cihazda (farklı işletim sistemi sürümü, yonga setleri, hatta sürücü sürümüyle) yeniden oynatamazsınız.
Profil araçları
Android GPU Denetleyicisi (AGI)
Android GPU Inspector (AGI), Android için derlenmiş bir Sistem Profili ve Çerçeve Profil Aracı'nı içeren bir grafik profil oluşturucudur. Oyununuzun performans profilini anlamanıza ve performans sorunlarını belirlemenize olanak tanıyan üst düzey profil çıkarma bilgileri sağlar.
AGI'yi indirmek ve nasıl kullanıldığını öğrenmek için Android GPU Inspector web sitesine göz atın.
Android Studio Profil Aracı
Android Studio Profiler, uygulama performansınızın profilini çıkarmak için yararlı bir araçtır. Ancak, özellikle grafik profili çıkarmaya yönelik değildir. CPU Profiler, Bellek Profil Aracı, Ağ Profil Aracı, Enerji Profil Aracı, Güç Profil Aracı ve Etkinlik İzleyici'den oluşur.
Android Studio Profiler'i ayarlama ve kullanma hakkında daha fazla bilgi için Uygulamanızın performansını belirleme bölümüne göz atın.
OEM Profil Araçları
Bu bölümdeki araçlar OEM'ye özeldir ve diğer çiplerle çalışan cihazlarda çalışmayabilir.
Mobil Cihazlar için ARM Performance Studio
Arm Performance Studio for Mobile, Arm Mobile Studio'nun yeni adıdır. ARM GPU'lardaki performans sorunlarını tanımlamanıza ve düzeltmenize yardımcı olan Grafik Analiz Aracı ve Frame Advisor'ı içeren bir araç paketidir.
Daha fazla bilgi için Arm Performance Studio for Mobile web sitesine göz atın.
Mali GPU'lar için ARM PerfDoc
PerfDoc, uygulamaları ARM'ın Mali GPU en iyi uygulamalarıyla karşılaştırarak doğrulamak üzere geliştirilmiş bir Vulkan katmanıdır. O zamandan beri VK_LAYER_KHRONOS_validation ile birleştirilmiştir ve temel olarak standart Vulkan doğrulama katmanlarının bir parçasıdır.
Nasıl kullanılacağıyla ilgili bilgi için Doğrulama katmanı ile hata ayıklama bölümüne göz atın.
Qualcomm Snapdragon Profil Aracı
Qualcomm Snapdragon Profiler, uygulama geliştiricilerinin yonga setlerindeki sorunları belirlemek amacıyla CPU, GPU, DSP, bellek, güç, termal ve ağ performansını analiz etmeleri için Qualcomm tarafından geliştirilen bir profil oluşturma yazılımıdır.
Daha fazla bilgi için Qualcomm Geliştirici Ağı'nda Snapdragon Profiler'a göz atın.
Samsung GPUWatch
Samsung'un GPUWatch uygulaması, Samsung cihazlarda GPU etkinliğini gözlemlemeye yarayan bir araçtır. Diğer araçların aksine bu aracı doğrudan mobil cihazınızdan kullanabilirsiniz. Bu nedenle, başka bir ana bilgisayara erişiminiz olmadığında bile uygulama performansınızı hemen kontrol etmek çok kullanışlıdır.
Özelliğin nasıl etkinleştirileceği hakkında daha fazla bilgi için Kullanıcı Rehberi'ne göz atın.
PVRTune
Imagination Technologies'in PVRTune özelliği, geliştiricilerin çok çeşitli sayaçlar ve metrikler sayesinde PowerVR donanımındaki uygulamaları gerçek zamanlı olarak profilini çıkarmasına olanak tanır. Ayrıca, daha alt düzey analizler için ve performans sorunlarını tespit etmek üzere oturumun kaydedilmesine olanak tanır.
PVRTune'un nasıl kullanılacağıyla ilgili daha fazla bilgi için Kılavuza bakın.
Taşıma Araçları
GLSL'den SPIR-V'ye gölgelendiricileri dönüştürme
Vulkan API, gölgelendirici programlarının SPIR-V ikili programda ara biçimde sağlanmasını bekler. Bu kural, OpenGL Gölgeleme Dili (GLSL) ile yazılmış kaynak kodunu metin dizeleri olarak gönderebileceğiniz OpenGL ES'den farklıdır.
NDK r12 ve sonraki sürümler, GLSL gölgelendiricilerini Vulkan tarafından kullanılabilecek SPIR-V'de derlemek için bir çalışma zamanı kitaplığı içerir. GLSL'de yazılan gölgelendirici programlarını SPIR-V olarak derlemek için shaderc derleyicisi kullanılabilir. Oyununuz HLSL kullanıyorsa DirectXShaderCompiler SPIR-V çıkışını destekler.
Genellikle, oyununuz için öğe oluşturma sürecinin bir parçası olarak gölgelendirici programlarını çevrimdışı olarak derlemeniz ve SPIR-V modüllerini çalışma zamanı öğelerinizin bir parçası olarak eklemeniz gerekir.
Vulkan uygulamanızın gölgelendirici derleme işlemi hakkında daha fazla bilgi edinmek için Android NDK bölümündeki Android'de Vulkan gölgelendirici derleyicileri'ne göz atın.
İleri Seviye Özellikler
Android Frame Pacing'i Vulkan oluşturucunuza entegre etme
Android Frame Pacing kitaplığı (Swappy olarak da bilinir), Vulkan oyunlarının oyun oluşturma döngüsünü işletim sisteminin ekran alt sistemi ve temel ekran donanımı ile senkronize etmesi için sorunsuz oluşturma ve doğru hız elde etmesine yardımcı olur.
Doğru hız, yırtılma olarak bilinen görsel kusurları ortadan kaldırır, ekran yenilemeleri ile kare sunumu arasındaki senkronizasyon yoluyla güç tüketimini optimize eder ve kare hızını dengeleyerek olumsuzlukları ortadan kaldırır. Kare hızının önemi hakkında daha fazla bilgi edinmek için AGDK'nın Frame Pacing Library (Kare İlerleme Hızı Kitaplığı) bölümüne bakın.
Kare hızını oyununuza nasıl entegre edeceğiniz hakkında daha fazla bilgi için Android Frame Pacing'i Vulkan oluşturucunuza entegre etme sayfasına göz atın.
Vulkan ön rotasyonu ile cihazın yönünü tutma
Uygulamanın dışında yüzey döndürme işlemi ücretsiz olmayabilir. Özel Ekran İşleme Birimi'ne (DPU) sahip bazı üst düzey cihazlarda bile performans için ölçülebilir bir ceza olabilir. Bu durumun etkisi, uygulamanızın CPU'ya mı yoksa GPU'ya mı bağlı olduğuna bağlı olarak değişir.
Vulkan, geliştiricilere, cihazlara OpenGL'ye kıyasla oluşturma durumu hakkında çok daha fazla bilgi belirtme olanağı sağlar. Bu tür bilgilerden biri, cihaz yönü ve bunun yüzey yönünü oluşturma ile ilişkisidir. Bu özellik, Android'de Vulkan'dan en iyi şekilde yararlanmak için ön rotasyon uygulamanızı sağlar.
Vulkan uygulamanızda cihaz döndürme işlemini verimli bir şekilde nasıl yapacağınız hakkında daha fazla bilgi edinmek için Vulkan ön rotasyonu ile cihaz yönünü işleme ve beraberindeki demo uygulamasına göz atın.
Daha düşük hassasiyetle optimizasyon yapın
Grafik verilerinin sayısal biçimi ve gölgelendirici hesaplamaları, oyununuzun performansı üzerinde önemli bir etkiye sahip olabilir. Modern 3D grafiklerdeki hesaplamaların ve verilerin çoğunda kayan nokta sayıları kullanılır. Android'de Vulkan, 32 veya 16 bit boyutunda kayan nokta sayıları kullanır. 32 bitlik kayan nokta sayıları, genellikle tek kesinlik veya tam duyarlık olarak adlandırılır. 64 bit kayan nokta türü, Vulkan'da tanımlanmış olsa da yaygın bir şekilde desteklenmez ve önerilmez.
Aritmetikte en iyi performansı elde etmek üzere Vulkan uygulamanızı nasıl optimize edeceğiniz hakkında bilgi için Daha düşük hassasiyetle optimize et bölümüne göz atın.