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 dokümanda, Android'in 2D donanım hızlandırmalı oluşturma ardışık düzenini kontrol etmek için kullanabileceğiniz tüm özellikler listelenmiştir. Bu özellikleri device.mk içinde PRODUCT_PROPERTY_OVERRIDES olarak ayarlayın.

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

Özellik Tür Varsayılan Değer Açıklama
ro.zygote.disable_gl_preload boolean false Zygote'ta önyükleme sırasında EGL/GL sürücülerinin önyüklemesini etkinleştirmek/devre dışı bırakmak için kullanılır. Bu mülk yanlış olarak ayarlandığında Zygote, eglGetDisplay(EGL_DEFAULT_DISPLAY) çağrısını yaparak GL sürücülerini önceden yükler. Amaç, dinamik kitaplık kodunu Zygote'a yükleyip diğer tüm işlemlerle paylaşmaktır. Bir sürücü paylaşmayı desteklemiyorsa bu özelliği true olarak ayarlayın.

Android 8.0 ve önceki sürümler için özellikler

Özellik Tür Varsayılan Değer Açıklama
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 true ve false'tur. Makas optimizasyonu etkinleştirildiğinde OpenGLRenderer, GL makas testini seçerek etkinleştirip devre dışı bırakarak makas kullanımını en aza indirmeye çalışır.

Optimizasyon devre dışı bırakıldığında OpenGLRenderer, GL makas testini etkin durumda tutar ve makas dikdörtgenini gerektiği gibi değiştirir. Bazı GPU'lar (örneğin, SGX 540), makas testini sık sık etkinleştirmekten veya devre dışı bırakmaktan daha sık makas dikdörtgenini değiştirdiğinde daha iyi performans gösterir.

