La vitesse est la raison la plus courante pour laquelle cela n'est pas fait. En fait, vous pouvez faire ce que vous proposez, si vous créez votre propre système d'exploitation, cela va être très lent pour des raisons architecturales. Donc, l'hypothèse que son plus rapide est un peu erronée. Même s'il serait plus rapide, il serait moins efficace en termes de développement (comme 1% d'augmentation de vitesse pour 10 fois le travail).
La copie des données du CPU vers la carte graphique est une opération relativement lente. Moins vous copiez, plus votre vitesse de mise à jour peut être rapide. Donc, idéalement, vous auriez la plupart des données sur votre GPU et ne mettriez à jour que de petits morceaux de données. Il y a un monde de différence entre la copie sur 320x200 pixels par rapport à 1920x1200 ou plus. Le nombre de pixels dont vous avez besoin pour mettre à jour augmente de façon quadratique lorsque les côtés s'agrandissent.
Exemple: il est moins coûteux de dire au GPU de déplacer l'image de 10 pixels vers la droite que de copier manuellement les pixels dans la mémoire vidéo à différents emplacements.
Pourquoi devez-vous passer par une API? Tout simplement parce que ce n'est pas votre système. Le système d'exploitation ne peut pas vous permettre de faire ce que vous voulez pour des raisons de sécurité. Deuxièmement, parce que le système d'exploitation a besoin d'abstraire le matériel, même le système d'exploitation parle au pilote via un système abstrait, une API si vous voulez.
En fait, j'évaluerais la probabilité que votre système soit plus rapide, si vous faisiez tout le travail vous-même, près de zéro. C'est un peu comme comparer le C et l'assemblage. Bien sûr, vous pouvez écrire un assemblage, mais les compilateurs sont assez intelligents de nos jours et optimisent de mieux en mieux tout le temps. Il est difficile d'être meilleur manuellement, même si vous le pouvez, votre productivité sera à la traîne.
PS: Une API ne rend pas impossible de faire cette mise à jour comme le faisaient les anciens jeux. C'est juste inefficace, c'est tout. Pas à cause de l'esprit de l'API mais parce que c'est une période inefficace.
PPS: C'est pourquoi ils déploient Vulkan.