Die Arbeitsspeicherbandbreite von Vertex-Daten kann ein potenzieller Engpass für die GPU-Leistung Ihres Spiels sein. Es gibt einige Zähler in einem AGI-Systemprofil, die bei der Diagnose von Problemen mit der Vertex-Speicherbandbreite helfen können.
Qualcomm Adreno-Zähler
Auf Geräten mit Qualcomm Adreno-GPUs sind unter anderem folgende Zähler verfügbar:
Zähler | Beschreibung |
---|---|
Vertex Memory Read | Bandbreite der aus dem externen Speicher gelesenen Vertex-Daten. |
Durchschnittliche Byte/Vertex | Durchschnittliche Größe der Vertex-Daten in Byte. |
% Vertex-Abruf-Stall | Prozentsatz der Taktzyklen, in denen die GPU aufgrund von Vertex-Daten blockiert ist. |
ARM Mali-Zähler (WIP)
Auf Geräten mit ARM Mali-GPUs sind unter anderem die folgenden Zähler verfügbar:
Zähler | Beschreibung |
---|---|
Gelesene Beats aus dem externen Speicher laden/dort speichern | Datenbits, die von der Load/Store-Einheit aus dem externen Speicher gelesen werden, gemittelt über die Shader-Cores. |
Lesevorgänge aus dem L2-Cache laden/speichern | Datenbits, die von der Load/Store-Einheit aus dem L2-Cache gelesen werden, gemittelt über die Shader-Cores. |
[Mehr] |
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. [Mehr]
Gegenanalyse
Um das Verhalten dieser Zähler zu messen, können Sie die durchschnittliche und die Spitzenbandbreite im Laufe eines einzelnen GPU-Frames messen, der durch einen zusammenhängenden Block von GPU-Auslastung abgegrenzt werden kann.

Wir empfehlen eine maximale Bandbreite für das Lesen von Vertex-Speicher von höchstens 1, 5 GB/s und eine durchschnittliche Bandbreite von höchstens 500 MB/s. Höhere Werte deuten auf eines von mehreren häufigen Problemen hin:
- Vertexgröße ist zu groß: Knoten können große Knotenattribute oder eine große Anzahl von Knotenattributen haben, was sich auf die Knoten-Shading-Zeit auswirkt.
- Vertex-Attributstreams werden nicht aufgeteilt: Vertex-Attribute werden in einem einzigen Puffer verschachtelt, was die Cache-Effizienz verringert.
- Zu viele Knotenpunkte pro Frame gesendet: Komplexe Modelle und/oder eine große Anzahl von Modellen können mehr Bandbreite beanspruchen und länger zum Rendern benötigen.
Probleme mit der Vertex-Größe können auch über den Track Durchschnittliche Byte pro Vertex diagnostiziert werden. Wir empfehlen, dass dieser Wert nicht höher als 32 Byte oder Vertices ist.

Am besten lässt sich herausfinden, welches dieser Probleme bei Ihnen auftritt, indem Sie einen Frame-Profil-Trace erstellen, um Vertex-Formate zu analysieren.