Publicité
+ Répondre à la discussion Actualité déjà publiée
Affichage des résultats 1 à 6 sur 6
  1. #1
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    16 489
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 16 489
    Points : 84 457
    Points
    84 457

    Par défaut Étude sur les performances d'affichage de la SDL 1.2

    Bonjour,

    Il arrive souvent de lire sur ce forum que les performances de la SDL 1.2 sont catastrophiques. En tant que développeur utilisant cette bibliothèque, je ne m'en était pas spécialement rendu compte. C'est pourquoi j'ai décidé d'écrire un article afin d'éclaircir la situation est de donner quelques conseils aux développeurs voulant utiliser la SDL pour leur projet.

    Bonne lecture.
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

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

  2. #2
    Membre Expert
    Avatar de Kannagi
    Homme Profil pro
    Développeur Jeux Vidéo
    Inscrit en
    mai 2010
    Messages
    1 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Jeux Vidéo

    Informations forums :
    Inscription : mai 2010
    Messages : 1 025
    Points : 2 036
    Points
    2 036

    Par défaut

    Tu l'as finalement fait

    En voit que le nombre de FPS chute par rapport a la résolution , mais comme dans un jeu en gère aussi tous les autres truc.
    Sinon la SDL a pas des performances catastrophiques , si on sait ce qu'on fait et ce qu'on manipule , si on créer une grosse surface et qu'on dessine dessus , les performances font être catastrophique et peu importe la résolutions, mais en générale ça s'applique qu'au débutant
    Et ce point tu l'as un peu oublié ,oui afficher des rectangles de 20x20 ou 50x50 ça peut aller , les plus grosses c'est a utiliser avec modération (genre le background) , une image de 1900x1200 sur la grosse résolution ça va être très violent x).

    Pour des test , je trouve ça 'stupide' de testé bmp , png ou jpeg vu qu'en mémoire il seront pareil (tableau de RVB ou RVBA) , même si la SDL possède autre façon de la représenter en mémoire (la façon optimisé) , utilisation de la palette/mask , les images semi-transparentes sont de toute façon la plus couteuse (et a évité) , vu qu'il faut faire des calcul entre image du fond et image qu'on blit.

    Pour la résolution tu as bien vu que échange de tampon a un très grand cout , pour ça que si on utilise des sprites basse résolution faut mieux faire du 640x480 et grossir image via opengl comme cela on garde les performances du 640x480 dans une fenêtre 1900x1200.

    Sinon j'aime bien ce test ,je pourrais le refiler quand je verrai des résolutions énormes , même si tes test je vois que tu as un bon ordi pas sur que j'ai les même résultats

    Bon travail

  3. #3
    Invité régulier
    Inscrit en
    juillet 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 7
    Points : 6
    Points
    6

    Par défaut

    Dans l'article on peut lire que sur certaines plateformes les HW Surface ne sont pas implémentées, en fait ça dépend surtout des drivers présents sur la machine. Tes tests sont certainement basés sur le driver par défaut, qui ne supporte pas les HW Surface. C'est pour cela qu'on obtient les mêmes résultats entre SW et HW, car en réalité le driver ne prend pas en compte le flag HW et se contente d'utiliser des SW.

    A savoir que sur Windows (Sur Linux aussi je crois) le DoubleBuf ne marche qu'avec les HW Surface, et donc qu'avec le plein écran et le driver directx. Et avec cette configuration (directx+HWSURFACE+FULLSCREEN+DOUBLEBUF) les fps se synchronisent avec le taux de rafraichissement de son écran (Pour ma part 60 fps). Cette configuration c'est donc l'option de synchronisation verticale (Anti-déchirement de l'image) (Marche aussi avec les SWSURFACE).

    J'ai refait le test 2 avec une résolution 1366x768 sur Windows :

    Driver par défaut :
    SWSURFACE = ~550
    SWSURFACE + FULLSCREEN = ~580
    SWSURFACE + DOUBLEBUF = ~550
    SWSURFACE + FULLSCREEN + DOUBLEBUF = ~580
    HWSURFACE = ~550
    HWSURFACE + FULLSCREEN = ~580
    HWSURFACE + DOUBLEBUF = ~550
    HWSURFACE + FULLSCREEN + DOUBLEBUF = ~580

    Driver directx :
    SWSURFACE = ~250
    SWSURFACE + FULLSCREEN = ~250
    SWSURFACE + DOUBLEBUF = ~250
    SWSURFACE + FULLSCREEN + DOUBLEBUF = 60 constant
    HWSURFACE = ~250
    HWSURFACE + FULLSCREEN = ~472146 (!)
    HWSURFACE + DOUBLEBUF = ~250
    HWSURFACE + FULLSCREEN + DOUBLEBUF = 60 constant

    On remarque trois choses :
    -Sans directx et sans le plein écran, HWSurface = SWSurface même si c'est le flag HWSurface qui a été activé
    -L'utilisation de directx fait baisser les performances avec les SWSurface
    -La configuration directx + HWSURFACE + FULLSCREEN donne de bonnes performances (Mais sans DOUBLEBUF on a du scintillement)

  4. #4
    Expert Confirmé Sénior Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    3 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2002
    Messages : 3 057
    Points : 6 686
    Points
    6 686

    Par défaut

    Dommage de voir cet article arriver alors que la SDL 2.0 vient d'arriver.

    Il serait intéressant de faire les mêmes tests avec la version 2.0 pour comparer.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2011
    Messages : 90
    Points : 66
    Points
    66

    Par défaut

    Citation Envoyé par Uther Voir le message
    Dommage de voir cet article arriver alors que la SDL 2.0 vient d'arriver.

    Il serait intéressant de faire les mêmes tests avec la version 2.0 pour comparer.
    +1, voir même comparer aussi avec d'autres solutions, genre la SFML2.

  6. #6
    Expert Confirmé Sénior
    Avatar de shenron666
    Homme Profil pro Tony BAYART
    Ingénieur développement logiciels
    Inscrit en
    avril 2005
    Messages
    2 318
    Détails du profil
    Informations personnelles :
    Nom : Homme Tony BAYART
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : avril 2005
    Messages : 2 318
    Points : 4 862
    Points
    4 862

    Par défaut

    Très bon article
    auquel il ne manque plus qu'une suite en convertissant les tests en SDL 2.0
    Citation Envoyé par LittleWhite Voir le message
    La SDL n'est pas une si mauvaise bibliothèque que ce que l'on dit. Il est possible de faire un jeu avec, même dans des résolutions comme 1024x768.
    Je n'ai pas trop le "pas si mauvaise qu'on le dit"
    je n'ai jamais lu que la SDL était mauvaise
    en plus il existe de très nombreux jeux qui l'utilise, beaucoup de jeux indy mais aussi des jeux commerciaux

    je pense qu'il y a peu de jeux l'utilisant qui sortent aujourd'hui du fait de l'ancienneté de la 1.2
    mais la 2.0 pourrait relancer la machine, surtout si la conversion n'est pas trop douloureuse
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •