เฟรมเวิร์กประสิทธิภาพแบบไดนามิกของ Android (ADPF) เป็นเครื่องมือที่มีประสิทธิภาพจาก Google สําหรับนักพัฒนาแอปที่ต้องการเพิ่มประสิทธิภาพของแอปพลิเคชัน ADPF จะแสดงข้อมูลแบบเรียลไทม์เกี่ยวกับสถานะความร้อนของอุปกรณ์ผ่าน API ความร้อน จากนั้นระบบจะใช้ข้อมูลดังกล่าวเพื่อปรับการตั้งค่ากราฟิกในแอปพลิเคชัน
Arm ได้พัฒนาเวอร์ชันเดโมโดยใช้ Unreal Engine และ ADPF เพื่อศึกษาวิธีใช้ ADPF ในการเพิ่มประสิทธิภาพเกมเพื่อวัตถุประสงค์ในการวิจัย
ADPF จะตรวจสอบสถานะความร้อน โดยระบบจะปรับคุณภาพกราฟิกในเครื่องมือสร้างเกมตามความเหมาะสม
เป้าหมายของเราคือช่วยให้ผู้ใช้เล่นเกมได้นานขึ้นโดยไม่ส่งผลต่อประสบการณ์การเล่นเกมและอุปกรณ์ใช้พลังงานมากเกินไป โดยคำนึงถึงนักพัฒนาแอป
ก่อนเริ่มต้น
ก่อนดูการสาธิตอย่างละเอียด โปรดอ่านเอกสารประกอบอย่างเป็นทางการของ Google เกี่ยวกับ ADPF เอกสารประกอบนี้เป็นแหล่งข้อมูลที่มีค่าซึ่งให้ข้อมูลเชิงลึกและคำแนะนำอย่างละเอียดเกี่ยวกับวิธีใช้ ADPF
อย่างไรก็ตาม สําหรับผู้ที่ต้องการการเรียนรู้ที่ปรับแต่งได้ พื้นที่เก็บตัวอย่าง ADPF จะมีตัวอย่างการใช้งานจริงของ ADPF ในแอปพลิเคชัน Android
การปรับการตั้งค่ากราฟิก
ในบริบทของ Unreal Engine เราสามารถปรับการตั้งค่ากราฟิกแบบไดนามิกเพื่อรักษาประสิทธิภาพ
เราใช้เครื่องมือตรวจสอบสถานะความร้อนและ Thermal Headroom API ใน ADPF เพื่อตรวจสอบการจำกัดความร้อน จากนั้นคุณสามารถปรับการตั้งค่าคุณภาพ เช่น คุณภาพเงา คุณภาพการสะท้อน และคุณภาพพื้นผิว เมื่ออุปกรณ์เริ่มจำกัดคุณภาพ
การตั้งค่าคุณภาพกราฟิกต่อไปนี้ใน Unreal Engine ใช้เพื่อแก้ไขการตั้งค่าต่างๆ
- ViewDistanceQuality
- ShadowQuality
- GlobalIlluminationQuality
- ReflectionQuality
- AntiAliasingQuality
- TextureQuality
- VisualEffectQuality
- PostProcessingQuality
- FoliageQuality
- ShadingQuality
- OverallScalabilityLevel
การทดสอบในสถานการณ์จริง


Arm สร้างเกมเดโมของเราเอง ซึ่งใช้เพื่อวิจัยเทคโนโลยีกราฟิกและเกมบนอุปกรณ์เคลื่อนที่ ปีนี้เราได้ทดสอบ ADPF ในหนึ่งในนั้น ซึ่งเป็น SteelArms Demo
SteelArms มีระดับความเข้มข้นของกราฟิกที่ต่างกันและมีภาระงานของ CPU จำนวนมาก เกมนี้สร้างขึ้นให้เหมือนกับเกมมือถือสมัยใหม่ เพื่อให้เราจำลองลักษณะการทํางานของเกมในโทรศัพท์มือถือในปัจจุบันได้ นอกจากนี้ เรายังทดสอบได้ว่าเทคโนโลยีต่างๆ อาจทำงานอย่างไรในเกมบนอุปกรณ์เคลื่อนที่ที่ใช้ Arm
ผลลัพธ์


รูปภาพก่อนหน้าแสดงความแตกต่างระหว่างคุณภาพที่ดีที่สุด (Cinematic) กับคุณภาพต่ำสุด (ต่ำ) เมื่อเปิดใช้งาน ADPF เพื่อปรับการตั้งค่ากราฟิก การเปลี่ยนแปลงนี้เกิดขึ้นอย่างค่อยเป็นค่อยไปและผู้ใช้จะไม่สังเกตเห็นระหว่างเล่นเกม

