Kecepatan adalah alasan paling umum mengapa ini tidak dilakukan. Bahkan Anda dapat melakukan apa yang Anda usulkan, jika Anda membuat sistem operasi Anda sendiri, itu hanya akan sangat lambat karena alasan arsitektur. Jadi anggapan bahwa ini lebih cepat sedikit cacat. Bahkan jika itu akan lebih cepat, itu akan kurang efisien dalam hal pengembangan (seperti peningkatan kecepatan 1% selama 10 kali pekerjaan).
Menyalin data dari CPU ke kartu grafis adalah operasi yang relatif lambat. Semakin sedikit Anda menyalin semakin cepat kecepatan pembaruan Anda. Jadi idealnya Anda memiliki sebagian besar data pada GPU Anda dan hanya memperbarui potongan kecil data. Ada perbedaan besar antara menyalin lebih dari 320x200 piksel dibandingkan dengan 1920x1200 atau lebih. Lihat jumlah piksel yang Anda perlu perbarui tumbuh secara kuadrat ketika sisi tumbuh.
Contoh: Lebih murah memberi tahu GPU untuk memindahkan gambar 10 piksel ke kanan daripada menyalin piksel secara manual ke memori video di lokasi yang berbeda.
Mengapa Anda harus menggunakan API? Hanya karena itu bukan sistem Anda. Sistem operasi tidak memungkinkan Anda untuk melakukan apa pun yang Anda inginkan untuk alasan keamanan. Kedua, karena sistem operasi perlu memisahkan perangkat keras, bahkan OS sedang berbicara dengan driver melalui beberapa sistem yang disarikan, sebuah API jika Anda mau.
Bahkan saya akan menilai kemungkinan bahwa sistem Anda akan lebih cepat, jika Anda hanya melakukan semua pekerjaan sendiri, hampir mendekati nol. Ini seperti membandingkan C dan perakitan. Tentu Anda dapat menulis assembly, tetapi kompiler cukup pintar hari ini dan mengoptimalkan lebih baik dan lebih baik setiap saat. Sulit untuk menjadi lebih baik secara manual, bahkan jika Anda bisa, produktivitas Anda akan berkurang.
PS: API tidak memungkinkan untuk melakukan pembaruan ini seperti halnya game lama melakukannya. Itu hanya tidak efisien itu saja. Bukan karena pikiran API tetapi karena periode tidak efisien.
PPS: Inilah mengapa mereka meluncurkan Vulkan.