Funktion von Vertex Units

Hallo Leute,

ich habe eine MSI Geforce 6800 LE und habe im Internet gelesen wie man ein paar deaktiviere Pipelines (oder so) aktivieren kann um die Leistung zu erhöhen. Hat auch wunderbar funktioniert bis auf alle Vertex Units konnte ich alles andere aktivieren. Beim Benchmark 2003 habe ich ca 2345 Punkte mehr als ohne die aktivierten Pixel Units. Ich habe auch mal die Vertex Units aktiviert, jedoch bekam ich durch einen Grafikfehler bei Schatten und beim anderen bekam ich bei neueren Spielen immer nen Blackscreen (Monitor schwarz, Festplatte keine Signale mehr,…) und beim Benchmark bekam ich gerade mal ca 200 Punkte mehr.

Lange Rede kurzer Sinn: Für was sind die Vertex Units da? Wurden die bei meinem älteren Benchmark nur nicht ausgenutzt und deshalb nur so wenig Punkte gut gemacht? Oder sind die allgemein nicht die Leistungsbringer?

MFG

Hallo,

Lange Rede kurzer Sinn: Für was sind die Vertex Units da?

http://de.wikipedia.org/wiki/Shader
Hardware-Shader
„dienen Vertex-Shader der geometrischen Berechnungen und dynamischen Veränderungen von Objekten.“

Wurden die bei meinem älteren Benchmark nur nicht ausgenutzt
und deshalb nur so wenig Punkte gut gemacht? Oder sind die
allgemein nicht die Leistungsbringer?

MFG

mfg
W.

Beim Benchmark 2003 habe ich ca 2345 Punkte mehr
als ohne die aktivierten Pixel Units.

Meinst du zufällig 3DMark 03? ^^

Ich habe auch mal die
Vertex Units aktiviert, jedoch bekam ich durch einen
Grafikfehler bei Schatten und beim anderen bekam ich bei
neueren Spielen immer nen Blackscreen (Monitor schwarz,
Festplatte keine Signale mehr,…) und beim Benchmark bekam
ich gerade mal ca 200 Punkte mehr.

Vermutlich wird da wohl eine Vertexeinheit nicht richtig funktionieren, was auch der Grund war, die entsprechenden Pipes abzuschalten.

Lange Rede kurzer Sinn: Für was sind die Vertex Units da?

Vertexshader berechnen Oberflächeneffekte anhand von Gitterpunkten. Das ganze 3D-Bild ist ja quasi ein Gitternetzmodell aus einzelnen Polygonen, deren Eckpunkte Vertices genannt werden. So kann man über die Ecken eines Polygons z.B. einen Helligkeitsverlauf dieser kompletten Fläche festlegen.
Nach den Vertexshadern dürfen dann die Pixelshader ran, die im Gegensatz zu den Vertexshadern bildpunktbasiert arbeiten und eine ganze Menge Sachen können, wie Oberflächenstrukturen oder Spiegelungen berechnen.

Wurden die bei meinem älteren Benchmark nur nicht ausgenutzt
und deshalb nur so wenig Punkte gut gemacht? Oder sind die
allgemein nicht die Leistungsbringer?

Shader sind programmierbare Recheneinheiten, die auf jeden Fall für DirectX 8 und DirectX 9 zwingend gebraucht werden, so also im 3DMark 03 beim „Nature“-Test (DirectX 8). Bei älteren DirceX 7 - Benchmarks werden AFAIK noch keine Shader verwendet. Ob und wie intensiv die verschiedenen Shader in einem bestimmten Benchmark.Test genutzt werden, hängt immer von dessen Programmierung ab.

LG Jesse

Danke für eure Antwort. Ich versuche es gerade so gut wie möglich zu verstehen :smile:

Meinst du zufällig 3DMark 03? ^^

Ja genau den meine ich :smile:

Ob und wie intensiv die verschiedenen Shader in einem bestimmten Benchmark.Test genutzt werden, hängt immer von dessen Programmierung ab.

Kann ich dann ,theoretisch gesehen, mit nem neueren Benchmark evtl. mehr Leistungsschub durch die Vertexshader sehen, wenn ich diese aktiviere? (was ja leider nicht geht da diese nicht richtig funktionieren)
Kann vielleicht jemand aus Erfahrung sagen ob die Vertexshader auch so leistungsbringend sind wie die Pixelshader?