มุมมองแบบแยกหน้าจอของการตั้งค่ากราฟิกสูงสุดทางด้านซ้าย (หุ่นยนต์สีน้ำเงิน) และการตั้งค่ากราฟิกต่ำสุดทางด้านขวา (หุ่นยนต์สีแดง)


ในรูปภาพ 3 และ 4 ก่อนหน้านี้ คุณจะเห็นว่าภาพมุมมองเดียวกันของหุ่นยนต์อยู่เคียงข้างกัน เมื่อมองใกล้ๆ จะเห็นว่ามีการปรับเปลี่ยนการตั้งค่ากราฟิกโดยใช้ ADPF สังเกตเห็นพื้นของเวที ไหล่ของหุ่นยนต์ เชือกของเวที และฝูงชนไหม ดูเหมือนว่าวิดีโอทั้งหมดจะมีคุณภาพต่ำลงเล็กน้อย ซึ่งเกิดจากการใช้ ADPF
เมื่อการจำกัดกำลังจะเกิดขึ้นในไม่ช้า เอฟเฟกต์เหล่านี้จะลดลงในเดโมของ SteelArms การลดขนาดเล็กน้อยเหล่านี้ในขั้นตอนหลังการประมวลผลและเอฟเฟกต์ภาพนั้นสังเกตได้ยาก นอกจากนี้ ผู้ใช้มักไม่สังเกตเห็นโฆษณาเหล่านี้ขณะเล่น ซึ่งหมายความว่าคุณจะคงประสบการณ์ภาพส่วนใหญ่ของเกมไว้ได้โดยไม่กระทบประสบการณ์การเล่นเกม คุณทำสิ่งเหล่านี้ได้ทั้งหมดในขณะที่ยังคงประสิทธิภาพของเกมและอายุการใช้งานแบตเตอรี่ของอุปกรณ์
ดังที่ได้กล่าวไปก่อนหน้านี้ เราจะเปรียบเทียบรูปภาพการตั้งค่าคุณภาพสูงสุดกับการตั้งค่าคุณภาพต่ำที่สุดเพื่อสาธิต ด้วยเหตุนี้ คุณจึงยังเห็นความแตกต่างได้เมื่อมองอย่างละเอียด อย่างไรก็ตาม เมื่อลดความละเอียดระหว่างเกมเพลย์ ผู้ใช้แทบจะสังเกตไม่เห็นความแตกต่างเลย ทั้งยังได้รับประสบการณ์การเล่นเกมที่ราบรื่น
ผลลัพธ์




อุปกรณ์จะหลีกเลี่ยงการร้อนเกินไปและรักษาระดับความร้อนไว้ที่ 1.0
การใช้พลังงาน

ผลการค้นหา ADPF
ผลลัพธ์จาก ADPF ที่เปิดและปิดอยู่จะแสดงในรูปภาพที่แสดงก่อนหน้านี้ แสดงให้เห็นว่าเฟรมเรตของเกมและการใช้พลังงานของแกนประมวลผลแตกต่างกัน อัตราเฟรมจะดีขึ้นสูงสุด 57% เมื่อ ADPF เปิดอยู่ เมื่อ ADPF ปิดอยู่ GPU จะกินไฟเป็นจำนวนมาก จากนั้นแกน CPU หลักจะมีไฟกระชากซึ่งสอดคล้องกับปริมาณงานของ GPU เนื่องจากกำลังประมวลผลตามปริมาณที่ระบบขอให้ดำเนินการ เมื่อ ADPF เปิดอยู่ แกน CPU หลักจะตอบสนองต่อการจำกัดและลดการสิ้นเปลืองพลังงานโดยรวมของแกนทั้งหมดในอุปกรณ์
บทสรุป
ADPF ช่วยประหยัดพลังงานของเกมได้อย่างมาก ซึ่งท้ายที่สุดแล้วจะทำให้เกมเมอร์เล่นได้นานขึ้น รวมถึงอายุการใช้งานแบตเตอรี่ที่ดีขึ้นและอุณหภูมิของอุปกรณ์ที่ต่ำลง จากมุมมองของนักพัฒนาแอป ADPF จะรักษาอัตราเฟรมที่ถูกต้องของเกม ขณะเดียวกันก็มอบความยืดหยุ่นในการลดการตั้งค่าคุณภาพและยังคงมอบประสบการณ์การเล่นเกมที่ยอดเยี่ยมให้แก่ผู้ใช้
อุปกรณ์ทั้งใหม่และเก่าจะได้รับประโยชน์จากการใช้ ADPF ซึ่งช่วยให้เกมทำงานได้ตามมาตรฐานที่สูงในอุปกรณ์รุ่นก่อนๆ โดยไม่ต้องทำการเพิ่มประสิทธิภาพเพิ่มเติม