Das Problem sind sicher die API und eine unsaubere Programmirung der Engine, nicht AMDs Treiber als solcher. Ich habe als Programmierer noch selbst die größeren Umstellungen von DX3 auf DX5 und später dann DX8 auf DX9 mitgemacht. Oftmal haben sich die Funktionsaufrufe brutal geändert, Übergabeparameter kamen dazu, änderten sich oder fielen sogar weg. Wenn man eine Engine programmiert, die ja am Ende nichts anderes als ein riesiger Haufen an Bibliotheken ist, die den Programmierern das Leben leichter gestalten sollen, ist die Abwärtskompatibilität immer ein Problem. Wie geht man mit undokumentierten Funktionsaufrufen um bzw. wie behandelt ein Treiber Ausnahmen?
Ich habe heute immer noch hornalten DX5 Code im Retained Mode (!) unter Windows 10 am Laufen (z.B. Cool 3D), obwohl das laut MS gar nicht mehr funktionieren dürfte. Man muss halt nur die entsprechenden alten DLL's wieder ins System-Verzeichnis kopieren und sich ggf. selbst einen Wrapper schreiben, um die Funktionen umzubiegen. Ich nehme an, AMD hat den ganzen alten Kram mal entrümpelt und alle Ausnahmebehandlungen unterhalb DX9 konsequent rausgeschmissen. Wenn dann ein DX9-Spiel nicht mehr läuft, fehlt einfach der alte Mist, den die Programmierer aus Faulheit über Jahre in der Engine gelassen haben. Man könnte ja mal damit experimentieren, einen DX8- oder DX6-Installer laufen zu lassen, bzw. diese manuell zu extrahieren und so das System zu ergänzen, statt auf die Treiber zu schimpfen.