תצורת OpenGLRenderer

מסמך זה מתאר כוונון ביצועים שתוכל לבצע כדי להפיק את המרב מהחומרה שלך.

מאפייני OpenGLRenderer (libhwui).

מסמך זה מפרט את כל המאפיינים שבהם אתה יכול להשתמש כדי לשלוט בצינור העיבוד המואץ של החומרה הדו-ממדית של אנדרואיד. הגדר את המאפיינים האלה ב- device.mk כ- PRODUCT_PROPERTY_OVERRIDES .

מאפיינים לכל גרסאות אנדרואיד

תכונה סוּג ערך ברירת מחדל תיאור
ro.zygote.disable_gl_preload boolean false משמש להפעלה/השבתה של טעינה מוקדמת של מנהלי התקנים של EGL/GL ב-Zygote בזמן האתחול. כאשר מאפיין זה מוגדר כ-false, Zygote יטען מראש את מנהלי ההתקן של GL על ידי הפעלת eglGetDisplay(EGL_DEFAULT_DISPLAY). המטרה היא לטעון את קוד הספריות הדינמיות ב-Zygote כדי לשתף אותו עם כל שאר התהליכים. אם מנהל ההתקן אינו תומך בשיתוף, הגדר מאפיין זה כ-true.

מאפיינים עבור אנדרואיד 8.0 ומטה

תכונה סוּג ערך ברירת מחדל תיאור
ro.hwui.disable_scissor_opt boolean false

משמש להפעלה או השבתה של אופטימיזציה של מספריים. הערכים המקובלים נכונים ושקריים. כאשר אופטימיזציה מספריים מופעלת, OpenGLRenderer מנסה למזער את השימוש במספריים על ידי הפעלה והשבתה סלקטיבית של מבחן המספריים של GL.

כאשר האופטימיזציה מושבתת, OpenGLRenderer שומר על בדיקת המספריים של GL מופעלת ומשנה את כיוון המספריים לפי הצורך. חלק ממעבדי ה-GPU (לדוגמה, ה-SGX 540) מתפקדים טוב יותר כאשר מחליפים את נקודת המספריים בתדירות גבוהה יותר מאשר הפעלה או השבתה של בדיקת המספריים לעיתים קרובות.

