OpenGLRenderer yapılandırması

Bu belgede donanımınızdan en iyi şekilde yararlanmak için yapabileceğiniz performans ayarlamaları açıklanmaktadır.

OpenGLRenderer (libhwui) özellikleri

Bu belge, Android'in 2B donanım hızlandırmalı işleme hattını kontrol etmek için kullanabileceğiniz tüm özellikleri listeler. device.mk dosyasında bu özellikleri PRODUCT_PROPERTY_OVERRIDES olarak ayarlayın.

Tüm Android sürümleri için özellikler

Mülk Tip Varsayılan değer Tanım
ro.zygote.disable_gl_preload boolean false Önyükleme sırasında Zygote'ta EGL/GL sürücülerinin önceden yüklenmesini etkinleştirmek/devre dışı bırakmak için kullanılır. Bu özellik false olarak ayarlandığında Zygote, eglGetDisplay(EGL_DEFAULT_DISPLAY)'i çağırarak GL sürücülerini önceden yükleyecektir. Amaç, dinamik kütüphane kodunu Zygote'a yükleyerek onu diğer tüm süreçlerle paylaşmaktır. Sürücü paylaşılmayı desteklemiyorsa bu özelliği true olarak ayarlayın.

Android 8.0 ve önceki sürümlere yönelik özellikler

Mülk Tip Varsayılan değer Tanım
ro.hwui.disable_scissor_opt boolean false

Makas optimizasyonunu etkinleştirmek veya devre dışı bırakmak için kullanılır. Kabul edilen değerler doğru ve yanlıştır. Makas optimizasyonu etkinleştirildiğinde OpenGLRenderer, GL makas testini seçici olarak etkinleştirip devre dışı bırakarak makaslama kullanımını en aza indirmeye çalışır.

Optimizasyon devre dışı bırakıldığında OpenGLRenderer, GL makas testini etkin tutar ve makasın doğrultusunu gerektiği gibi değiştirir. Bazı GPU'lar (örneğin, SGX 540), makas testini sık sık etkinleştirmek veya devre dışı bırakmaktan ziyade, makas doğrultusunu daha sık değiştirirken daha iyi performans gösterir.