@ Wolfgang:

Wurden die bei meinem älteren Benchmark nur nicht ausgenutzt
und deshalb nur so wenig Punkte gut gemacht? Oder sind die
allgemein nicht die Leistungsbringer?
MFG

mfg

Ich versteh nicht ganz was du damit sagen willst :smile: . Entweder: ja, die wurden nicht richtig ausgenutzt. Oder: ja, die sind allgemein nicht so der Leistungsbringer. Oder so :smile:

MFG

Ob und wie intensiv die verschiedenen Shader in einem
bestimmten Benchmark.Test genutzt werden, hängt immer von dessen
Programmierung ab.

Kann ich dann ,theoretisch gesehen, mit nem neueren Benchmark
evtl. mehr Leistungsschub durch die Vertexshader sehen, wenn
ich diese aktiviere? (was ja leider nicht geht da diese nicht
richtig funktionieren)

Ja, bei neueren Benchmarks sollte auch von Vertexshadern mehr Gebrauch gemacht werden. Beim 3DMark03 (den ich als teilweisen DirectX8-Benchmark da mal schon dazu zähle) gibt es sogar einen expliziten Vertex Shader - Test (da rennt so eine Trollhorde auf Karo-Fußboden umher).

Kann vielleicht jemand aus Erfahrung sagen ob die Vertexshader
auch so leistungsbringend sind wie die Pixelshader?

Wie schon erwähnt, Vertex- und Pixelshader sind hintereinandergeschaltete Stufen bei der Signalverarbeitung in der GPU. Man kann die verschiedenen Recheneinheiten nicht komplett getrennt betrachten und sagen: Pixelshader bringt soviel und Vertexshader bringt soviel. Beide Einheiten können die Leistung der jeweils anderen limitieren. Das hängt von der Grafik-Programmierung ab. Wenn ein Benchmark wenig Berechnungen mit dem Vertexshader durchführt und den Pixelshader stark belastet (denke, das ist bei aktuellen Games eher der Normalfall), sollte es trotz der deaktivierten Vertex-Einheiten einen größeren Leistungszuwachs beim Freischalten der Pixelshader geben. Müssen die Bilddaten aber erstmal alle aufwendig durch den Vertexshader geschleift werden, bevor sie im Pixelshader texturiert werden, könnten fehlende Vertex-Einheiten schon kräftig Leistung kosten.

Um beurteilen zu können, welche Architektureinheit der GPU in einem bestimmten Anwendungsfall wieviel Leistung bringt, müsste man IMHO:
a) genau die Art und Weise der Bilderzeugung durch die Graphics Engine des Benchmarkprogramms kennen (welche Effekte werden wie erzeugt, welche alternativen Renderpfade gibt es etc.?)
b) genau den Aufbau und die Signalverarbeitungsmöglichkeiten in der entsprechenden Grafikkarte kennen, um zu wissen mit welchen Einheiten sie welche Befehle wie effizient abarbeiten würde
c) genau die Programmierung des verwendeten Grafiktreibers kennen und wissen, wie clever er die entsprechenden Befehle auf der entsprechenden Grafikkarten-Architektur umsetzt

Weil wir das alles nicht wissen können, bringen Überlegungen der Art

ob die Vertexshader
auch so leistungsbringend sind wie die Pixelshader?

für uns Laien gar nichts. Entweder du misst mit einem Benchmark große Unterschiede oder nicht und freust dich darüber oder nicht. *g* Im nächsten Benchmark oder einem bestimmten Spiel kann das schon wieder alles ganz anders aussehen!

Es ist prinzipiell schon eine sehr, sehr große Kunst, Benchmarks hinsichtlich ihrer Aussagekraft bezüglich der Leistungsfähigkeit einer bestimmten Grafikkarte differenziert zu bewerten. Es reicht nicht, einfach nur das Gesamtergebnis zu betrachten und zu sagen: Diese karte hat im 3DMark03 mehr Punkte als die andere, also ist sie stärker. Das ist falsch. Der nächste Benchmark misst was anderes und plötzlich ist die langsamere Karte schneller…

LG Jesse