• [^] # Re: Dual screen

    Posté par . En réponse au journal driver Nouveau. Évalué à 10.

    [bon marcheu a répondu avant moi mais je poste quand même]
    Maarten Maathuis et Stuart Bennett ont pas mal bossé sur randr12 récemment (donc support du dualhead).
    Pour les cartes NV2x jusqu'à NV4x (geforce 3 - geforce 7), le dualhead est supposé être fonctionnel.
    Pour les NV1x (geforce 1, 2, geforce 4 MX) je ne suis pas sûr (est-ce qu'il en existe seulement avec deux sorties ?)

    Dans tous les cas, si vous avez une config à deux écrans, merci de tester avec nouveau et de venir nous dire sur IRC si ça marche :) Et surtout si ça marche pas !
    (irc.freenode.net #nouveau)

    Sinon à propos du sujet du journal : nouveau est vraisemblablement meilleur que nv en 2D (X-Video et support EXA avec accélération de XRENDER). Une release "2D-only" est à prévoir d'ici pas trop longtemps.

    Il reste une piste d'amélioration en 2D : une meilleure synchronisation GPU/CPU (le "fencing"). Tentative d'explication :

    Le fencing permet au CPU d'attendre la fin d'une opération donnée, qui est en cours d'exécution par le GPU. Par example, lorsque EXA veut toucher des données qui doivent être traitées par le GPU, il doit attendre que d'être sûr que ces données ont bien été traitées, pour éviter toute corruption.
    L'approche actuelle est d'attendre que le GPU ait fini d'exécuter _toutes_ les commandes en cours, y compris celles qui n'ont rien à voir avec les données qui nous intéressent (= vider complètement le tampon de commandes). C'est simple mais ça génère des attentes plus longues que la normale.
    Un essai d'explication plus concrète : soient A, B, C, D, E, F, des commandes envoyées à la carte graphique. Admettons que "C" soit responsable de dessiner quelque chose, qu'on veut ensuite retraiter sur le CPU. On doit donc attendre que C soit terminée, avant de toucher le bout de mémoire concerné.
    Avec un fencing propre, on attendrait (= ne ferait rien, comme dans while ( ! done ) ; ) l'exécution de A, B et C.
    Avec l'approche actuelle, on attendrait l'exécution de A, B, C, D, E, F.



    Puis tant qu'à y être puisque je suis parti dans un exposé sur le status de nouveau, je crois qu'il faut mentionner qu'on vient d'ajouter un "video texture" pour les cartes NV4x (geforce 6 et 7), qui est plus rapide et a une bien meilleure qualité d'image, que le blitter qui est utilisé sur NV4x par nv (et toujours disponible dans nouveau !).
    Cela dit je crois qu'il a encore quelques problèmes, enfin bon.


    On sera quelques-uns de nouveau au FOSDEM 2008.