Premièrement, il existe parfois des cas où un correctif de pilote est publié qui peut améliorer les performances ou augmenter l'efficacité d'un certain processeur. Mais évidemment, vous posez cette question parce que ce n'est tout simplement pas si courant. Cependant, ce que font les optimisations du pilote CPU est similaire dans le concept.
Un GPU est un circuit très compliqué. Il existe pour décharger certaines tâches qui prennent très longtemps à faire sur un CPU. Ils reçoivent des ensembles de données et des instructions sur ce qu'il faut faire de ces données. Le GPU doit être en mesure de classer les données de manière gérable et d'interpréter les instructions pour lui dire quoi faire. Ensuite, il doit effectuer une série d'opérations mathématiques sur les données. Après cela, il doit à nouveau réorganiser les données et renvoyer les résultats au système d'exploitation une fois terminé. Il s'agit d'une description très simpliste du pipeline d'infographie . Plusieurs étapes doivent être effectuées avant que les données ne soient prêtes pour le programme.
Maintenant, comme le GPU doit accepter des ensembles d'instructions et implémenter des opérations mathématiques très compliquées dans le matériel, certaines choses sont connues pour fonctionner plus rapidement ou plus lentement dans ce pipeline. Une partie de l'écriture d'un pilote pour un périphérique consiste à interpréter les données et les instructions envoyées au périphérique, à les traduire pour que le périphérique puisse les comprendre. Lorsqu'un pilote effectue cette opération, il peut prendre des décisions sur la façon d'envoyer les données à l'appareil afin que les tâches prennent le moins de temps possible. Cependant, un pilote n'a généralement pas beaucoup d'informations sur ce que fait le programme qu'il dessert. Tout ce qu'il reçoit du programme sont les appels d'API ("dessiner une ligne", "colorier un point", "ombrer un triangle", etc.). Ainsi, les hypothèses qu'il peut faire ne sont pas très bonnes.
Quand AMD ou nVidia publie une mise à jour du pilote qui contient des améliorations de performances pour des jeux spécifiques, cela signifie que le pilote détectera quel jeu appelle le matériel graphique et aura une série d'hypothèses codées en dur qui sont connues sur la façon dont le jeu est mis en œuvre. Il se peut que le jeu ait beaucoup d'images de texture qui doivent être rapidement échangées dans et hors de la mémoire, ou qu'il mélange beaucoup de couleurs à la volée pour produire certains effets d'éclairage. Habituellement, un jeu implémentera de petits programmes (appelés "shaders") qui décrivent comment effectuer ces calculs, et il sera envoyé au GPU pour exécution. Si le pilote sait comment le jeu utilise le matériel, il peut organiser les données et choisir des ensembles d'instructions qui exécutent la tâche souhaitée d'une manière qui augmente le débit et l'efficacité.
Parfois, cependant, une fois le produit expédié, des bogues peuvent être détectés dans une partie du processeur graphique. Il peut être suffisamment obscur pour avoir été manqué lors de la validation lors de la conception de la puce, mais il peut être constaté qu'il provoque un buggy ou un comportement indésirable (ou même des plantages) dans un jeu particulier qui le frappe. Dans ce cas, le pilote détectera cet état de bogue et le contournera, soit en déchargeant certains calculs du côté du processeur ou en modifiant la façon dont il alimente les données vers le GPU afin qu'il n'entre pas dans cet état. Ceux-ci, encore une fois, seront publiés sous forme de mises à jour de pilotes.
Donc, fondamentalement, cela ne modifie pas les performances du matériel lui-même, il modifie simplement la façon dont il utilise le matériel, afin qu'il puisse fonctionner plus efficacement et plus rapidement sur le même ensemble de données.