ro.hwui.texture_cache_size float 24 İşlem başına doku önbelleğinin megabayt cinsinden boyutunu tanımlar. 32 bit doku değerinde birkaç ekranı tutacak kadar büyük bir önbellek kullanmanızı öneririz (örneğin, 1280x800 ekranda, tam ekran arabelleği yaklaşık 4 MB kullanır; bu nedenle önbellek en az 20 MB olmalıdır.)
ro.hwui.layer_cache_size float 16 İşlem katmanları önbelleğinin megabayt cinsinden boyutunu tanımlar. 32 bit olarak ekranın 4 katını tutacak kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800'lük bir ekranda tam ekran arabelleği yaklaşık 4 MB kullanır; dolayısıyla önbellek en az 16 MB olmalıdır.
ro.hwui.gradient_cache_size 0.5 float İşlem başına degrade önbelleğinin megabayt cinsinden boyutunu tanımlar. Tek bir degrade genellikle 1 ila 4 KB arasında bellek kaplar. En az on iki degradeyi tutacak kadar büyük bir önbellek kullanılması önerilir.
ro.hwui.patch_cache_size integer 128 İşlem başına 9 yama önbelleğinin kilobayt cinsinden boyutunu tanımlar. Bu önbellek yalnızca köşe verilerini tutar ve bu nedenle küçük tutulabilir. Her köşe 4 kayan nokta veya 16 bayttan oluşur.
ro.hwui.path_cache_size float 4 İşlem başına yol önbelleğinin megabayt cinsinden boyutunu tanımlar. En az bir ekran değerinde 32 bit dokuyu tutacak kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800'lük bir ekranda tam ekran arabelleği yaklaşık 4 MB kullanır; dolayısıyla önbellek en az 4 MB olmalıdır.
ro.hwui.shape_cache_size float 1 İşlem başına şekil önbelleklerinin megabayt cinsinden boyutunu tanımlar. Bu değer, daireler ve yuvarlak köşeli dikdörtgenler gibi çeşitli önbellekler tarafından kullanılır. En az bir adet 8 bitlik ekranı tutacak kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800'lük bir ekranda tam ekran arabelleği yaklaşık 1 MB kullanır; dolayısıyla önbellek en az 1 MB olmalıdır.
ro.hwui.drop_shadow_cache_size float 2 İşlem başına metin alt gölge önbelleğinin megabayt cinsinden boyutunu tanımlar. 8 bit doku değerindeki iki ekranı tutacak kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800'lük bir ekranda, tam ekran arabelleği yaklaşık 1 MB kullanır; dolayısıyla önbellek en az 2 MB olmalıdır.
ro.hwui.r_buffer_cache_size float 2 İşlem başına işleme arabellekleri önbelleğinin megabayt cinsinden boyutunu tanımlar. 8 bitlik ekranın iki katını tutacak kadar büyük bir önbellek kullanılması tavsiye edilir. Örneğin, 1280x800'lük bir ekranda, tam ekran arabelleği yaklaşık 1 MB kullanır, dolayısıyla önbellek en az 2 MB olmalıdır. Aygıt 4 bit veya 1 bit şablon arabelleklerini destekliyorsa önbellek daha küçük olabilir.
ro.hwui.texture_cache_flush_rate float 0.6 Bellek temizleme işleminden sonra tutulacak doku önbelleğinin yüzdesini tanımlar. Sistemin tüm uygulamalarda belleği geri kazanması gerektiğinde bellek temizleme işlemleri tetiklenir. Bu gibi durumlarda önbelleğin yaklaşık %50'sini serbest bırakmanızı öneririz.
ro.hwui.text_small_cache_width integer 1024 Varsayılan yazı tipi önbelleğinin genişliğini piksel cinsinden tanımlar. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebildiğine bağlıdır. En az 1024 piksel, en fazla 2048 piksel kullanmanızı öneririz. Ayrıca iki değerin gücünü kullanmalısınız.
ro.hwui.text_small_cache_height integer 256 Varsayılan yazı tipi önbelleğinin yüksekliğini piksel cinsinden tanımlar. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebildiğine bağlıdır. En az 256 piksel, en fazla 1024 piksel kullanmanızı öneririz.
ro.hwui.text_large_cache_width integer 2048 Büyük yazı tipi önbelleğinin genişliğini piksel cinsinden tanımlar. Bu önbellek, varsayılan yazı tipi önbelleğine sığmayacak kadar büyük olan glifler için kullanılır. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebildiğine bağlıdır. En az 2048 piksel, en fazla 4096 piksel kullanmanızı öneririz. Ayrıca iki değerin gücünü kullanmalısınız.
ro.hwui.text_large_cache_height integer 512 Büyük yazı tipi önbelleğinin yüksekliğini piksel cinsinden tanımlar. Büyük yazı tipi önbelleği, varsayılan yazı tipi önbelleğine sığmayacak kadar büyük olan glifler için kullanılır. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebildiğine bağlıdır. En az 512 piksel, en fazla 2048 piksel kullanmanızı öneririz. Ayrıca iki değerin gücünü kullanmalısınız.
hwui.text_gamma_correction string lookup Metin gama düzeltme tekniğini seçer. Dört olası seçenek vardır:
  • lookup3 : Arama tablolarına dayalı bir düzeltme. Gama düzeltmesi siyah beyaz metin için farklıdır (aşağıdaki eşik değerlerine bakın).
  • lookup : Tek bir arama tablosunu temel alan düzeltme.
  • shader3 : GLSL gölgelendirici tarafından uygulanan bir düzeltme. Gama düzeltmesi siyah beyaz metin için farklıdır (aşağıdaki eşik değerlerine bakın).
  • shader : GLSL gölgelendirici tarafından uygulanan bir düzeltme.
Arama gama düzeltmeleri, sınırlı gölgelendirici matematiğine sahip GPU'larda en iyi şekilde çalışır. Gölgelendirici gama düzeltmeleri hafızadan tasarruf etmek için en iyisidir. Kalite, hız ve bellek kullanımı açısından iyi bir uzlaşma sunan varsayılan lookup tekniğini kullanmanızı öneririz.
hwui.text_gamma float 1.4 Metin gama düzeltmesi için kullanılan gama değerini tanımlar. Bu değer cihazın kullandığı ekrana göre ayarlanabilir.
hwui.text_gamma.black_threshold integer 64 Altında siyah gama düzeltmesinin uygulandığı parlaklık eşiğini tanımlar. Değer 0..255 aralığında tanımlanmalıdır.
hwui.text_gamma.white_threshold integer 192 Beyaz gama düzeltmesinin uygulandığı parlaklık eşiğini tanımlar. Değer 0..255 aralığında tanımlanmalıdır.
hwui.use_gpu_pixel_buffers boolean true OpenGL ES 3.0 donanımında PBO'ların kullanımını etkinleştirmek veya devre dışı bırakmak için kullanılır. PBO'lar, oluşturucu tarafından özellikle yazı tipi önbelleği için eşzamansız doku yüklemeleri gerçekleştirmek için kullanılır. Bu özellik her zaman etkin kalmalıdır ancak PBO'ların kullanımının bozulmalara veya kötü performansa neden olması durumunda, getirme veya geliştirme sırasında devre dışı bırakılabilir. Bu nedenle özellik salt okunur değildir.