Vulkan Pre-Rotation ile Device Orientation

Vulkan, geliştiricilere rendering state hakkında OpenGL'e kıyasla çok daha fazla bilgi işleme gücü sağlıyor. Bu da geliştiricilere yeni sorumluluklar yüklüyor; geliştiricilerin OpenGL driver tarafında ele alınan şeyleri uygulaması bekleniyor.


Bunlardan biri device orientation ve bunun yüzey oriantation'la olan ilişkisi. Android'de mevcutta cihaz yüzeyini cihazın yönüyle render etmenin 3 yolu mevcut:


  1. Bazı cihazlar, device orientation'a uygun şekilde aygıt yönüne etkin şekilde işleyebilen Görüntü İşleme Birimi'ne (DPU) sahiptir.

  2. Android işletim sistemi, compositor'ın output image'ını çevirirken performans maliyeti bulunan bir kompozit geçiş kartı ile yüzey dönüşünü (surface rotation) işleyebilir.

  3. Ya da Uygulamalar, ekranın yönüne uygun bir render yüzeyiyle oluşturulmuş bir görüntü kullanarak yüzey dönüşünü işleyebilirler.


Görsel Referansı


Bunun Uygulamalarımız için Anlamı Nedir ?


Şu anda herhangi bir uygulamanın surface rotation'ı render edebilecek bir cihaza kurulup kurulamayacağını bilmesinin imkanı bulunmuyor. Cihazda DPU mevcut olsa bile bu da büyük performans sıkıntılarına neden olabiliyor. Uygulamanız CPU kullanılmına dikkat etmesi gereken bir uygulamaysa Android Compositor'un arttıracağı GPU kullanımı büyük sorunlar yaşamanıza neden olabilir. Hatta uygulamanız GPU bağımlı bir uygulamaysa Android Compositor kullanımıyla birlikte frame rate düşüklüğünden kaçmanız neredeyse imkansız.


Orientation'ı handle etmek SurfaceFlinger tarafından GPU koruma işlemini neredeyse tamamen durduruyor. Ayrıca Android Compositor tarafından kullanılan artırılmış frekansa artık ihtiyaç duyulmadığından GPU frekansı da %40 oranında düşüyor.


Bu nedenle Android Developers'dan Francesco Carucci yüzey rotasyonlarının mümkün olduğunca az yük ile işlenmesi adına 3.yöntemin yani pre-rotation'ın uygulanması gerektiğini bildirdi.


Bunun için yapılması gereken surface rotation'ı kontrol ettiğimizi Android Compositor'a, surface transform flag ile bildirmek. Bu nedenle surface transform flag'i doğru kullanmak her Vulkan uygulaması için çok kritiktir.


Entegrasyon, izlenmesi gereken yol ve kaynak için:

https://android-developers.googleblog.com/2020/02/handling-device-orientation-efficiently.html



#prerotation #deviceorientation #android


Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın