Questo documento descrive l'ottimizzazione delle prestazioni per ottimizzare il rendimento dell'hardware.
Proprietà OpenGLRenderer (libhwui)
Questo documento descrive le proprietà per controllare la pipeline di rendering
con accelerazione hardware 2D di Android. Imposta queste proprietà in
device.mk
come PRODUCT_PROPERTY_OVERRIDES
.
Proprietà per tutte le versioni di Android
Proprietà | Tipo | Valore predefinito | Descrizione |
---|---|---|---|
ro.zygote.disable_gl_preload |
boolean |
false |
Attiva o disattiva il precaricamento dei driver EGL/GL in Zygote al momento dell'avvio.
Quando questa proprietà è false , Zygote precarica i driver GL richiamando eglGetDisplay(EGL_DEFAULT_DISPLAY) . In questo modo, il codice della libreria dinamica viene caricato in Zygote per essere condiviso con tutti gli altri processi. Se un
driver non supporta la condivisione, imposta questa proprietà su true . |
Proprietà per Android 8.0 e versioni precedenti
Proprietà | Tipo | Valore predefinito | Descrizione |
---|---|---|---|
ro.hwui.disable_scissor_opt |
boolean |
false |
Attiva o disattiva l'ottimizzazione delle forbici. I valori accettati sono
Se disattivato, OpenGLRenderer mantiene attivo il test di ritaglio GL e modifica il rettangolo di ritaglio in base alle necessità. Alcune GPU (ad esempio SGX 540) hanno un rendimento migliore quando modificano il rettangolo di taglio più spesso rispetto all'attivazione o alla disattivazione frequente del test di taglio. |
ro.hwui.texture_cache_size |
float |
24 |
Definisce le dimensioni, in megabyte, della cache delle texture per processo. Ti consigliamo di utilizzare una cache sufficientemente grande da contenere diverse schermate di texture a 32 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 4 MB, quindi la cache deve essere almeno 20 MB. |
ro.hwui.layer_cache_size |
float |
16 |
Definisce le dimensioni, in megabyte, della cache dei livelli per processo. Ti consigliamo di utilizzare una cache sufficientemente grande da contenere quattro volte lo schermo a 32 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 4 MB, quindi la cache deve essere almeno 16 MB. |
ro.hwui.gradient_cache_size |
float |
0.5 |
Definisce le dimensioni, in megabyte, della cache dei gradienti per processo. Un singolo gradiente occupa generalmente tra 1 KB e 4 KB di memoria. Consigliamo di utilizzare una cache sufficientemente grande da contenere almeno 12 sfumature. |
ro.hwui.patch_cache_size |
integer |
128 |
Definisce le dimensioni, in kilobyte, della cache delle immagini a 9 patch per processo. Questa cache contiene solo i dati dei vertici, quindi puoi mantenerla di dimensioni ridotte. Ogni vertice è composto da 4 float o 16 byte. |
ro.hwui.path_cache_size |
float |
4 |
Definisce le dimensioni, in megabyte, della cache dei percorsi per processo. Ti consigliamo di utilizzare una cache sufficientemente grande da contenere almeno una schermata di texture a 32 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 4 MB, quindi la cache deve essere almeno di 4 MB. |
ro.hwui.shape_cache_size |
float |
1 |
Definisce le dimensioni, in megabyte, della cache delle forme per processo. Questo valore viene utilizzato da diverse cache, ad esempio cerchi e rettangoli arrotondati. Ti consigliamo di utilizzare una cache sufficientemente grande da contenere almeno una schermata a 8 bit. Ad esempio, su un display da 1280 x 800, un buffer a schermo intero utilizza circa 1 MB, quindi la cache deve essere di almeno 1 MB. |
ro.hwui.drop_shadow_cache_size |
float |
2 |
Definisce le dimensioni, in megabyte, della cache delle ombreggiature del testo per processo. Ti consigliamo di utilizzare una cache sufficientemente grande da contenere due schermate di texture a 8 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 1 MB, quindi la cache deve essere almeno 2 MB. |
ro.hwui.r_buffer_cache_size |
float |
2 |
Definisce le dimensioni, in megabyte, della cache dei buffer di rendering per processo. Ti consigliamo di utilizzare una cache sufficientemente grande da contenere il doppio dello schermo a 8 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 1 MB, quindi la cache deve essere almeno 2 MB. La cache può essere più piccola se il dispositivo supporta buffer stencil a 4 bit o 1 bit. |
ro.hwui.texture_cache_flush_rate |
float |
0.6 |
Definisce la percentuale della cache delle texture da conservare dopo lo svuotamento della memoria. Il sistema attiva lo svuotamento della memoria quando deve recuperare memoria in tutte le applicazioni. In questi casi, ti consigliamo di rilasciare circa il 50% della cache. |
ro.hwui.text_small_cache_width |
integer |
1024 |
Definisce la larghezza, in pixel, della cache dei caratteri predefinita. Il limite superiore dipende dalla velocità con cui la GPU può caricare le texture. Ti consigliamo di utilizzare almeno 1024 pixel, ma non più di 2048 pixel. Inoltre, utilizza un valore che sia una potenza di 2. |
ro.hwui.text_small_cache_height |
integer |
256 |
Definisce l'altezza, in pixel, della cache dei caratteri predefinita. Il limite superiore dipende dalla velocità con cui la GPU può caricare le texture. Ti consigliamo di utilizzare almeno 256 pixel, ma non più di 1024 pixel. |
ro.hwui.text_large_cache_width |
integer |
2048 |
Definisce la larghezza, in pixel, della cache dei caratteri grandi. Questa cache viene utilizzata anche per i glifi troppo grandi per essere contenuti nella cache dei caratteri predefinita. Il limite superiore dipende dalla velocità con cui la GPU può caricare le texture. Ti consigliamo di utilizzare almeno 2048 pixel, ma non più di 4096 pixel. Inoltre, utilizza un valore che sia una potenza di 2. |
ro.hwui.text_large_cache_height |
integer |
512 |
Definisce l'altezza, in pixel, della cache dei caratteri grandi. La cache dei caratteri grandi viene utilizzata per i glifi troppo grandi per essere contenuti nella cache dei caratteri predefinita. Il limite superiore dipende dalla velocità con cui la GPU può caricare le texture. Ti consigliamo di utilizzare almeno 512 pixel, ma non più di 2048 pixel. Inoltre, utilizza un valore potenza di 2. |
hwui.text_gamma_correction |
string |
lookup |
Seleziona la tecnica di correzione gamma del testo. Esistono quattro possibili
scelte:
lookup predefinita, che offre un buon compromesso in termini
di qualità, velocità e utilizzo della memoria.
|
hwui.text_gamma |
float |
1.4 |
Definisce il valore gamma utilizzato per la correzione gamma del testo. Puoi regolare questo valore in base al display del dispositivo. |
hwui.text_gamma.black_threshold |
integer |
64 |
Definisce la soglia di luminanza al di sotto della quale viene applicata la correzione gamma del nero. Il valore deve essere compreso tra 0 e 255. |
hwui.text_gamma.white_threshold |
integer |
192 |
Definisce la soglia di luminanza al di sopra della quale viene applicata la correzione gamma del bianco. Il valore deve essere compreso tra 0 e 255. |
hwui.use_gpu_pixel_buffers |
boolean |
true |
Attiva o disattiva l'utilizzo di PBO sull'hardware OpenGL ES 3.0. Il renderer utilizza i PBO per eseguire caricamenti di texture asincroni, in particolare per la cache dei caratteri. Questa proprietà deve rimanere sempre abilitata, ma puoi disattivarla durante l'avvio o lo sviluppo se le PBO causano danneggiamenti o prestazioni scarse. Per questo motivo, la proprietà non è di sola lettura. |