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

SDL Discussion :

Probleme utilisation du cpu


Sujet :

SDL

  1. #21
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 386
    Points : 20 476
    Points
    20 476
    Par défaut
    Citation Envoyé par Jyaif
    Je viens de penser à un autre truc. Est-ce qu'en fullscreen ça utilise autant ton cpu ? Je sais pas comment ça se passe avec SDL, mais en Java avec l'api standart, le double buffering en fullscreen est beaucoup plus rapide qu'en mode fenêtré (l'api a juste à changer le pointeur de la mémoire video vers le buffer, il n'y a rien à copier...).
    Que cela soit en fullscreen ou fenêtré cela consommera toujours autant de ressources CPU.
    Si tu fais du Direct X natif sans SDL de simples surfaces Direct Draw le problème sera le même.
    Par contre fullscreen est bien plus rapide que fenêtré c'est normal l'OS a moins de processus visibles à gérer et moins de messages à redistribuer et moins de controles à redessiner

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Ben je sais que dans un set_video_mode je peux demander à SDL d'avoir une surface "SWSURFACE" ou "HWSURFACE", ce qui veut dire "ram centrale" ou "carte vidéo". Il y a aussi un flag pour le double buffering, si tu ne l'as pas activé tu risques d'avoir des problèmes puisqu'un SDL_Flip fait alors un SDL_UpdateRect,, qui est plutôt lourd si le rectangle est grand (comme par exemple tout l'écran). Le problème se pose aussi si ta carte vidéo ne peut pas gérer le double buffering.

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Non mais j'ai essayer déja pas mal de chose, avec le double buffering et tout et tout ...

    Je pense pas non plus que ca vienne de mon ordinateur puisque ca le fait pas que chez moi, mais c'est généralisé. Sinon, personne n'as un code d'une appli graphique windows qui utilise la sdl. Pour que je voit si il y a le meme probleme, et si c'est pas le cas, alors youpiiiiiiiii!

    Parce que la, la seule solution, c'est de passer a openGl
    ce que je vais faire je croit ...

  4. #24
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 386
    Points : 20 476
    Points
    20 476
    Par défaut
    Citation Envoyé par jkalzsmu
    Je pense pas non plus que ca vienne de mon ordinateur puisque ca le fait pas que chez moi, mais c'est généralisé. Sinon, personne n'as un code d'une appli graphique windows qui utilise la sdl. Pour que je voit si il y a le meme probleme, et si c'est pas le cas, alors youpiiiiiiiii!
    si cela t'intéresse je peux te donner un morceau de code source avec chargement de bitmaps et appel à Direct Draw direct sans passer par SDL.
    Tu pourras comparer la différence...

    Tu ne peux pas trop optimiser avec SDL à moins d'aller bidouiller le code source de SDL....

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Mais alors si la SDL n'est pas vraiment optimiser, qu'est ce que vous pouvez me conseiller? J'ai entendu parler de GLUT, mais ca se trouve c'est encore pire ...

  6. #26
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par jkalzsmu
    Mais alors si la SDL n'est pas vraiment optimiser, qu'est ce que vous pouvez me conseiller? J'ai entendu parler de GLUT, mais ca se trouve c'est encore pire ...
    On va dire que c'est de la propagande, mais je ne pense pas que tu puisses avoir tant de problème avec la SDL. Beaucoup programment avec et j'ai jamais vu un problème avec.

    Il est vrai que depuis que ce fil a été créé je n'ai pas testé sous Windows le temps d'utilisation du CPU d'un programme basique mais cela m'étonnerait que tu sentes vraiment des ralentissements à la longue.

    Je te conseille de rester sur la SDL, de bien mettre tes pilotes, tes bibliothèques à jour, je vais voir si un programme SDL vide prend autant de ressources sous mon Windows ce soir,
    Jc

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par fearyourself
    je vais voir si un programme SDL vide prend autant de ressources sous mon Windows ce soir,
    Jc
    Merci, c'est sympa.

    De toute facon, même si j'utilise openGL, il me faudras une librairie pour gérer les fenêtres. Donc, ca serait vraiment bien de régler ce probleme.

  8. #28
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par jkalzsmu
    Merci, c'est sympa.

    De toute facon, même si j'utilise openGL, il me faudras une librairie pour gérer les fenêtres. Donc, ca serait vraiment bien de régler ce probleme.
    J'ai fait quelques tests :

    - Avec SDL de base, le code de depart de Code::Blocks tourne effectivement chez moi avec 50% d'utilisation CPU

    - Mon jeu de morpion, la derniere partie, tourne aussi avec 50% de CPU meme lors du calcul de l'IA.

    - Le jeu de pong, avec 3000 balles et la gestion de collision, tournant avec SDL/OpenGL demeure a 40%

    En conclusion, il est clair qu'une fenetre SDL normale utilise plus de ressources que la version avec OpenGL. De la a dire que la version SDL sans OpenGL soit inutile a utiliser est premature. Il faudrait faire un code plus lourd et voir si cela fait vraiment grimper l'utilisation CPU.

    Enfin, une fenetre OpenGL/SDL n'utilise pas trop de ressources, on peut donc l'utiliser, a mon avis, sans crainte.

    Jc

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 88
    Points : 48
    Points
    48
    Par défaut
    Donc finalement, l'ideal serait d'utiliser SDL pour la gestion (ouverture, fermeture des fenetre, clavier, joystick, etc...) ,mais utiliser openGl pour gerer l affichage a l interrieur de la fenetre.

    Et puis pour le son, je pense qu il foit exister une sorte d'opengl de son?

  10. #30
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Et puis pour le son, je pense qu il foit exister une sorte d'opengl de son?
    OpenAL.

Discussions similaires

  1. probleme utilisation de iis
    Par seb833434 dans le forum IIS
    Réponses: 2
    Dernier message: 15/06/2006, 17h19
  2. Probleme utilisation d'Objets managé grace a gcroot
    Par pepefourras dans le forum MFC
    Réponses: 4
    Dernier message: 16/05/2006, 00h26
  3. [Eclipse 3.1 et WTP 0.7M5] Utilisation du CPU à 100%
    Par stanislas dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/07/2005, 23h21
  4. [Windows 2003 Server] Problème d'utilisation du CPU
    Par Quentin dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 11/04/2005, 11h26
  5. Trouver le % d'utilisation du CPU
    Par le mage tophinus dans le forum Assembleur
    Réponses: 20
    Dernier message: 21/04/2003, 19h43

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