NEW STATE Mobile ลดการใช้งาน GPU ลง 22% ด้วยเครื่องมือตรวจสอบ GPU ของ Android

ฉากหลัง

NEW STATE Mobile เป็นเกมแบตเทิลรอยัลจาก Krafton ที่เปิดตัวไปทั่วโลกเมื่อเดือนพฤศจิกายน 2021 และได้รับการดาวน์โหลดกว่า 45 ล้านครั้งในเดือนแรกของการเปิดตัว KRAFTON, Inc. เป็นกลุ่มสตูดิโอพัฒนาเกมอิสระที่รวมตัวกันเพื่อสร้างประสบการณ์ความบันเทิงที่แปลกใหม่และน่าสนใจให้แก่เกมเมอร์ทั่วโลก บริษัทประกอบด้วย PUBG Studios, Bluehole Studio, Striking Distance Studios, RisingWings, Dreamotion และ Unknown Worlds ซึ่งแต่ละบริษัทมีความเชี่ยวชาญเฉพาะตัว NEW STATE Mobile สร้างขึ้นด้วย Unreal Engine 4 และเราได้พยายามหลายวิธีเพื่อลดความร้อนและการสิ้นเปลืองแบตเตอรี่ที่เกิดจากการใช้งาน GPU สูงจากฟีเจอร์การเล่นเกมที่โดดเด่น

เกมเมอร์สามารถเล่นเกมการต่อสู้ระยะไกลได้ เครื่องยนต์ของเกมจึงต้องแสดงผลฉากจากระยะไกลได้ นอกจากนี้ ยังมีพืชพันธุ์จำนวนมากในสนามรบ ซึ่งทำให้การวาดภาพพืชพันธุ์เหล่านี้มากเกินไปส่งผลต่อประสิทธิภาพที่ลดลงอย่างมาก ด้วยเหตุนี้ ทีมจึงพัฒนา Android GPU Inspector (AGI) เพื่อช่วยเพิ่มประสิทธิภาพการใช้ GPU ของเกมและขจัดปัญหาคอขวด

ภาพหน้าจอจาก NEW STATE Mobile

รูปที่ 1: ภาพหน้าจอจาก NEW STATE Mobile

สิ่งที่พวกเขาทำ

NEW STATE Mobile ใช้ AGI เพื่อเข้าถึงข้อมูลตัวนับ GPU จำนวนมากและเพิ่มประสิทธิภาพการใช้ GPU ให้เหมาะสม พวกเขาระบุการผ่านการแสดงผลที่ไม่จำเป็นด้วยความช่วยเหลือของข้อมูลการโปรไฟล์กิจกรรม GPU ที่ AGI มีให้ หลังจากระบุกลุ่มที่ใช้แบนด์วิดท์หน่วยความจำและ GPU แล้ว ทีมตรวจสอบความคืบหน้าของการเพิ่มประสิทธิภาพโดยใช้ตัวนับ GPU และกิจกรรม GPU อย่างต่อเนื่องเพื่อดูว่ากำลังเดินไปในทิศทางที่ถูกต้องหรือไม่

ภาพหน้าจอจาก NEW STATE Mobile

รูปที่ 2: ภาพหน้าจอจาก NEW STATE Mobile

