En effet, il n'y a pas de problème d'affichage mais le gizmo de rotation de Maya ne marche "pas bien" (je sais que dis comme ça, ça parait bizarre mais pour faire court, disons que quand je sélectionne un axe de rotation il en sélectionne un autre, voir même, aucun, ce qui, vous en conviendrez est particulièrement "dérangeant" (restons polis). C'est à ce moment que je me suis rappelé que les problèmes des ATI sur maya n'étaient pas une légende.

Bref, comme à mon habitude (et surtout avec un peu les boules d'avoir un PC incapable de faire fonctionner un gizmo de rotation), je commence à déambuler sur le net à la recherche de clampins qui comme moi auraient eux les mêmes soucis. Au final, une seule solution pouvait régler mon problème. "Modder" ma carte Radeon en FireGL, qui est la gamme "pro" des carte graphiques ATI. Cette gamme est physiquement très similaire à la gamme "grand public" mais toute sa spécificité ce joue au niveau des drivers qui sont très différent (Je vous invite à jeter un coups d'œil à ses deux pdf d'Autodesk ici et ici qui explique un peu la problématique). Ensuite, pour ce qui est du terme modding, c'est aussi un peu technique.

Explications:

Le device ID est une valeur écrit physiquement dans un des composant de la carte graphique qui permet au driver de savoir exactement de quelle carte graphique il s'agit et donc, d'installer les drivers en fonction. Pour ma Radeon, le device ID est 9440. Le hard-modding consiste à changer physiquement ce numéro (en désoudant et déplaçant des composants de la carte). L'autre alternative, moins risqué, est le soft-moddind. Je ne vais pas trop rentrer dans les détails (car je ne suis pas sur à 100% de ce qui va suivre) mais l'astuce consiste grosso modo à tromper le driver. Et oui, c'est aussi bête que ça. une communauté active de "patcheurs" créer, en se servant de Rivatuner, des scripts qui permettent de "patcher" les drivers FireGL pour qu'il ne cherche pas le device ID sur votre carte (en fait, ils font l'inverse: Un forcing, il ne font détecté au driver qu'un seul device ID que vous aurez choisi).

Après quelques heures (il est 4h du mat' quand même...) j'ai peut être trouvé la solution. Je dis peut être car vous allez voir que même si je n'ai plus de problèmes avec mon gizmo de rotation, j'ai tout de même l'impression que les performances sont identiques alors qu'elles devrait être quasiment dix fois supérieur (on en reparlera).

Avant de commencer je vous donne les liens en vrac qui m'ont aidés:

Dernière préparation:

Installez Rivatuner, lancez le, puis cliquer sur le bouton a droite de (256-bits RV770 ... Cutomize...) puis cliquez sur "Graphics subsytem diagnostic report" (pfiou!). Vous verrez normalement votre device ID 9440 (important ça!).

"Extractez" les drivers FireGL (J'ai utilisé les "FirePro_8.543_XP64_71428.exe" qui semblent être les derniers en date). Pour extraire les drivers lancez les une premiere fois puis annulez l'installation. Ils doivent normalement se trouver dans:

"C:/AMD/FirePro_8.543_XP64_71428"

Allez dans le premier lien que je vous ai donné plus haut et copiez-collez le contenu d'un des deux script, en fonction de votre système d'exploitation (xp32 et xp64), dans un fichier qui se termine en .rts (l'extension des patchs de Rivatuner). monPatch.rts

Allez dans <le dossier ou sont extrait vos drivers FireGL>Driver\XP6A_INF. Ouvrez CA_71428.inf avec notepad.

C'est la que ça commence à demander un peu de gnognote. "Extractez" les drivers Radeon et regardez dans:

C:\ATI\SUPPORT\9-1_xp64_dd_ccc_enu_74231\Driver\XP6A_INF

Ouvrez CA_74231.inf avec notepad.

C'est parti! Vous savez que votre device ID est 9440. Allez y, cherchez le. Vous tomberez sur cette ligne:

"ATI Radeon HD 4800 Series" = ati2mtag_R7X, PCI\VEN_1002&DEV_9440

Il va falloir chercher un ligne qui coïncide avec celle ci dans le inf des drivers FireGL. Les voici:

"ATI FirePro V3750 (FireGL)" = ati2mtag_R7XGL, PCI\VEN_1002&DEV_949F
"ATI FirePro V5700 (FireGL)" = ati2mtag_R7XGL, PCI\VEN_1002&DEV_949E
"ATI FirePro V7750 (FireGL)" = ati2mtag_R7XGL, PCI\VEN_1002&DEV_949C
"ATI FirePro V8700 (FireGL)" = ati2mtag_R7XGL, PCI\VEN_1002&DEV_9456

Bon alors on ne s'affole pas. Si vous avez regardez la liste des devices IDs de AMD/ATI, vous remarquerez que les FireGL compatible avec le GPU RV770 sont:

  • AMD FireStream 9250
  • AMD FireStream 9270
  • ATI FirePro V7770
  • ATI FirePro V8700
  • ATI FirePro V8750

Les deux première on les laisses de coté, elle ne nous intéresse pas. Il ne nous reste plus qu'une seule carte, la V8700. Vous l'aurez deviné, il va falloir remplacer le "9456" de la ligne:

"ATI FirePro V8700 (FireGL)" = ati2mtag_R7XGL, PCI\VEN_1002&DEV_9456

du CA_71428.inf (le inf des drivers FireGL) par "9440". Mais avant de se lancer vérifions un truc! Lancez votre .rts (monPatch.rts) et regardez la liste des cartes disponible... La 8700 n'en fait pas parti... Et oui! Et c'est là que je me suis lancé dans une manipulation à laquelle je ne croyais plus (J'ai du me faire une bonne dizaine de "black screen" ce soir...): J'ai ajouter une ligne au driver.

"ATI FirePro V8750 (FireGL)" = ati2mtag_R7XGL, PCI\VEN_1002&DEV_9440

J'ai sauvé mon CA_71428.inf puis patché les drivers FireGL. Je vous explique la manipulation, rien de plus simple en fait:

Lancez votre monPatch.rts. Selectionnez "force AMD FirePro V8750 capabilities" et cliquez sur "Continue". Allez dans votre dossier:

<le dossier ou sont extrait vos drivers FireGL>\$_OUTDIR\Driver\XP6A_INF\B_70572

Sélectionnez "ati2mtag.sy_" comme "Fichier de type" puis ouvrez le. Vous aurez un message d'avertissement, validez le et votre driver est maintenant patché.

Dernière subtilité, il ne faut pas "installer" le driver mais "mettre à jour" à partir du "gestionnaire de périphérique" et en cochant "Ne pas chercher je vais choisir le pilote à installer" puis "Disquette fournie". Voila, votre driver est donc installé,

Allez ensuite dans $_OUTDIR\CCC et lancez setup.exe pour avoir le panel.

Bon. Maintenant la conclusion.

Déjà notre gizmo fonctionne et ça, ça vaut chère (en effet ne pas pouvoir faire de Maya à cause de ça, c'est les boules). Mais arrive les "vraix" questions: J'ai à priori ajouté une carte qui n'était pas supporté par le driver actuel donc c'est quoi qui "pilote" ma carte actuellement (les drivers FireGL "de base" je suppose). De même, je ne sais pas si j'ai bien débloqué les professionnals capabilities (Il y a en effet des options supplémentaire dans le panel mais ça ne ressemble en rien a des besoin spécifiques aux logiciels 3D).

driverFireGL001.jpg

driverFireGL002.jpg

Et le dernier point qui est surement le plus évident au final: Les perf. En effet un des user du forum de guru3d a testé le script et ses perf sont minable:

The x64 script doesn't work with 8.523.1.1 I'm using 2900xt ---> v8650

older 8.453.1 driver specviewperf 10 maya 251.30 8.523.1.1 driver 42.89

J'ai testé et en ce qui me concerne et j'ai fait un 40. Un autre user disant qu' a partir du moment ou t'était en dessous de 100 c'était forcément que ça n'avait pas marché. Je n'ai donc en effet pas réussi à faire fonctionner la carte comme une vrai FireGL. Mais je vais garder ce thread dans un coin et surveiller les drivers FireGL de AMD/ATI de près en attendant que les FireGL 8750 soit officiellement supporté. L'objectif ce soir était surtout pour moi de pouvoir faire du Maya dans une situation convenable. J'ai réussi, je suis content. Mais au lieu d'en profiter je n'ai plus qu'a aller dormir.

En espérant que ce billet puisse vous aider! N'hésitez pas à laisser un commentaire si vous avez un problème (ou la même carte que moi et l'envi d'essayer la manip).

Dorian