1) Was ist Vulkan?
Vulkan wurde am 16.2.2016 von der KHRONOS Group veröffentlicht.
Es ist eine plattformunabhängige Grafikschnittstelle (API).
Technisch gesehen, ist diese API ähnlich zu DX12.
Ziel bei beiden ist es unter anderem, den Treiber-Overhead zu minimieren und dadurch die CPU zu entlasten bzw. die Last besser auf die Cores zu verteilen, sodass mehr DrawCalls an die GPU möglich sind.
Was ist ein DrawCall
Draw Calls stellen Befehle dar, die von einer Engine an die Grafikkarte zum Berechnen eines Objekts geschickt werden, sodass das letztendliche Bild auf dem Monitor entsteht. Da jeder Draw Call die Weiterarbeit der CPU unterbricht, geben AMD wie Nvidia den Entwicklern seit langem den Rat, Draw Calls möglichst in Gruppen zusammen zu fassen - das wäre das Batching, eine Stapelverarbeitung. Da Low-Level-APIs, wie sie auch bei Konsolen zum Einsatz kommen, auf die jeweilige Hardware zugeschnitten sind, können die Befehle dort wesentlich effizienter vonstattengehen, als es aktuell mit DirectX auf PCs möglich ist.
Quelle: PC-Games Hardware
Ein Video, dass diesen Effekt ganz gut zeigt, hatte ich schonmal gepostet:
2) Was brauche ich für Vulkan?
Um Vulkan nutzen zu können braucht man nicht viel.
Damit seid ihr dann schon good to go.
3) Und wie nutze ich das in Dota?
Um Vulkan in Dota zu aktivieren, muss lediglich der DLC für Vulkan installiert werden und '-vulkan' den Launch-Options hinzugefügt werden.
Falls dort bereits '-dx9/11' oder '-opengl' steht, den Eintrag bitte entfernen.
Zusätzlich kann man noch unter Windows '-vconsole' hinzufügen.
In der Konsole müsste man dann etwas von Vulkan lesen können, um sicher zu gehen, dass man jetzt mit Vulkan rendert.
4) Wie ist die Performance in DotA und in anderen Spielen?
Hier ist wohl ersmtal ein großes kommt drauf an.
Auf die CPU, auf die Grafikkarte, auf die Anwendung und vor allem auf die Implementierung der Entwickler, da deren Fehler nicht mehr durch Treiber von Nvidia/Amd optimiert werden können/sollen.
Phoronix hat bereits einen Benchmark unter Linux für Dota2 gemacht und vergleicht dort die OpenGL und die Vulkan API mit verschiedenen AMD und Nvidia Grafikkarten.
Für Windows hab ich jetzt auf die Schnelle nur den Test von computerbase gefunden.
Der zeigt zwar, dass Vulkan schneller ist als Dx11, aber DX11 ist laut Valve auch deren "schlechtester" Renderer.
Ein Vergleich mit DX9 wäre wohl noch ganz spannend.
Edit: Pimpmuckl hat wohl einige Benchmarks gemacht und das ganze in einem Video veröffentlicht.
Ansonsten gilt: Je mehr DrawCalls gemacht werden müssen, desto effizienter sollte sich Vulkan darstellen.
5) Was sagen Entwickler zu Vulkan?
Wen das interessiert, der kann sich hier mal einlesen:
arsentuf.me/2016/05/31/hatchit-postmortem/
tldr aus dem blog
Major takeaways
Also known as the tl;dr
Falls ihr noch Fragen habt, kann ich sie gern versuchen zu beantworten.
Vulkan wurde am 16.2.2016 von der KHRONOS Group veröffentlicht.
Es ist eine plattformunabhängige Grafikschnittstelle (API).
Technisch gesehen, ist diese API ähnlich zu DX12.
Ziel bei beiden ist es unter anderem, den Treiber-Overhead zu minimieren und dadurch die CPU zu entlasten bzw. die Last besser auf die Cores zu verteilen, sodass mehr DrawCalls an die GPU möglich sind.
Draw Calls stellen Befehle dar, die von einer Engine an die Grafikkarte zum Berechnen eines Objekts geschickt werden, sodass das letztendliche Bild auf dem Monitor entsteht. Da jeder Draw Call die Weiterarbeit der CPU unterbricht, geben AMD wie Nvidia den Entwicklern seit langem den Rat, Draw Calls möglichst in Gruppen zusammen zu fassen - das wäre das Batching, eine Stapelverarbeitung. Da Low-Level-APIs, wie sie auch bei Konsolen zum Einsatz kommen, auf die jeweilige Hardware zugeschnitten sind, können die Befehle dort wesentlich effizienter vonstattengehen, als es aktuell mit DirectX auf PCs möglich ist.
Quelle: PC-Games Hardware
Ein Video, dass diesen Effekt ganz gut zeigt, hatte ich schonmal gepostet:
2) Was brauche ich für Vulkan?
Um Vulkan nutzen zu können braucht man nicht viel.
- Einen Computer, der kein Mac ist, da sich Apple wohl dagegen sträubt aus firmenpolitischen Gründen.
- Eine kompatible Grafikkarte. Eine Liste aller unterstützten findet ihr hier: khronos.org/conformance/adopters/conformant-products#vulkan
- Den jeweils aktuellen Grafikkarten - Treiber.
Damit seid ihr dann schon good to go.
3) Und wie nutze ich das in Dota?
Um Vulkan in Dota zu aktivieren, muss lediglich der DLC für Vulkan installiert werden und '-vulkan' den Launch-Options hinzugefügt werden.
Falls dort bereits '-dx9/11' oder '-opengl' steht, den Eintrag bitte entfernen.
Zusätzlich kann man noch unter Windows '-vconsole' hinzufügen.
In der Konsole müsste man dann etwas von Vulkan lesen können, um sicher zu gehen, dass man jetzt mit Vulkan rendert.
4) Wie ist die Performance in DotA und in anderen Spielen?
Hier ist wohl ersmtal ein großes kommt drauf an.
Auf die CPU, auf die Grafikkarte, auf die Anwendung und vor allem auf die Implementierung der Entwickler, da deren Fehler nicht mehr durch Treiber von Nvidia/Amd optimiert werden können/sollen.
Phoronix hat bereits einen Benchmark unter Linux für Dota2 gemacht und vergleicht dort die OpenGL und die Vulkan API mit verschiedenen AMD und Nvidia Grafikkarten.
Für Windows hab ich jetzt auf die Schnelle nur den Test von computerbase gefunden.
Der zeigt zwar, dass Vulkan schneller ist als Dx11, aber DX11 ist laut Valve auch deren "schlechtester" Renderer.
Ein Vergleich mit DX9 wäre wohl noch ganz spannend.
Edit: Pimpmuckl hat wohl einige Benchmarks gemacht und das ganze in einem Video veröffentlicht.
Ansonsten gilt: Je mehr DrawCalls gemacht werden müssen, desto effizienter sollte sich Vulkan darstellen.
5) Was sagen Entwickler zu Vulkan?
Wen das interessiert, der kann sich hier mal einlesen:
arsentuf.me/2016/05/31/hatchit-postmortem/
Major takeaways
Also known as the tl;dr
- Get comfortable with Vulkan; it's here to stay
- Make an awesome build system
- Jump into Multithreading before Vulkan
- Reiterate until you get it right
- Test on every piece of hardware you can get your hands on
- Read the spec and then read it again
- Use SpirV-Cross if you need it; don't reinvent the wheel
Falls ihr noch Fragen habt, kann ich sie gern versuchen zu beantworten.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Aro ()
"I'd only suggest that you try to understand other people. Try to learn empathy"