แบนด์วิดท์ของหน่วยความจำของข้อมูลเท็กซ์เจอร์อาจเป็นจุดคอขวดที่อาจเกิดขึ้นสำหรับประสิทธิภาพ GPU ของแอป โปรไฟล์ระบบ AGI มีตัวนับบางอย่างที่ช่วยวินิจฉัยปัญหาแบนด์วิดท์ของหน่วยความจำเท็กซ์เจอร์ได้
เคาน์เตอร์ Qualcomm Adreno
ในอุปกรณ์ที่มี GPU ของ Qualcomm Adreno ตัวนับที่สำคัญบางรายการ ได้แก่
ตัวนับ | คำอธิบาย |
---|---|
แบนด์วิดท์การอ่านหน่วยความจำของพื้นผิว (ไบต์/วินาที) | แบนด์วิดท์ของข้อมูลพื้นผิวที่อ่านจากหน่วยความจำภายนอก |
% ไม่พบพื้นผิว L1 | แคช L1 ไม่พบจากการดึงข้อมูลพื้นผิว |
% พื้นผิวที่ไม่ใช่ระดับฐาน | เปอร์เซ็นต์ของการดึงข้อมูลเท็กซ์เจอร์ที่เป็นมิปแมป |
% กรองแบบแอนไอโซทรอปิก | เปอร์เซ็นต์ของเทกเซลที่กรองแบบแอนไอโซทรอปิก |
เคาน์เตอร์ ARM Mali
ในอุปกรณ์ที่มี GPU ของ ARM Mali ตัวนับที่สำคัญบางรายการ ได้แก่
ตัวนับ | คำอธิบาย |
---|---|
การอ่านพื้นผิวจากหน่วยความจำภายนอก | ข้อมูลบีตที่อ่านจากหน่วยความจำภายนอกโดยหน่วยประมวลผลพื้นผิวจะเฉลี่ยในแกนของ Shader |
การอ่านเท็กซ์เจอร์จากแคช L2 | ข้อมูลที่อ่านจากแคช L2 โดยหน่วยประมวลผลเท็กซ์เจอร์ โดยเฉลี่ยในแกน Shader |
[เพิ่มเติม] |
หากต้องการคำนวณแบนด์วิดท์โดยรวมจากอัตราการอ่านเฉลี่ย ให้นำค่าตัวนับไปคูณกับความกว้างของบัส (โดยปกติคือ 16 ไบต์) และคูณด้วยจำนวน Shader Core ทั้งหมด
การวิเคราะห์การโต้แย้ง
หากต้องการวัดพฤติกรรมของตัวนับเหล่านี้ ให้วัดแบนด์วิดท์เฉลี่ยและสูงสุด ตลอดทั้งเฟรม GPU เดียว จากนั้นให้ระบุด้วยบล็อกการใช้งาน GPU ที่ต่อเนื่องกัน

เราขอแนะนำให้แบนด์วิดท์การอ่านหน่วยความจำของเท็กซ์เจอร์โดยเฉลี่ยไม่เกิน 1 GBps และแบนด์วิดท์สูงสุดไม่เกิน 3 GBps การพลาดแคช L1 ของเท็กซ์เจอร์ก็ไม่ควรสูงกว่า 10% ค่าที่สูงขึ้นสำหรับแบนด์วิดท์หรือแคช L1 อาจเป็นตัวบ่งชี้ปัญหาเกี่ยวกับพื้นผิวที่ลึกกว่า ซึ่งรวมถึง
- พื้นผิวมีขนาดใหญ่เกินไป: พื้นผิวขนาดใหญ่จะทำให้ขนาดแพ็กเกจของคุณใหญ่ขึ้น มีราคาแพงกว่า และอาจลดประสิทธิภาพของแคช
- พื้นผิวไม่ได้บีบอัด: โทรศัพท์ Android ทุกรุ่นรองรับการบีบอัดพื้นผิวบางประเภท ไม่ว่าจะเป็น ETC1 หรือ ASTC ควรบีบอัดพื้นผิวเพื่อลดขนาดแพ็กเกจและลดแบนด์วิดท์ของพื้นผิว
- อื่นๆ: ควรพิจารณาข้อกังวลอื่นๆ เกี่ยวกับพื้นผิว เช่น พื้นผิวแบบยกกำลัง 2, Mipmapping, Anisotropic Filtering และอื่นๆ คุณอาจสังเกตเห็นบางรายการจากโปรไฟล์ระบบตามที่อธิบายไว้ด้านล่าง ในขณะที่รายการอื่นๆ อาจต้องมีการตรวจสอบอย่างละเอียด
สำหรับเกมสามมิติที่มีกล้องอิสระ ชิ้นงานพื้นผิวควรใช้ Mipmapping เพื่อให้วัตถุที่อยู่ไกลจากกล้องมีแบนด์วิดท์ของหน่วยความจำลดลง ประสิทธิภาพแคชพื้นผิวดีขึ้น และคุณภาพของรูปภาพดีขึ้น สำหรับอุปกรณ์ที่ใช้ GPU ของ Qualcomm Adreno ตัวนับ % เท็กซ์เจอร์ที่ไม่ใช่ระดับฐานที่ต่ำกว่า 10% โดยเฉลี่ยอาจบ่งบอกว่าไม่มีการสร้าง MIP Map ที่เพียงพอ

อีกสิ่งที่ควรพิจารณาคือการใช้การกรองแบบแอนไอโซทรอปิก ซึ่งอธิบายโดยตัวนับ % กรองแบบแอนไอโซทรอปิก สำหรับ GPU ของ Qualcomm Adreno สำหรับสัดส่วนของเท็กเซลที่กรองแบบแอนไอโซทรอปิก แม้ว่าการตั้งค่านี้อาจปรับปรุงคุณภาพของภาพสำหรับเกมบางเกม แต่ก็อาจมีค่าใช้จ่ายสูงมาก และควรพิจารณาการใช้งานเทียบกับต้นทุนด้านประสิทธิภาพของ GPU

วิธีที่ดีที่สุดในการวินิจฉัยปัญหาที่เฉพาะเจาะจงมากขึ้นคือการใช้การติดตามโปรไฟล์เฟรมเพื่อวิเคราะห์ชิ้นงานพื้นผิว