Nai
Lt. Commander
- Registriert
- Aug. 2012
- Beiträge
- 1.580
Ich zitiere mich dazu mal selbst:
Des Weiteren läuft bei dem Link etwas schief; die GPU-Utilization sagt nicht aus, ob oder in wie weit die GPU auf Speicherzugriffe wartet. Selbst wenn man komplett Speicherbandbreiten limitiert ist, kann man eine Utilization von 100 Prozent bekommen. Dh bei einer niedrigen Utilization muss das andere Gründe haben.
Ok eine etwas ausführlichere und vereinfachtere Begründung dafür, weshalb die Speicherbandbreite von der Texturauflösung weitestgehend unabhängig ist:
Die GPU erstellt sich für jede Textur eine sogenannte Mipmap. Dabei handelt es sich um verkleinerte Versionen der Textur (z.B. bei einer 256 auf 256 Textur würde die GPU durch Herunterskalieren 128 x 128, 64 x 64, 32 x 32, 16 x 16, 8x8, 4x4, 2x2 und 1x1er Texturen als Mipmap Level erzeugen. )
Beim Zeichenvorgang greift die GPU dann, wenn die Textur weiter von der Kamera entfernt ist was der häufigste Fall sein sollte, nicht mehr direkt auf die Textur sondern nur noch auf die Mipmap zu. So wählt die GPU dann für jeden Pixel den entsprechenden Mipmap Level aus, so dass zwei benachbarte Pixel auf dem Bildschirm in etwa auf zwei benachbarte Texel der Textur zugreifen. Diejenige Mipmap-Größe, die GPU an einer Stelle auf dem Bildschirm beim Zeichenvorgang auswählt ist unabhängig von der eigentlichen Texturauflösung. Da nur die Mipmap gelesen werden muss, ist ebenfalls die benötigte Speicherbandbreite unabhängig von der Texturauflösung. Erst wenn die Texturen der Kamera zu nahe kommen gibt es Unterschiede in der Speicherbandbreite, was allerdings der weniger häufige Fall sein sollte.
Des Weiteren läuft bei dem Link etwas schief; die GPU-Utilization sagt nicht aus, ob oder in wie weit die GPU auf Speicherzugriffe wartet. Selbst wenn man komplett Speicherbandbreiten limitiert ist, kann man eine Utilization von 100 Prozent bekommen. Dh bei einer niedrigen Utilization muss das andere Gründe haben.