Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 16/02/2018 2:20:29

jano
Moderateur
Inscription : 13/11/2007
Messages : 864

lancer plusieurs session de FG sur un seul PC - affinité CPU

Je passe les détails pour avoir deux sessions qui comuniquent entre elles (ça se fait bien tant qu'on essaye pas d'utiliser le même port d'entrée) et la ruse pour n' avoir le joystick que sur une session tongue (mais bon je peux aussi joindre les lignes de commande, si y'a de la demande tongue )

En metant au point le futur patch mp, j'ai l'occasion de pratiquer le double FG sur un seul PC, et jusqu'à récement, y'avait un truc qui me chifonnait.
même en metant une session en frame rate limité, et tout petit dans coin, l'autre session n'avait pas de super fps, et j'avais l'impression de frames hétérogènes (vol un peu saccadé même avec des fps moyens"correct" ici 20 c'est bien smile )

La dernière fois j'ai regardé les ressources système, et, pan, les deux FG tournaient tous les 2 sur un seul core, le premier !

il s'agit en fait d'une "feature" d'OSG dont je me passerais bien smile qui se lance systématiquement sur le premier "CPU"

La solution: il s'agit de changer  "l'affinité CPU" une fois FG démarré, pour une des sessions (ou les 2,3,4 etc...)

sous windows ça se fait dans le gestionnaire de tache ou un truc du genre, (je vous laisse chercher)

et sous linux j'utilise "ps" pour connaitre le PID de ma session, puis taskset pour changer l'affinité:

$ ps aux | grep fgfs
jano      6239 94.8 13.1 1272048 533552 pts/0  Rl+  01:03   0:14 ./fgfs 
[...]
$ taskset -p 6239                                        //on demande quel est l'affinité du PID 6239, le fgfs de dessus
pid 6239's current affinity mask: 1
$ taskset -p 2 6239                                         //on change le masque d'affinité de fgfs pour le 2eme cpu
pid 6239's current affinity mask: 1
pid 6239's new affinity mask: 2

le nombre passé avec l'option -p est le masque qui dit quel sont les cpu autorisés avec l'appli, chaque bit binaire étant un numéro de cpu:
1 -> cpu 1
2 -> cpu2
3-> cpu 1 et 2
4-> cpu 3
8-> cpu4
ff-> autorisé partout
etc ...

je vous laisse chercher la doc si vous voulez en savoir plus:D
Du coup je passe d'une session à 12, l'autre à 20fps  avec un manque de fluidité, à 2 sessions à 30fps :B ! nickel, et de toutes façon j'ai qu'un double coeur donc on s'arrête à 2 FG smile

jano

Hors ligne

#2 16/02/2018 14:15:21

Biloute974
Membre
Inscription : 2/02/2014
Messages : 1 011

Re : lancer plusieurs session de FG sur un seul PC - affinité CPU

Salut,

très très intéressant ça pour simuler une sorte de double commande ?


Config: Core I7 7700  + 16 Go de Ram  DDR4+ Nvidia GTX 970 + LinuxMint 18.2 64 bits--> FG 2017.4.0
Yoke et pédale Saitek Proflight - Avions: 777 et DHC 6
Mes vols

Hors ligne

#3 16/02/2018 20:39:05

jano
Moderateur
Inscription : 13/11/2007
Messages : 864

Re : lancer plusieurs session de FG sur un seul PC - affinité CPU

non, pas pour du double commande, mais un avion ravitailleur commandé à la souris puis placé en autopilote, et ensuite un autre piloté au joystick qui va aller ravitailler.
il existe un avion ravitailleur, bien caché dans un coin, qui a des tuyaux et perches articulés, ce qui permet, un truc dans le genre en mp:

je le fais sur un mpserveur (le 13, vers PHLI et ses haut fps), mais il est aussi possible de connecter deux sessions de fg en local sans passer par un serveur.

tu peux aussi tester du double commande de la sorte, bien sur!

jano

Hors ligne

Pied de page des forums