ต่อไปนี้คือสิ่งที่ทีมได้เรียนรู้เกี่ยวกับประสิทธิภาพของเกมโดยใช้ AGI

  • การเพิ่มประสิทธิภาพการผ่านฐาน: การแสดงผลภาพระดับความลึกล่วงหน้า ซึ่งเป็นเทคโนโลยีที่เพิ่มการใช้งาน Early-z ช่วยลดการใช้การแรเงาเศษ การแสดงผลภาพล่วงหน้าแบบใช้ข้อมูลความลึกมีไว้สำหรับ LOD0 โดยเฉพาะ ซึ่งกินพื้นที่หน้าจอส่วนใหญ่ จึงช่วยลดภาระที่อาจเกิดขึ้นจากการเรียกใช้การวาดเพิ่มเติม นอกจากนี้ การใช้รูปแบบสีฉาก 32 บิตยังช่วยเพิ่มประสิทธิภาพของทั้งการผ่านการแสดงผลได้อีกด้วย รูปแบบ SceneColor เริ่มต้นของ UnrealEngine4 คือ FloatRGBA ซึ่งเป็น 64 บิต หากใช้รูปแบบ 32 บิต แบนด์วิดท์ของหน่วยความจําจะลดลงครึ่งหนึ่ง

  • ผลกระทบที่วัดได้: หลังจากใช้การผ่านข้อมูลล่วงหน้าของภาพความลึก การใช้งาน GPU ลดลง 7.5% เนื่องจากการผ่านข้อมูลล่วงหน้าเกี่ยวกับความลึก อาจมีเศษเสี้ยวจำนวนมากขึ้นที่ใช้ Early-Z อัตราเวลาที่ต้องใช้สำหรับการแรเงาเศษลดลง 2% การใช้ GPU ลดลง 5.3% เมื่อใช้รูปแบบสีฉาก 32 บิต Shaders Busy ลดลง 2% และการอ่าน GPU ทั้งหมดจากหน่วยความจำระบบลดลง 330 MB/วินาที ปริมาณที่ GPU เขียนลงในหน่วยความจำระบบลดลง 78 MB/วินาที และการอ่านหน่วยความจำพื้นผิวก็ลดลง 43 MB/วินาทีด้วย

  • การเพิ่มประสิทธิภาพการพาสเงา: เมื่อใช้เมชเป็นตัวสร้างเงา การใช้ LOD ของรูปหลายเหลี่ยมสูงจะไม่ส่งผลต่อคุณภาพมากนัก เราขอแนะนำให้ใช้ LOD รูปหลายเหลี่ยมต่ำซึ่งจะช่วยลดความซับซ้อนของรูปสามเหลี่ยม ใน Unreal Engine 4 คุณสามารถใช้ LOD แบบรูปหลายเหลี่ยมต่ำผ่านคำสั่งคอนโซล "ForceLODShadow"

  • ผลกระทบที่วัดได้: จำนวนสามเหลี่ยมที่ใช้สำหรับเงาลดลงประมาณ 120,000 รายการ ข้อมูลเคาน์เตอร์ GPU ใน AGI แสดงให้เห็นว่าการใช้งาน GPU ลดลงประมาณ 2%, ปริมาณหน่วยความจำ GPU ที่อ่านจากหน่วยความจำระบบลดลง 130 MB/วินาที และปริมาณที่เขียนจาก GPU ไปยังหน่วยความจำระบบลดลงประมาณ 23 MB/วินาที

  • การสร้างอินสแตนซ์อัตโนมัติ: การสร้างอินสแตนซ์อัตโนมัติซึ่งใช้ได้กับทั้งการเพิ่มประสิทธิภาพของ Shadow Pass และ Base Pass ช่วยให้คุณผสานคําสั่งแสดงผลเดียวกันที่รันไทม์ แล้วแสดงผลพร้อมกันทั้งหมดได้ ซึ่งช่วยให้ NEWSTATE mobile ใช้การจัดแสงโดยรวมกับวัตถุแต่ละชิ้นได้โดยไม่สูญเสียประสิทธิภาพ การสร้างอินสแตนซ์อัตโนมัติเป็นฟีเจอร์พื้นฐานที่ UnrealEngine4 มีให้

  • ผลกระทบที่วัดได้: การเรียกใช้การวาดลดลง 500 ครั้ง ซึ่งช่วยลดการเรียกใช้การวาดประมาณ 48% การใช้งาน GPU ลดลงประมาณ 3.5% การวัดเหล่านี้ดำเนินการโดยใช้ OpenGL

ข้อมูลภายในที่แสดงการลดการใช้งาน GPU

รูปที่ 3: ข้อมูลภายในที่แสดงการลดการใช้งาน GPU

ผลลัพธ์

เมื่อใช้ AGI ทาง NEW STATE Mobile ได้ลดการใช้งาน GPU ลง 22% จากการเพิ่มประสิทธิภาพของการแสดงผลภาพล่วงหน้าแบบความลึกและการแสดงผลเงา การใช้ GPU ลดลง 19% และ 3% ตามลำดับ การเรียกใช้การวาดและหน่วยความจําทั้งหมดที่ GPU อ่านและเขียนจากหน่วยความจําของระบบก็ลดลงอย่างมากเช่นกัน

เริ่มต้นใช้งาน

ดูวิธีวิเคราะห์ผลกระทบของเกมในอุปกรณ์ Android โดยระบุปัญหาด้านประสิทธิภาพและส่วนที่ต้องเพิ่มประสิทธิภาพด้วย Android GPU Inspector (AGI)