เอกสารนี้อธิบายการปรับแต่งประสิทธิภาพที่คุณสามารถทำได้เพื่อให้ได้ประโยชน์สูงสุดจากฮาร์ดแวร์ของคุณ
คุณสมบัติ OpenGLRenderer (libhwui)
เอกสารนี้แสดงรายการคุณสมบัติทั้งหมดที่คุณสามารถใช้ควบคุมไปป์ไลน์การเรนเดอร์ฮาร์ดแวร์ 2 มิติแบบเร่งของ Android ตั้งค่าคุณสมบัติเหล่านี้ใน device.mk
เป็น PRODUCT_PROPERTY_OVERRIDES
คุณสมบัติสำหรับ Android ทุกรุ่น
คุณสมบัติ | พิมพ์ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | ใช้เพื่อเปิด/ปิดการโหลดไดรเวอร์ EGL/GL ล่วงหน้าใน Zygote ขณะบูต เมื่อคุณสมบัตินี้ถูกตั้งค่าเป็นเท็จ Zygote จะโหลดไดรเวอร์ GL ล่วงหน้าโดยการเรียกใช้ eglGetDisplay(EGL_DEFAULT_DISPLAY) เป้าหมายคือการโหลดโค้ดไลบรารีแบบไดนามิกใน Zygote เพื่อแชร์กับกระบวนการอื่นๆ ทั้งหมด หากไดรเวอร์ไม่รองรับการแชร์ ให้ตั้งค่าคุณสมบัตินี้เป็นจริง |
คุณสมบัติสำหรับ Android 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 MB ดังนั้นแคชควรมีขนาดอย่างน้อย 20 MB) |
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 บิตได้ 2 หน้าจอ ตัวอย่างเช่น บนจอแสดงผล 1280x800 บัฟเฟอร์แบบเต็มหน้าจอใช้พื้นที่ประมาณ 1 MB ดังนั้นแคชควรมีอย่างน้อย 2 MB |
ro.hwui.r_buffer_cache_size | float | 2 | กำหนดขนาดเป็นเมกะไบต์ ของแคชบัฟเฟอร์การเรนเดอร์ต่อกระบวนการ ขอแนะนำให้ใช้แคชที่มีขนาดใหญ่พอที่จะเก็บหน้าจอสองเท่าใน 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 พิกเซล แต่ไม่เกิน 1,024 พิกเซล |
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 | เลือกเทคนิคการแก้ไขแกมมาข้อความ มีสี่ทางเลือกที่เป็นไปได้:
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 | ใช้เพื่อเปิดหรือปิดใช้งาน PBO บนฮาร์ดแวร์ OpenGL ES 3.0 ตัวเรนเดอร์ใช้ PBO เพื่ออัปโหลดพื้นผิวแบบอะซิงโครนัส โดยเฉพาะอย่างยิ่งสำหรับแคชแบบอักษร คุณสมบัตินี้ควรเปิดใช้งานอยู่เสมอ แต่สามารถปิดใช้งานได้ในระหว่างการนำเข้าหรือการพัฒนา หากการใช้ PBO ทำให้เกิดความเสียหายหรือประสิทธิภาพการทำงานที่แย่มาก นี่คือสาเหตุที่คุณสมบัติไม่อ่านอย่างเดียว |