Die Speicherbandbreite von Vertex-Daten kann ein potenzieller Engpass für die GPU-Leistung Ihres Spiels sein. In einem AGI-Systemprofil gibt es einige Zähler, mit denen sich Probleme mit der Speicherbandbreite von Vertex-Daten diagnostizieren lassen.
Qualcomm Adreno-Zähler
Auf Geräten mit Qualcomm Adreno-GPUs sind einige bemerkenswerte Zähler:
| Zähler | Beschreibung |
|---|---|
| Vertex Memory Read | Bandbreite der Vertex-Daten, die aus dem externen Speicher gelesen werden. |
| Average Bytes/Vertex | Durchschnittliche Größe der Vertex-Daten in Byte. |
| % Vertex Fetch Stall | Prozentsatz der Taktzyklen, in denen die GPU durch Vertex-Daten blockiert wird. |
ARM Mali-Zähler (in Arbeit)
Auf Geräten mit ARM Mali-GPUs sind einige bemerkenswerte Zähler:
| Zähler | Beschreibung |
|---|---|
| Load/store read beats from external memory | Daten-Beats, die von der Load/Store-Einheit aus dem externen Speicher gelesen werden, gemittelt über die Shader-Cores. |
| Load/store read beats from L2 cache | Daten-Beats, die von der Load/Store-Einheit aus dem L2-Cache gelesen werden, gemittelt über die Shader-Cores. |
| [Weitere Informationen] |
Um die Gesamtbandbreite aus den durchschnittlichen Lesevorgängen zu berechnen, wird der Zählerwert mit der Busbreite (in der Regel 16 Byte) und der Gesamtzahl der Shader-Cores multipliziert. [Weitere Informationen]
Zähleranalyse
Um das Verhalten dieser Zähler zu messen, können Sie die durchschnittliche und maximale Bandbreite im Verlauf eines einzelnen GPU-Frames messen. Dieser kann mit einem zusammenhängenden Block von GPU-Auslastung abgegrenzt werden.
Wir empfehlen eine maximale Bandbreite für das Lesen von Vertex-Daten von höchstens 1, 5 GB/s und eine durchschnittliche Bandbreite von höchstens 500 MB/s. Höhere Werte sind Anzeichen für eines der folgenden häufigen Probleme:
- Vertex-Größe ist zu groß: Vertices können große Vertex-Attribute oder eine große Anzahl von Vertex-Attributen haben, was sich erheblich auf die Vertex-Shading-Zeit auswirkt.
- Vertex-Attributstreams sind nicht aufgeteilt: Vertex-Attribute sind in einem einzigen Puffer verschachtelt, was die Cache-Effizienz verringert.
- Zu viele Vertices pro Frame gesendet: Komplexe Modelle und/oder eine große Anzahl von Modellen können mehr Bandbreite beanspruchen und länger für das Shading benötigen.
Probleme mit der Vertex-Größe können auch über den Track Average Bytes / Vertex diagnostiziert werden. Wir empfehlen, dass dieser Wert nicht höher als 32 Byte oder Vertices ist.
Die beste Möglichkeit, um zu diagnostizieren, welches dieser Probleme bei Ihnen vorliegt, ist eine Frame-Profil-Trace zu erstellen, um Vertex-Formate zu analysieren.