IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Les développeurs de Dolphin dressent un tableau de la qualité du support OpenGL


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut Les développeurs de Dolphin dressent un tableau de la qualité du support OpenGL
    Les développeurs de Dolphin dressent un tableau de la qualité du support OpenGL
    NVIDIA et l'implémentation libre Mesa proposent une implémentation satisfaisante d'OpenGL


    Dolphin est un émulateur GameCube/Wii Open Source en développement depuis dix ans. La version 4.0 célèbre cet anniversaire et les développeurs en profitent pour dresser un récapitulatif du support d'OpenGL par les différents constructeurs dans l'espoir que le support s'améliore.

    Ce classement prend en compte le nombre de bogues trouvés ainsi que la difficulté pour avoir du support de la part des constructeurs. Voici le récapitulatif :
    • NVIDIA : excellent
    • Mesa : bon
    • Intel HD Graphics : bon
    • AMD : médiocre
    • ARM/Mali : mauvais
    • Qualcomm/Adreno : horrible


    NVIDIA

    Le support d'OpenGL du côté de NVIDIA, que ce soit pour Linux ou pour Windows est excellent. L'équipe de développeurs a tout de même rencontré quelques difficultés, mais sans que cela ne soit directement des bogues. Par exemple, NVIDIA ne propose pas de stockage du coté du client pour les tampons mémoire (alors que AMD le fait), ce qui pouvait considérablement améliorer les performances de l'émulateur. De plus, avoir du support de NVIDIA pour les développeurs Open Source sur les forums est difficile. Toutefois, après la mise en ligne de l'article trois personnes ont contacté les auteurs pour offrir leur aide.

    Mesa

    L'équipe de développement du projet Mesa, l'implémentation libre d'OpenGL offre un support très convenable. En effet, même si quelques bogues ont été rencontrés, ils ont été corrigés rapidement après avoir été rapportés. Voici quelques exemples :



    Les Uniform Buffer Objects venaient tout juste d'être implémentés dans Mesa et n'avaient pas été spécialement testés par manque d'applications les utilisant intensivement. Grâce à Dolphin, l'implémentation a été rapidement améliorée et a permis ainsi un meilleur support pour l'implémentation libre et de meilleures performances pour l'émulateur.

    Intel HD Graphics

    Les développeurs ne connaissent pas de bogues liés à ces pilotes. Cela s'explique notamment par le nombre réduit de puces supportant Dolphin : Intel HD3000.

    AMD

    Beaucoup de problèmes graphiques sont liés au pilote propriétaire AMD pour Linux, alors que ces mêmes bogues ne sont pas présents sous Windows.

    Un des bogues les plus connus est la corruption des textures lors de la génération de mipmaps :


    Cela arrive lors de la création d'une texture au format GL_UNSIGNED_SHORT_5_6_5 et l'utilisation de la fonction glGenerateMipmap.
    Le bogue est rapporté depuis plus de deux ans, mais a été ignoré par les développeurs chez AMD. De plus, le rapport de bogue sur les forums a été supprimé suite à une transition sur un nouveau forum. Les développeurs de Dolphin ne savent pas si cela a été corrigé. En effet, la gestion des niveaux de mipmaps dans l'émulateur a été complètement revue.

    La qualité du code pour la partie utilisateur (à contrario de la partie kernel) du pilote est horrible. En effet, valgrind rapporte de nombreuses erreurs à propos de structures non initialisées et d'accès sur des sections mémoires non initialisées. Quelquefois, il arrive même que le pilote ferme directement l'application au lieu de rapporter les erreurs. Ce bogue a aussi été remarqué par les développeurs de la SDL : https://bugzilla.libsdl.org/show_bug.cgi?id=1210.
    Il existe aussi quelques bogues dans l'implémentation du pilote pour Windows, notamment lors de l'utilisation de l'extension AMD_pinned_buffer pour les tampons d'index.

    Finalement, il existe un bogue tracker non officiel mais celui-ci ne semble pas lu par les développeurs d'AMD.

    ARM/Mali

    Passons aux puces mobiles. Les développeurs de l'émulateur ont rencontré énormément de problèmes, mais ont finalement réussi à produire un résultat correct :



    Il est à noter que :
    • les développeurs du pilote semblent faire moins d'assurance qualité que les développeurs de Mesa ;
    • il n'existe pas de bonne documentation sur le pilote ;
    • le pilote limite les performances du GPU ;
    • OpenGL ES 3.0 aurait pu être supporté plus tôt si les pilotes n'étaient pas si mauvais ;
    • peu d'applications utilisent les fonctionnalités avancées et donc Dolphin révèle de nombreux bogues restants.


    La réponse des développeurs sur les forums est : "Oui, nous savons que cela ne fonctionne pas", sans plus d'informations. Même Google effectue des contournements pour avoir un support satisfaisant.

    Toutefois, il existe le projet LIMA, où des développeurs cherchent à recréer un pilote pour ces puces en faisant de la rétroingénierie. Ils arrivent même à avoir de meilleures performances que le pilote du constructeur mais ils sont aussi confrontés à d'énormes difficultés pour continuer leur travail, notamment pour recréer le compilateur de shader.

    Qualcomm/Adreno


    Il semble que quelques morceaux de code soient les mêmes que pour Mali. Malheureusement, ils partagent aussi les bogues sur les fonctions glBufferSubData et glMapBufferRange. L'équipe de Dolphin n'est pas la seule à avoir des problèmes avec ce pilote : https://developer.qualcomm.com/forum...n-adreno/27030 .

    PowerVR

    Pour l'instant les puces de Imagination Technologies ne supportent pas OpenGL ES 3.


    Votre opinion

    Que pensez-vous des propos des développeurs de l'émulateur ? Avez-vous rencontré ces bogues lors de vos développements ?


    Source

    Blog de Dolphin
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2009
    Messages : 416
    Points : 1 443
    Points
    1 443
    Par défaut
    Bonjour,

    J'ai eu une très mauvaise expérience avec les pilotes Adreno il y a quelques mois, pour un jeu Android qui utilise - certes trop - intensivement des glTexture2D().
    Au bout d'un moment, le driver nous fait un OUT_OF_MEMORY et fait crasher l'appli. Bizarrement, la taille de l'apk semblait avoir une influence sur ce problème.

    A force de chouiner sur les forums de Qualcomm, ils ont fini par nous contacter directement Bizarrement, malgré toutes nos instructions, ils n'ont pas réussi à reproduire le problème, y compris sur les appareils du commerce sur lesquels nous l'avons rencontré. Du coup, on se demande si ce n'est pas carrément un problème hardware; à mon avis, c'est un problème de fragmentation mal gérée.

    Vu que notre appli utilise OpenGLES 1.1, on n'a pas rencontré les mêmes problèmes que l'équipe de Dolphin; on n'a rencontré aucun gros souci sur PowerVR ou Mali.

Discussions similaires

  1. Les développeurs de Dolphin se débarrassent du support de Direct3D 9
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 23/10/2013, 17h37
  2. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26
  3. Réponses: 2
    Dernier message: 23/11/2003, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo