Ich denke, dass viele der Antworten einen wichtigen Punkt übersehen: Sie können Apps schreiben, die direkt auf Hardware zugreifen, aber nicht auf modernen Betriebssystemen . Es ist nicht nur ein Zeitproblem, sondern ein Problem "Sie haben keine Wahl".
Windows, Linux, OSX usw. verbieten den direkten Hardwarezugriff auf beliebige Anwendungen. Dies ist aus Sicherheitsgründen wichtig: Sie möchten, dass keine zufällige App beliebigen GPU-Speicher aus dem gleichen Grund lesen kann, wie Sie möchten, dass keine zufällige App Systemspeicher lesen kann. Dinge wie der Framebuffer für Ihr Bankkonto oder was nicht im GPU-Speicher vorhanden ist. Sie möchten, dass das Zeug von Ihrem Betriebssystem isoliert und geschützt und der Zugriff kontrolliert wird.
Nur Treiber können direkt mit der meisten Hardware kommunizieren. Die einzige Möglichkeit, mit dem Treiber zu kommunizieren, besteht in der offengelegten HAL des Betriebssystems und der proprietären und inkompatiblen Schnittstelle jedes Treibers. Diese Treiberschnittstelle ist nicht nur für jeden Hersteller unterschiedlich, sondern auch für jede Version des Treibers selbst. Dadurch ist es nahezu unmöglich, direkt mit der Schnittstelle in einer Consumer-Anwendung zu kommunizieren. Diese Ebenen werden häufig von Zugriffssteuerungen abgedeckt, die den Zugriff für eine Anwendung weiter einschränken.
Nein, Ihr Spiel kann die Hardware nicht einfach direkt verwenden, es sei denn, Sie zielen natürlich nur auf unsichere Betriebssysteme wie DOS ab, und Ihre einzige machbare Option für ein Spiel auf modernen Consumer-Betriebssystemen besteht darin, auf eine öffentliche API wie DirectX, OpenGL oder zuzugreifen Vulkan.