ro.hwui.texture_cache_size float 24 İşlem başına doku önbelleği boyutunu megabayt cinsinden tanımlar. 32 bit dokuların birkaç ekranını tutacak kadar büyük bir önbellek kullanmanızı öneririz (örneğin, 1280x800 ekranda tam ekran arabellek yaklaşık 4 MB kullandığından önbellek en az 20 MB olmalıdır).
ro.hwui.layer_cache_size float 16 İşlem başına katman önbelleği boyutunu megabayt cinsinden tanımlar. 32 bitte ekranın 4 katı kadar veri tutabilecek kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800 ekranda tam ekran arabellek yaklaşık 4 MB kullandığından önbellek en az 16 MB olmalıdır.
ro.hwui.gradient_cache_size 0.5 float İşlem başına gradyan önbelleği boyutunu megabayt cinsinden tanımlar. Tek bir gradyan genellikle 1 ila 4 KB hafıza kaplar. En az on iki gradyan tutacak kadar büyük bir önbelleğe sahip olmanız önerilir.
ro.hwui.patch_cache_size integer 128 İşlem başına 9 yama önbelleği boyutunu kilobayt cinsinden 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ği boyutunu megabayt cinsinden tanımlar. En az bir ekranlık 32 bit doku tutacak kadar büyük bir önbelleğe sahip olmanızı öneririz. Örneğin, 1280x800 ekranda tam ekran arabellek yaklaşık 4 MB kullandığından önbellek en az 4 MB olmalıdır.
ro.hwui.shape_cache_size float 1 İşlem başına şekil önbellekleri için megabayt cinsinden boyutu tanımlar. Bu değer, daireler ve yuvarlatılmış dikdörtgenler gibi çeşitli önbellekler tarafından kullanılır. En az bir 8 bit ekranı barındıracak kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800 ekranda tam ekran arabellek yaklaşık 1 MB kullandığından önbellek en az 1 MB olmalıdır.
ro.hwui.drop_shadow_cache_size float 2 Metin gölgesi önbelleği boyutunu (megabayt cinsinden) işlem başına tanımlar. 8 bit dokuların iki ekranını tutacak kadar büyük bir önbellek kullanmanızı öneririz. Örneğin, 1280x800 ekranda tam ekran arabellek yaklaşık 1 MB kullandığından önbellek en az 2 MB olmalıdır.
ro.hwui.r_buffer_cache_size float 2 İşlem başına oluşturma arabelleklerinin önbelleğini megabayt cinsinden tanımlar. 8 bit olarak ekranın iki katı kadar veri tutabilecek büyüklükte bir önbellek kullanılması önerilir. Örneğin, 1280x800 ekranda tam ekran arabellek yaklaşık 1 MB kullandığından önbellek en az 2 MB olmalıdır. Cihaz 4 bit veya 1 bit şablon arabelleklerini destekliyorsa önbellek daha küçük olabilir.
ro.hwui.texture_cache_flush_rate float 0.6 Bellek temizlendikten sonra tutulacak doku önbelleği yüzdesini tanımlar. Bellek temizlemeleri, sistemin tüm uygulamalarda bellek geri alması gerektiğinde tetiklenir. Bu tür durumlarda önbelleğin yaklaşık% 50'sini temizlemenizi öneririz.
ro.hwui.text_small_cache_width integer 1024 Varsayılan yazı tipi önbelleğini piksel cinsinden genişliğini tanımlar. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebileceğine bağlıdır. En az 1024 piksel, en fazla 2048 piksel kullanmanızı öneririz. Ayrıca, ikinin kuvveti değerini de kullanmanız gerekir.
ro.hwui.text_small_cache_height integer 256 Varsayılan yazı tipi önbellüğünün piksel cinsinden yüksekliğini tanımlar. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebileceğ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ğini piksel cinsinden genişliğini tanımlar. Bu önbellek, varsayılan yazı tipi önbelleğine sığmayacak kadar büyük olan karakterler için kullanılır. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebileceğine bağlıdır. En az 2048 piksel, en fazla 4096 piksel kullanılması önerilir. Ayrıca, ikinin kuvveti değerini de kullanmanız gerekir.
ro.hwui.text_large_cache_height integer 512 Büyük yazı tipi önbelleğini piksel cinsinden yüksekliğini tanımlar. Büyük yazı tipi önbelleği, varsayılan yazı tipi önbelleğine sığmayacak kadar büyük olan karakterler için kullanılır. Üst sınır, GPU'nun dokuları ne kadar hızlı yükleyebileceğine bağlıdır. En az 512 piksel, en fazla 2048 piksel kullanmanızı öneririz. Ayrıca, ikinin kuvveti değerini de kullanmanız gerekir.
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. Gamma düzeltmesi, siyah ve beyaz metinler için farklıdır (aşağıdaki eşiklere bakın).
  • lookup: Tek bir arama tablosuna dayalı düzeltme.
  • shader3: GLSL gölgelendirici tarafından uygulanan bir düzeltme. Gamma düzeltmesi, siyah beyaz metinler için farklıdır (aşağıdaki eşiklere bakın).
  • shader: GLSL gölgelendirici tarafından uygulanan bir düzeltme.
Arama gama düzeltmeleri, sınırlı gölgelendirici matematiği olan GPU'larda en iyi şekilde çalışır. Gölgelendirici gama düzeltmeleri, bellek tasarrufu için en iyi seçenektir. Kalite, hız ve bellek kullanımı açısından iyi bir denge 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 tarafından kullanılan ekrana göre ayarlanabilir.
hwui.text_gamma.black_threshold integer 64 Siyah gama düzeltmesinin uygulandığı parlaklık eşiğini tanımlar. Değer 0 ila 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 ila 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, özellikle yazı tipi önbelleği için asenkron doku yüklemeleri gerçekleştirmek üzere oluşturucu tarafından kullanılır. Bu özellik her zaman etkin kalmalıdır ancak PBO'ların kullanılması bozulmalara veya kötü performansa neden olursa ilk çalıştırma veya geliştirme sırasında devre dışı bırakılabilir. Bu nedenle mülk salt okunur değildir.