Presque deux ans depuis la dernière mise à jour de ce blog, le temps de trouver une solution pour faire du page flipping avec n'importe quelle carte graphique NVIDIA (NV03 à NVC0). Enfin j'espère...

La solution précédente ne fonctionnait que pour certaines cartes (à priori <= NV40) car les registres VGA ne sont plus disponibles directement avec les nouvelles générations de GPUs NVIDIA. Mais ils semblent avoir des alias dans l'espace MMIO à la même adresse pour toutes les générations de GPUs NVIDIA (601000:602000 PRMIO).

Voir https://github.com/pathscale/envytools/blob/master/hwdocs/nvchipsets.txt à ce sujet.

Voici donc un nouveau source compilable de la même façon que le précédent et nécessitant également la définition d'un écran virtuel de résolution horizontale double qui devrait fonctionner pour tout type de carte NVIDIA (> NV01). Il n'y a plus besoin d'être root pour le lancer d'ailleurs...

Comme pour le précédent fichier, je serai ravi d'avoir des retours même si je ne me fais pas trop d'illusions.

En tout cas cette technique ouvre la porte au support de la S3D en alternance de trames pour toutes cartes NVIDIA sous Linux. Il n'y a plus qu'à intégrer ce code, celui de pilotage de l'émetteur 3D Vision et des lunettes VGA DDC dans Genlock et à piloter le tout avec l'applicaton glstereo que j'avais écrite pour intercepter et modifier les appels OpenGL dans les jeux 3D.

A partir de là on devrait pouvoir arriver à une solution assez équivalente à ce qui se fait dans le monde MS Windows avec 3D Vision.

Ça valait le coup de s'y remettre et de passer une dizaine d'heures là dessus... :)