Saya pikir banyak jawaban kehilangan satu poin penting: Anda dapat menulis aplikasi yang mengakses perangkat keras secara langsung, tetapi tidak pada sistem operasi modern . Ini bukan hanya masalah waktu, tetapi masalah "Anda tidak punya pilihan".
Windows, Linux, OSX, dll. Semua melarang akses perangkat keras langsung ke aplikasi yang sewenang-wenang. Ini penting untuk alasan keamanan: Anda tidak ingin aplikasi acak dapat membaca memori GPU yang sewenang-wenang karena alasan yang sama Anda tidak ingin aplikasi acak dapat membaca memori sistem. Hal-hal seperti framebuffer untuk rekening bank Anda atau yang lainnya tinggal di memori GPU. Anda ingin hal itu terisolasi dan dilindungi dan akses dikendalikan oleh OS Anda.
Hanya driver yang dapat berbicara langsung dengan sebagian besar perangkat keras, dan satu-satunya cara untuk berbicara dengan pengemudi adalah melalui OS HAL yang terbuka dan antarmuka masing-masing driver yang tidak kompatibel. Antarmuka driver itu tidak hanya akan berbeda untuk setiap vendor tetapi bahkan akan berbeda antara versi driver itu sendiri, sehingga hampir tidak mungkin untuk berbicara langsung ke antarmuka dalam aplikasi konsumen. Lapisan-lapisan ini sering ditutupi oleh kontrol akses yang semakin membatasi kemampuan aplikasi untuk mengaksesnya.
Jadi tidak, game Anda tidak bisa hanya menggunakan perangkat keras secara langsung, kecuali tentu saja Anda hanya menargetkan sistem operasi yang tidak aman seperti DOS, dan satu-satunya pilihan Anda yang layak untuk sebuah game pada sistem operasi konsumen modern adalah menargetkan API publik seperti DirectX, OpenGL atau Vulkan.