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

DirectX Discussion :

Problème multithreading Directx


Sujet :

DirectX

  1. #41
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    J'ai des amis qui m'ont dit que cela pouvait venir des panels qui se rafraîchissaient pas quand il le faut mais moi je me dis que vu que leur events sont dans d'autres threads alors il ne devrait pas y avoir de problèmes. Quel est la source des ralentissements alors ?

  2. #42
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Re.

    Merci Mat .M. Un peu de soutien ça fait toujours plaisir .

    hedisurfer. J'ai certainement touché le fond du problème, mais tu ne l'as pas vu, enfin c'est mon impression. Combien de vidéos simultanées lances-tu ?

    Si tu lances 20 vidéos, mais que ton processeur supporte 10 vidéos (100% de charge), c'est peine perdu. Cela devient un problème matériel avant de devenir un problème logiciel (sauf utilisation inadéquate des API).

    Mais je ne pense pas que ce soit un problème logiciel, parce que l'API AudioVideoPlayback est basée (à confirmer parce que ça évolue avec MediaFoundation) sur l'API DirectShow et tout ce qu'il y a de meilleur.

    Avant de parler de ralentissement, il faut éclaircir le point précédent...

    Ensuite, effectivement, .net ne sera pas aussi performant que du C++ natif. Mais pour avoir utiliser les deux versions (C++ natif/C++ .net/directshow), je ne pense pas que le .net soit très pénalisant (problème de rafraîchissement des panels, je ne pense pas).

    Citation Envoyé par hedisurfer Voir le message
    Bonjour,

    C'est des vidéos avi. mais de petite taille (3seconces) et de petite résolution (320x240). Est-ce que les codecs utilisent le cpu ?
    Oui. Pour mieux comprendre, je te conseilles la FAC DirectShow. Enfin .avi c'est un conteneur, ça m'avance, mais pas beaucoup. Le format de compression audio et vidéo "exact" de ce conteneur, permettrai de savoir si les fichiers .avi que tu utilises sont gourmands ou pas en temps processeur.

    Citation Envoyé par hedisurfer Voir le message
    J'ai déjà VLC (dernière version) alors normalement cela ne devrait pas poser de problèmes non ?
    Attention. Il y a quelques temps, VLC utilisait ses propres codecs au sein même de l'application VLC. Je sais que l'open source évolue très vite, mais les codecs VLC, s'ils ne sont pas DirectShow, n'entrent alors pas en ligne de compte.

    Citation Envoyé par hedisurfer Voir le message
    J'utilise le multithreading pour paralléliser le calcul de chaque vidéo mais si tu me dis que chaque vidéo est sur un thread alors c'est bon (de toute façon même en le virant c'est toujours pareil). D'ailleurs y-a-t-il une différence entre parallélisation de tâches et mulithreading ?
    Tu pourrais avoir un gain de performance à paralléliser un calcul "SI" ton ordinateur à un double ou quadruple coeur. Est-ce le cas ? (voir aussi à paralléliser sur une carte graphique multicoeur -> CUDA, etc...).

    (Il faudrait aussi recoder tous les codecs pour qu'ils tirent partie des multicoeurs.)

    Citation Envoyé par hedisurfer Voir le message
    Je voulais savoir aussi si les events s'executent sur des threads à part ou pas ?
    Les "events" au sens .Net, s'exécutent dans un thread à part, enfin je suis presque certain. C'est la condition sine qua None pour ne pas friser l'interface graphique.

  3. #43
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Citation Envoyé par hedisurfer Voir le message

    J'utilise le multithreading pour paralléliser le calcul de chaque vidéo mais si tu me dis que chaque vidéo est sur un thread alors c'est bon (de toute façon même en le virant c'est toujours pareil). D'ailleurs y-a-t-il une différence entre parallélisation de tâches et mulithreading ?
    Oui, tu confonds multithreading et parallélisation. Voir mon message précédent.

    Pour résumé :

    parallélisation = multiprocesseur
    multithreading = plusieurs tâches en même temps.

    PS : mais on pourrait compliquer avec du multithreading parallélisé...

  4. #44
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    Bonjour,

    Normalement les bons codecs sont installés car j'arrive à lire les vidéos d'une façon fluide sur la plupart des lecteurs que j'ai. Mon processeur aussi n'est pas si vieux que ça (il date de 2006 et c'est un T2500). Existe-t-il une librairie pour tirer profit du GPU dans le cas où c'est un problème du CPU ?

  5. #45
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Combien de vidéos simultanées essaies-tu de lire ?

  6. #46
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    20

  7. #47
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Re.

    A partir de combien de vidéo, les ralentissements commencent ?

    Après cela tu connaîtras les limites matérielles et logicielles de ta machine.

    Seven, possède un outil de monitoring que tu devrais utiliser pour savoir où se situe le ou les goulots d'étranglement (processeur, disque, mémoire, cg, etc...).

    Ensuite, faudra voir ce qui pourra (ou pas) être améliorer.

  8. #48
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 77
    Par défaut
    Si tu rends tes vidéo sur des panels, essaye ceci:
    Crée un timer, et mets son tick à 5 ms environs, puis, t'as plus qu'à mettre ta fonction de raffraichissement dans ce timer (c'est comme ça que je procède pour mon éditeur de scène)

    PS:
    Je travaille avec C++/CLI et non pas C#, mais, ça doit être la même chose.

Discussions similaires

  1. problème avec directx
    Par ShioAru dans le forum DirectX
    Réponses: 2
    Dernier message: 13/12/2009, 12h12
  2. problème multithread et Labels
    Par mstarsup5 dans le forum Qt
    Réponses: 1
    Dernier message: 26/12/2008, 01h05
  3. Problème compilation DirectX
    Par PP(Team) dans le forum DirectX
    Réponses: 2
    Dernier message: 21/11/2007, 22h36
  4. Problème installation directx
    Par gui big hit dans le forum Windows XP
    Réponses: 1
    Dernier message: 31/12/2006, 13h45
  5. problème avec directx 9 et visual C++ 6
    Par 180degrés dans le forum MFC
    Réponses: 2
    Dernier message: 28/09/2005, 09h43

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