Creo que muchas de las respuestas pierden un punto importante: puede escribir aplicaciones que accedan directamente al hardware, pero no en los sistemas operativos modernos . No es solo un problema de tiempo, sino un problema de "no tienes otra opción".
Windows, Linux, OSX, etc., prohíben el acceso directo de hardware a aplicaciones arbitrarias. Esto es importante por razones de seguridad: no desea que ninguna aplicación aleatoria pueda leer la memoria arbitraria de la GPU por la misma razón que no desea que ninguna aplicación aleatoria pueda leer la memoria del sistema. Cosas como el framebuffer para su cuenta bancaria o lo que no vive en la memoria de la GPU. Desea que esas cosas estén aisladas y protegidas y su acceso controlado por su sistema operativo
Solo los controladores pueden hablar directamente con la mayoría del hardware, y la única forma de hablar con el controlador es a través del HAL expuesto del sistema operativo y la interfaz exclusiva e incompatible de cada controlador. Esa interfaz de controlador no solo será diferente para cada proveedor, sino que incluso diferirá entre las versiones del controlador, lo que hace que sea casi imposible hablar directamente con la interfaz en una aplicación de consumidor. Estas capas a menudo están cubiertas por controles de acceso que restringen aún más la capacidad de una aplicación para acceder a ellas.
Entonces, no, su juego no puede usar el hardware directamente, a menos que, por supuesto, solo se dirija a sistemas operativos inseguros como DOS, y su única opción factible para un juego en sistemas operativos de consumo modernos es apuntar a una API pública como DirectX, OpenGL o Vulkan