يمكن أن يكون معدّل نقل البيانات للذاكرة لبيانات رأس الشاشة معوقًا محتملاً لأداء وحدة معالجة الرسومات في لعبتك. هناك بعض العدّادات في الملف الشخصي لنظام AGI والتي يمكن أن تساعد في تشخيص مشاكل معدّل نقل بيانات الذاكرة الرأسي.
عدّادات Qualcomm Adreno
على الأجهزة المزوّدة بوحدات معالجة الرسومات Qualcomm Adreno، تشمل بعض الشاشات البارزة ما يلي:
عرض مضاد | الوصف |
---|---|
قراءة بيانات Vertex | عرض نطاق بيانات الرأس التي تتم قراءتها من الذاكرة الخارجية. |
متوسط وحدات البايت/Vertex | متوسط حجم بيانات الرأس، بالبايت. |
% Vertex Fetch Stall | النسبة المئوية لدورات الساعة التي تم فيها حظر وحدة معالجة الرسومات في بيانات الرأس |
عدّادات ARM مالي (قيد الإعداد)
على الأجهزة التي تحتوي على وحدات معالجة الرسومات ARM Mali، تشمل بعض الشاشات البارزة ما يلي:
عرض مضاد | الوصف |
---|---|
تحميل/تخزين الإيقاعات من الذاكرة الخارجية | تتم قراءة نبضات البيانات من الذاكرة الخارجية عن طريق وحدة التحميل/المخزن، محسوبًا بمتوسط عدد نبضات البيانات على نوى أداة التظليل. |
تحميل/تخزين إيقاعات القراءة من ذاكرة التخزين المؤقت L2 | تتم قراءة نبضات البيانات من ذاكرة التخزين المؤقت L2 عن طريق وحدة التحميل/المخزن، مع حساب متوسط البيانات على نوى أداة التظليل. |
[المزيد] |
لحساب معدل نقل البيانات الإجمالي من متوسط نبضات القراءة، يتم ضرب قيمة العدّاد في عرض الناقل (عادةً 16 بايت) وفي العدد الإجمالي لنوى أداة التظليل. [المزيد]
تحليل مضاد
لقياس سلوك هذه العدّادات، يمكنك قياس متوسط وذروة معدل نقل البيانات على مدار إطار واحد لوحدة معالجة الرسومات، ويمكن تحديد ذلك من خلال مجموعة متجاورة من استخدام وحدة معالجة الرسومات.
![معدل نقل البيانات للقراءة في ذاكرة Vertex لإطار واحد، بمتوسط قيمة يبلغ 327 ميغابايت في الثانية وقيمة قصوى تبلغ 1.16 غيغابايت في الثانية](https://developer.android.com/static/images/agi/vertex-memory-bw-images/sample_vert_bw.png?authuser=9&hl=ar)
ننصح باستخدام ألا يزيد معدل نقل بيانات القراءة في الذاكرة الرأسية عن 1.5 غيغابايت، وبمتوسط معدل نقل بيانات لا يزيد عن 500 ميغابايت في الثانية. تشير القيم الأعلى إلى إحدى المشاكل الشائعة القليلة التالية:
- حجم Vertex كبير جدًا: قد تحتوي الرؤوس على سمات رأس كبيرة أو عدد كبير من سمات الرأس، ما يؤثر في وقت تظليل الرأس بشكل كبير.
- لا يتم تقسيم ساحات مشاركات سمات Vertex: يتم تضمين سمات Vertex في مخزن مؤقت واحد، ما يقلّل من كفاءة ذاكرة التخزين المؤقت.
- تم إرسال عدد كبير جدًا من الرؤوس لكل إطار: قد تشغل الطُرز المعقدة و/أو عددًا كبيرًا من الطُرز نطاقًا تردديًا أكبر ويستغرق تظليلها وقتًا أطول.
يمكن أيضًا تشخيص مشاكل حجم Vertex من خلال مسار متوسط وحدات البايت / Vertex، الذي ننصح ألا يزيد حجمه عن 32 بايت أو رأس.
![متوسط حجم الرأس لإطار واحد، بمتوسط قيمة 31.3 بايت](https://developer.android.com/static/images/agi/vertex-memory-bw-images/sample_bytes_per_vert.png?authuser=9&hl=ar)
إنّ أفضل طريقة لتشخيص هذه المشاكل التي قد تواجهها هي من خلال تتبُّع بيانات الملف الشخصي للإطار من أجل تحليل تنسيقات الرأس.