ro.hwui.texture_cache_size float 24 מגדיר את הגודל, במגה-בייט, של מטמון המרקם לכל תהליך. אנו ממליצים להשתמש במטמון גדול מספיק כדי להכיל מספר מסכים בשווי של טקסטורות של 32 סיביות (לדוגמה, בתצוגה של 1280x800, מאגר מסך מלא משתמש בכ-4 מגה-בייט, כך שהמטמון צריך להיות לפחות 20 מגה-בייט).
ro.hwui.layer_cache_size float 16 מגדיר את הגודל, במגה-בייט, של המטמון לכל שכבות תהליך. אנו ממליצים להשתמש במטמון גדול מספיק כדי להחזיק פי 4 מהמסך ב-32 סיביות. לדוגמה, בתצוגה של 1280x800, מאגר מסך מלא משתמש בכ-4 MB, כך שהמטמון צריך להיות לפחות 16 MB.
ro.hwui.gradient_cache_size 0.5 float מגדיר את הגודל, במגה-בייט, של מטמון הדרגתיות לכל תהליך. שיפוע בודד תופס בדרך כלל בין 1 ל-4 KB של זיכרון. מומלץ להשתמש במטמון גדול מספיק כדי להכיל לפחות שתים עשרה שיפועים.
ro.hwui.patch_cache_size integer 128 מגדיר את הגודל, בקילו-בייט, של המטמון של 9 תיקונים, לכל תהליך. מטמון זה מכיל רק נתוני קודקוד ולכן ניתן לשמור אותו קטן. כל קודקוד עשוי מ-4 מצופים, או 16 בתים.
ro.hwui.path_cache_size float 4 מגדיר את הגודל, במגה-בתים, של המטמון לכל נתיב תהליך. המלצנו להשתמש במטמון גדול מספיק כדי להכיל לפחות מסך אחד בשווי טקסטורות של 32 סיביות. לדוגמה, בתצוגה של 1280x800, מאגר מסך מלא משתמש בכ-4 MB, כך שהמטמון צריך להיות לפחות 4 MB.
ro.hwui.shape_cache_size float 1 מגדיר את הגודל, במגה-בייט, של מטמון הצורות לכל תהליך. ערך זה משמש מספר מטמונים כגון עיגולים ומלבנים מעוגלים. אנו ממליצים להשתמש במטמון גדול מספיק כדי להכיל לפחות מסך אחד של 8 סיביות. לדוגמה, בצג 1280x800, מאגר מסך מלא משתמש בערך 1 MB, כך שהמטמון צריך להיות לפחות 1 MB.
ro.hwui.drop_shadow_cache_size float 2 מגדיר את הגודל, במגה-בייט, של מטמון הצלליות של טקסט לכל תהליך. אנו ממליצים להשתמש במטמון גדול מספיק כדי להכיל שני מסכים בטקסטורות של 8 סיביות. לדוגמה, בתצוגה של 1280x800, מאגר מסך מלא משתמש בערך 1 MB, כך שהמטמון צריך להיות לפחות 2 MB.
ro.hwui.r_buffer_cache_size float 2 מגדיר את הגודל, במגה-בייט, של מטמון ה-Rend buffers לכל תהליך. מומלץ להשתמש במטמון גדול מספיק כדי להכיל פעמיים את המסך ב-8 סיביות. לדוגמה, בתצוגה בגודל 1280x800, מאגר מסך מלא משתמש בערך 1 MB, כך שהמטמון צריך להיות לפחות 2 MB. המטמון יכול להיות קטן יותר אם ההתקן תומך במאגרי סטנסיל של 4 סיביות או 1 סיביות.
ro.hwui.texture_cache_flush_rate float 0.6 מגדיר את אחוז מטמון המרקם שיש לשמור לאחר שטיפת זיכרון. שטיפות זיכרון מופעלות כאשר המערכת צריכה להחזיר זיכרון בכל היישומים. אנו ממליצים לשחרר כ-50% מהמטמון במצבים כאלה.
ro.hwui.text_small_cache_width integer 1024 מגדיר את הרוחב בפיקסלים של מטמון הגופנים המוגדר כברירת מחדל. הגבול העליון תלוי כמה מהר ה-GPU יכול להעלות טקסטורות. אנו ממליצים להשתמש ב-1024 פיקסלים לפחות אך לכל היותר ב-2048 פיקסלים. עליך להשתמש גם בחזקת ערך שני.
ro.hwui.text_small_cache_height integer 256 מגדיר את הגובה בפיקסלים של מטמון הגופנים המוגדר כברירת מחדל. הגבול העליון תלוי כמה מהר ה-GPU יכול להעלות טקסטורות. אנו ממליצים להשתמש ב-256 פיקסלים לפחות אך לכל היותר ב-1024 פיקסלים.
ro.hwui.text_large_cache_width integer 2048 מגדיר את הרוחב בפיקסלים של מטמון הגופנים הגדול. מטמון זה משמש לגליפים גדולים מכדי להתאים למטמון הגופנים המוגדר כברירת מחדל. הגבול העליון תלוי כמה מהר ה-GPU יכול להעלות טקסטורות. המלצנו להשתמש ב-2048 פיקסלים לפחות אך לכל היותר ב-4096 פיקסלים. עליך להשתמש גם בחזקת ערך שני.
ro.hwui.text_large_cache_height integer 512 מגדיר את הגובה בפיקסלים של מטמון הגופנים הגדול. מטמון הגופנים הגדול משמש לגליפים גדולים מכדי להתאים למטמון הגופנים המוגדר כברירת מחדל. הגבול העליון תלוי כמה מהר ה-GPU יכול להעלות טקסטורות. אנו ממליצים להשתמש ב-512 פיקסלים לפחות אך לכל היותר ב-2048 פיקסלים. עליך להשתמש גם בחזקת ערך שני.
hwui.text_gamma_correction string lookup בוחר את טכניקת תיקון גמא הטקסט. ישנן ארבע אפשרויות אפשריות:
  • lookup3 : תיקון המבוסס על טבלאות חיפוש. תיקון גמא שונה עבור טקסט שחור ולבן (ראה ערכי סף להלן).
  • lookup : תיקון המבוסס על טבלת חיפוש בודדת.
  • shader3 : תיקון שהופעל על ידי הצללה GLSL. תיקון גמא שונה עבור טקסט שחור ולבן (ראה ערכי סף להלן).
  • shader : תיקון שהופעל על ידי הצללה GLSL.
תיקוני גמא חיפוש מתפקדים בצורה הטובה ביותר במעבדי GPU עם מתמטיקה מוגבלת של הצללה. תיקוני גמא של Shader הם הטובים ביותר כדי לחסוך בזיכרון. אנו ממליצים להשתמש בטכניקת lookup ברירת המחדל, המציעה פשרה טובה מבחינת איכות, מהירות ושימוש בזיכרון.
hwui.text_gamma float 1.4 מגדיר את ערך הגמא המשמש לתיקון גמא טקסט. ניתן לכוונן ערך זה בהתבסס על התצוגה המשמשת את המכשיר.
hwui.text_gamma.black_threshold integer 64 מגדיר את סף הבהירות שמתחתיו מוחל תיקון גמא שחור. הערך חייב להיות מוגדר בטווח 0..255.
hwui.text_gamma.white_threshold integer 192 מגדיר את סף הבהירות שמעליו מוחל תיקון גמא לבן. הערך חייב להיות מוגדר בטווח 0..255.
hwui.use_gpu_pixel_buffers boolean true משמש כדי להפעיל או להשבית את השימוש ב-PBOs בחומרה של OpenGL ES 3.0. PBOs משמשים את המעבד לביצוע העלאות טקסטורות אסינכרוניות, במיוחד עבור מטמון הגופנים. מאפיין זה צריך להישאר מופעל תמיד, אך ניתן להשבית אותו במהלך העלאה או פיתוח אם השימוש ב-PBO גורם לשחיתות או לביצועים איומים. זו הסיבה שהנכס אינו לקריאה בלבד.