Google 致力于为黑人社区推动种族平等。查看具体举措
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Configurazione OpenGLRenderer

Questo documento descrive l'ottimizzazione delle prestazioni che è possibile eseguire per ottenere il massimo dal proprio hardware.

Proprietà OpenGLRenderer (libhwui)

Questo documento elenca tutte le proprietà che puoi usare 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à genere Valore predefinito Descrizione
ro.zygote.disable_gl_preload boolean false Utilizzato per abilitare / disabilitare il precaricamento dei driver EGL / GL in Zygote al momento dell'avvio. Quando questa proprietà è impostata su false, Zygote precaricherà i driver GL richiamando eglGetDisplay (EGL_DEFAULT_DISPLAY). L'obiettivo è caricare il codice delle librerie dinamiche in Zygote per condividerlo con tutti gli altri processi. Se un driver non supporta la condivisione, impostare questa proprietà su true.

Proprietà per Android 8.0 e versioni precedenti

Proprietà genere Valore predefinito Descrizione
ro.hwui.disable_scissor_opt boolean false

Utilizzato per abilitare o disabilitare l'ottimizzazione delle forbici. I valori accettati sono veri e falsi. Quando l'ottimizzazione delle forbici è abilitata, OpenGLRenderer tenta di ridurre al minimo l'uso della forbice abilitando e disabilitando selettivamente il test delle forbici GL.

Quando l'ottimizzazione è disabilitata, OpenGLRenderer mantiene abilitato il test delle forbici GL e cambia il rettangolo delle forbici secondo necessità. Alcune GPU (ad esempio, l'SGX 540) hanno prestazioni migliori quando si cambia il rettangolo delle forbici più spesso rispetto all'abilitazione o alla disabilitazione del test delle forbici spesso.

ro.hwui.texture_cache_size float 24 Definisce la dimensione, in megabyte, della cache delle texture per processo. Si consiglia di utilizzare una cache abbastanza grande da contenere diversi schermi del valore di trame a 32 bit (ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 4 MB, quindi la cache dovrebbe essere di almeno 20 MB).
ro.hwui.layer_cache_size float 16 Definisce la dimensione, in megabyte, della cache dei livelli di processo. Si consiglia di utilizzare una cache abbastanza grande da contenere 4 volte lo schermo a 32 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 4 MB, quindi la cache dovrebbe essere di almeno 16 MB.
ro.hwui.gradient_cache_size 0.5 float Definisce la dimensione, in megabyte, della cache dei gradienti per processo. Un singolo gradiente occupa generalmente tra 1 e 4 KB di memoria. Si consiglia di utilizzare una cache abbastanza grande da contenere almeno dodici gradienti.
ro.hwui.patch_cache_size integer 128 Definisce la dimensione, in kilobyte, della cache di 9 patch, per processo. Questa cache contiene solo i dati dei vertici e può quindi essere mantenuta piccola. Ogni vertice è composto da 4 float o 16 byte.
ro.hwui.path_cache_size float 4 Definisce la dimensione, in megabyte, della cache dei percorsi per processo. Si consiglia di utilizzare una cache abbastanza grande da contenere almeno uno schermo di texture a 32 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 4 MB, quindi la cache dovrebbe essere di almeno 4 MB.
ro.hwui.shape_cache_size float 1 Definisce la dimensione, in megabyte, delle cache delle forme per processo. Questo valore viene utilizzato da diverse cache come cerchi e rettangoli arrotondati. Si consiglia di utilizzare una cache abbastanza grande da contenere almeno uno schermo a 8 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 1 MB, quindi la cache dovrebbe essere di almeno 1 MB.
ro.hwui.drop_shadow_cache_size float 2 Definisce la dimensione, in megabyte, della cache delle ombreggiature del testo per processo. Si consiglia di utilizzare una cache abbastanza grande da contenere due schermi di texture a 8 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 1 MB, quindi la cache dovrebbe essere di almeno 2 MB.
ro.hwui.r_buffer_cache_size float 2 Definisce la dimensione, in megabyte, della cache dei buffer di rendering per processo. Si consiglia di utilizzare una cache abbastanza grande da contenere il doppio dello schermo in 8 bit. Ad esempio, su un display 1280x800, un buffer a schermo intero utilizza circa 1 MB, quindi la cache dovrebbe essere di almeno 2 MB. La cache può essere più piccola se il dispositivo supporta 4 bit o buffer di stencil da 1 bit.
ro.hwui.texture_cache_flush_rate float 0.6 Definisce la percentuale della cache delle texture da conservare dopo uno scaricamento della memoria. Gli svuotamenti della memoria vengono attivati ​​quando il sistema deve recuperare la memoria in tutte le applicazioni. Consigliamo di rilasciare circa il 50% della cache in tali situazioni.
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 trame. Si consiglia di utilizzare almeno 1024 pixel ma al massimo 2048 pixel. Dovresti anche usare una potenza di due valori.
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 trame. Si consiglia di utilizzare almeno 256 pixel ma al massimo 1024 pixel.
ro.hwui.text_large_cache_width integer 2048 Definisce la larghezza in pixel della cache dei caratteri grandi. Questa cache viene utilizzata per glifi troppo grandi per adattarsi alla cache dei caratteri predefinita. Il limite superiore dipende dalla velocità con cui la GPU può caricare le trame. Si consiglia di utilizzare almeno 2048 pixel ma al massimo 4096 pixel. Dovresti anche usare una potenza di due valori.
ro.hwui.text_large_cache_height integer 512 Definisce l'altezza in pixel della cache dei caratteri grandi. La cache dei caratteri grande 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 trame. Si consiglia di utilizzare almeno 512 pixel ma al massimo 2048 pixel. Dovresti anche usare una potenza di due valori.
hwui.text_gamma_correction string lookup Seleziona la tecnica di correzione della gamma del testo. Ci sono quattro scelte possibili:
  • lookup3 : una correzione basata sulle tabelle di ricerca. La correzione della gamma è diversa per il testo in bianco e nero (vedere le soglie di seguito).
  • lookup : una correzione basata su una singola tabella di ricerca.
  • shader3 : una correzione applicata da uno shader GLSL. La correzione della gamma è diversa per il testo in bianco e nero (vedere le soglie di seguito).
  • shader : una correzione applicata da uno shader GLSL.
Le correzioni gamma di ricerca funzionano meglio su GPU con matematica shader limitata. Le correzioni della gamma dello shader sono le migliori per risparmiare memoria. Si consiglia di utilizzare la tecnica di 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. Questo valore può essere regolato in base al display utilizzato dal dispositivo.
hwui.text_gamma.black_threshold integer 64 Definisce la soglia di luminanza al di sotto della quale viene applicata la correzione della gamma del nero. Il valore deve essere definito nell'intervallo 0..255.
hwui.text_gamma.white_threshold integer 192 Definisce la soglia di luminanza al di sopra della quale viene applicata la correzione della gamma del bianco. Il valore deve essere definito nell'intervallo 0..255.
hwui.use_gpu_pixel_buffers boolean true Utilizzato per abilitare o disabilitare l'uso di PBO sull'hardware OpenGL ES 3.0. I PBO vengono utilizzati dal renderer per eseguire caricamenti di texture asincroni, in particolare per la cache dei caratteri. Questa proprietà dovrebbe sempre rimanere abilitata, ma può essere disabilitata durante la visualizzazione o lo sviluppo se l'uso di PBO provoca danni o prestazioni pessime. Questo è il motivo per cui la proprietà non è di sola lettura.