Grafikkartentreiber - DirectX Nutzung

Cappu-Gino

Ensign
Registriert
Apr. 2008
Beiträge
160
Hallo liebe Community,
da ich nicht 100% sicher bin wo so ein "Off Topic" Thema rein sollte, habe ich es unter die Kategorie Fachgespräche gepackt.

Da ich in letzter Zeit immer häufiger unter die "Oberfläche" von Hard und teilweise Software gegangen bin, interessiert mich ein Thema genauer.
Und zwar wie genau DirectX vom Grafikkartentreiber genutzt wird bzw. in welcher Verbindung diese zueinander stehen.

Wenn ein Spiele Entwickler ein Spiel entwickelt, wird er für Windows früher oder später DirectX nutzen wollen.
Jetzt ist ja DX ne API die Software und Hardware verbindet und verschiedene bereits fertig geschrieben Klassenbibliotheken bereitstellt, damit Entwickler jene nutzen können.
Inwieweit kommt da jetzt der Grafiktreiber ins Spiel? Viele Spiele profitieren ja von neueren Treibern. Dieser müsste ja ebenso direkt die Hardware adressieren können.
Außerdem hört man immer wieder von verschiedenen Engines in Spielen z.B. Frostbite. Inwieweit benötigen jene Engines D3D oder andere Plattformen?

Für gute informative Seiten wäre ich auch dankbar. Ich bin meist bei meiner Recherche auf "direct X installieren" oder "grafiktreiber aktualisieren" gestoßen. Schade eigentlich.
 
I think a lot of the answers miss an important point: you can write apps that access hardware directly, but not on modern operating systems. It's not just a time problem, but a "you don't have a choice" problem.

Windows, Linux, OSX, etc. all ban direct hardware access to arbitrary applications. This is important for security reasons: you don't want any random app to be able to read arbitrary GPU memory for the same reason you don't want any random app to be able to read system memory. Things like the framebuffer for your bank account or whatnot live in GPU memory. You want that stuff isolated and protected and access controlled by your OS.

Only drivers can talk directly to most hardware, and the only way to talk to the driver is via the OS' exposed HAL and each driver's proprietary and incompatible interface. That driver interface will not only be different for each vendor but will even differ between versions of the driver itself, making it near impossible to talk directly to the interface in a consumer application. These layers are often covered by access controls that further restrict the ability for an application to access them.

So no, your game cannot just use the hardware directly, unless of course you're only targeting insecure operating systems like DOS, and your only feasible option for a game on modern consumer operating systems is to target a public API like DirectX, OpenGL or Vulkan.

http://gamedev.stackexchange.com/questions/110104/do-i-really-need-to-use-a-graphics-api

Hoffe das hilft weiter.
 
Nilson schrieb:

Danke für die Antwort!

"..DirectX ermöglicht direkte Zugriffe auf die Hardware des Systems, ohne die Programme von der Hardware abhängig zu machen." @https://de.wikipedia.org/wiki/DirectX#Aufbau_von_DirectX

Deswegen kann ich der Aussage ausm Wiki nichts abverlangen. Wenn Direct X direkt mit der Hardware kommuniziert, wozu brauch ich dann noch einen GPU Treiber?

Ich verstehe das ganze eigtl so:
1. Der Spielentwickler programmiert eine Engine
2. Die Engine kommuniziert bei bestimmten Ereignissen mit der API Direct X und übergibt diesere Befehle bzw. Quellcode.
3. DirectX weiß genau was dieser Quellcode bedeutet und wandelt diesen in seine eigene Sprache um.
4. Der entstandene Quellcode wird dann an den GPU Treiber weitergegeben. (zeitgleich gelangen auch an die CPU bestimmt Befehle)
5. Der GPU Treiber weiß was er mit diesen Befehlen zu tun hat und spricht jetzt direkt mit der Hardware und übermittelt die Daten. (Bei einer besseren Optimierung werden bestimmte Shader Aufgabe sinnvoller verteilt -> mehr FPS)
6. GPU macht was ihr gesagt wird und spuckt die Bilder aus (indem Moment kommen die von der CPU verarbeiteten Befehle und fließen in die Ausgabe mit ein)


Wenn ich falsch liege bitte korrigieren. Irgendwie ist es bei solchen Hardware-Software Geschichten im Netz nie so einfach etwas exaktes für meinen Fall zu finden.

LG Gino
 
Sapphire Forum
Zurück
Oben