Como alguien con algunos años de desarrollo de controladores, veo esto como dos problemas separados.
Un controlador de gráficos es una bestia muy complicada. Implementar todo de manera óptima sería una tarea simplemente imposible; es un obstáculo lo suficientemente grande como para hacer un controlador que realmente siga las especificaciones, y las especificaciones se vuelven cada vez más complejas. Entonces, desarrollas tu controlador en función de las especificaciones y un puñado de aplicaciones de prueba (ya que, en muchos casos, todavía no hay un software real ).
A lo largo viene un juego real (o punto de referencia, o algún otro caso de uso para el controlador, como la decodificación de video) que expone un cuello de botella en el controlador. A medida que avanza, descubra cómo suavizar las cosas y hacer que ese caso de uso sea más rápido. Puedes informar fácilmente que el juego XYZ es un 27,3% más rápido, pero en realidad todas las aplicaciones que tienen dicho caso de uso (por ejemplo, actualización dinámica de textura) se vuelven más rápidas.
Luego está el lado feo, las optimizaciones reales por aplicación, en las que el controlador detecta qué aplicación se está ejecutando (o qué sombreador se está compilando) y hace algo no genérico. Ha habido muchos casos publicitados de esto, donde, por ejemplo, cambiar el nombre del ejecutable de 3dmark cambia repentinamente los resultados.
Siento que este tipo de optimizaciones son una pérdida de tiempo para todos: miente a sus clientes en el caso de los puntos de referencia y puede cambiar la forma en que un sombreador se comporta de lo que el desarrollador realmente quiere. Recuerdo un caso en el que se cambió un sombreador de una búsqueda de textura a un cálculo en sombreador (que solo funcionaba para dicho hardware del fabricante) que estaba cerca, pero no exactamente el mismo resultado, y el desarrollador rechazó que esto no fuera legal mejoramiento.