W tym dokumencie opisano dostrajanie wydajności, które można wykonać, aby w pełni wykorzystać możliwości swojego sprzętu.
Właściwości OpenGLRenderera (libhwui).
W tym dokumencie wymieniono wszystkie właściwości, których można użyć do kontrolowania potoku renderowania 2D ze sprzętową akceleracją w systemie Android. Ustaw te właściwości w device.mk
jako PRODUCT_PROPERTY_OVERRIDES
.
Właściwości dla wszystkich wersji Androida
Nieruchomość | Typ | Domyślna wartość | Opis |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | Służy do włączania/wyłączania wstępnego ładowania sterowników EGL/GL w Zygote podczas uruchamiania. Gdy ta właściwość jest ustawiona na false, Zygote wstępnie załaduje sterowniki GL, wywołując eglGetDisplay(EGL_DEFAULT_DISPLAY). Celem jest załadowanie kodu bibliotek dynamicznych do Zygote i udostępnienie go wszystkim innym procesom. Jeśli sterownik nie obsługuje udostępniania, ustaw tę właściwość na true. |
Właściwości dla Androida 8.0 i starszych
Nieruchomość | Typ | Domyślna wartość | Opis |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | Służy do włączania lub wyłączania optymalizacji nożyczek. Akceptowane wartości to prawda i fałsz. Gdy włączona jest optymalizacja nożyczek, OpenGLRenderer próbuje zminimalizować użycie nożyczek poprzez selektywne włączanie i wyłączanie testu nożyczek GL. Gdy optymalizacja jest wyłączona, OpenGLRenderer utrzymuje włączony test nożyczek GL i zmienia prostokąt nożyczek w razie potrzeby. Niektóre procesory graficzne (na przykład SGX 540) działają lepiej przy częstszej zmianie prostownika nożyczek niż częste włączanie lub wyłączanie testu nożyczek. |
ro.hwui.texture_cache_size | float | 24 | Określa rozmiar w megabajtach pamięci podręcznej tekstur na proces. Zalecamy użycie pamięci podręcznej wystarczająco dużej, aby pomieścić kilka ekranów z 32-bitowymi teksturami (na przykład na wyświetlaczu 1280x800 bufor pełnego ekranu zajmuje około 4 MB, więc pamięć podręczna powinna wynosić co najmniej 20 MB). |
ro.hwui.layer_cache_size | float | 16 | Określa rozmiar w megabajtach pamięci podręcznej poszczególnych warstw procesu. Zalecamy użycie pamięci podręcznej wystarczająco dużej, aby pomieścić 4-krotność ekranu w 32 bitach. Na przykład na wyświetlaczu 1280x800 bufor pełnoekranowy zajmuje około 4 MB, więc pamięć podręczna powinna mieć co najmniej 16 MB. |
ro.hwui.gradient_cache_size | 0.5 | float | Określa rozmiar (w megabajtach) pamięci podręcznej gradientów na proces. Pojedynczy gradient zajmuje zazwyczaj od 1 do 4 KB pamięci. Zaleca się użycie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej dwanaście gradientów. |
ro.hwui.patch_cache_size | integer | 128 | Określa rozmiar w kilobajtach pamięci podręcznej składającej się z 9 poprawek na proces. Ta pamięć podręczna przechowuje tylko dane wierzchołków i dlatego może być mała. Każdy wierzchołek składa się z 4 liczb zmiennoprzecinkowych, czyli 16 bajtów. |
ro.hwui.path_cache_size | float | 4 | Określa rozmiar w megabajtach pamięci podręcznej ścieżek procesów. Zalecamy użycie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej jeden ekran z 32-bitowymi teksturami. Na przykład na wyświetlaczu 1280x800 bufor pełnoekranowy zajmuje około 4 MB, więc pamięć podręczna powinna mieć co najmniej 4 MB. |
ro.hwui.shape_cache_size | float | 1 | Określa rozmiar w megabajtach pamięci podręcznej kształtów na proces. Ta wartość jest używana przez kilka pamięci podręcznych, takich jak koła i zaokrąglone prostokąty. Zalecamy użycie pamięci podręcznej wystarczająco dużej, aby pomieścić co najmniej jeden 8-bitowy ekran. Na przykład na wyświetlaczu 1280x800 bufor pełnoekranowy zajmuje około 1 MB, więc pamięć podręczna powinna mieć co najmniej 1 MB. |
ro.hwui.drop_shadow_cache_size | float | 2 | Określa rozmiar (w megabajtach) pamięci podręcznej cieni tekstu na proces. Zalecamy użycie pamięci podręcznej wystarczająco dużej, aby pomieścić dwa ekrany z 8-bitowymi teksturami. Na przykład na wyświetlaczu 1280x800 bufor pełnoekranowy zajmuje około 1 MB, więc pamięć podręczna powinna mieć co najmniej 2 MB. |
ro.hwui.r_buffer_cache_size | float | 2 | Określa rozmiar w megabajtach pamięci podręcznej buforów renderowania na proces. Zaleca się użycie pamięci podręcznej wystarczająco dużej, aby pomieścić dwukrotnie większy ekran w 8 bitach. Na przykład na wyświetlaczu 1280x800 bufor pełnoekranowy zajmuje około 1 MB, więc pamięć podręczna powinna mieć co najmniej 2 MB. Pamięć podręczna może być mniejsza, jeśli urządzenie obsługuje 4-bitowe lub 1-bitowe bufory szablonowe. |
ro.hwui.texture_cache_flush_rate | float | 0.6 | Określa procent pamięci podręcznej tekstur, który ma zostać zachowany po opróżnieniu pamięci. Opróżnianie pamięci jest wyzwalane, gdy system musi odzyskać pamięć dla wszystkich aplikacji. W takich sytuacjach zalecamy zwolnienie około 50% pamięci podręcznej. |
ro.hwui.text_small_cache_width | integer | 1024 | Określa szerokość w pikselach domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy użycie co najmniej 1024 pikseli, ale maksymalnie 2048 pikseli. Powinieneś także użyć potęgi dwójki. |
ro.hwui.text_small_cache_height | integer | 256 | Określa wysokość w pikselach domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy użycie co najmniej 256 pikseli, ale maksymalnie 1024 pikseli. |
ro.hwui.text_large_cache_width | integer | 2048 | Określa szerokość w pikselach pamięci podręcznej dużych czcionek. Ta pamięć podręczna jest używana w przypadku glifów, które są zbyt duże, aby zmieściły się w domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy użycie co najmniej 2048 pikseli, ale maksymalnie 4096 pikseli. Powinieneś także użyć potęgi dwójki. |
ro.hwui.text_large_cache_height | integer | 512 | Określa wysokość w pikselach pamięci podręcznej dużych czcionek. Pamięć podręczna dużych czcionek jest używana w przypadku glifów, które są zbyt duże, aby zmieściły się w domyślnej pamięci podręcznej czcionek. Górna granica zależy od tego, jak szybko procesor graficzny może przesyłać tekstury. Zalecamy użycie co najmniej 512 pikseli, ale maksymalnie 2048 pikseli. Powinieneś także użyć potęgi dwójki. |
hwui.text_gamma_correction | string | lookup | Wybiera technikę korekcji gamma tekstu. Istnieją cztery możliwe opcje:
lookup , która zapewnia dobry kompromis pod względem jakości, szybkości i wykorzystania pamięci. |
hwui.text_gamma | float | 1.4 | Określa wartość gamma używaną do korekcji gamma tekstu. Wartość tę można dostosować w zależności od wyświetlacza używanego przez urządzenie. |
hwui.text_gamma.black_threshold | integer | 64 | Określa próg luminancji, poniżej którego stosowana jest korekcja gamma czerni. Wartość musi być zdefiniowana w przedziale 0..255. |
hwui.text_gamma.white_threshold | integer | 192 | Określa próg luminancji, powyżej którego stosowana jest korekcja gamma bieli. Wartość musi być zdefiniowana w przedziale 0..255. |
hwui.use_gpu_pixel_buffers | boolean | true | Służy do włączania lub wyłączania korzystania z PBO na sprzęcie OpenGL ES 3.0. Elementy PBO są używane przez moduł renderujący do asynchronicznego przesyłania tekstur, szczególnie w przypadku pamięci podręcznej czcionek. Ta właściwość powinna zawsze pozostać włączona, ale można ją wyłączyć podczas uruchamiania lub programowania, jeśli użycie PBO powoduje uszkodzenie lub gorszą wydajność. Z tego powodu właściwość nie jest przeznaczona tylko do odczytu. |