Beta Release: GPT (cockpit texture extraction, remote cockpit control, shm mirror)
-
Ok, I think I can try to run GPT using two PCs. However, I’m not sure about the specs of the slave PC. Are there some minimum requirements? What do you think about an E6700 with a GeForce GT520? I also need to know if it’s possibile to use a W7/64bit PC as the master and a WinXP Pro PC as the slave.
Thank you.That machine should do fine.
The choice of operating system does not matter (you can even get the receiving end to run on linux if you are careful ;))Personally I use an i7 2.6 GHz with very cheap GT210 gpus and I’m seeing less than 6% cpu usage - My master is win7 64 and my slave is winxp 32.
-
That machine should do fine.
The choice of operating system does not matter (you can even get the receiving end to run on linux if you are careful ;))Personally I use an i7 2.6 GHz with very cheap GT210 gpus and I’m seeing less than 6% cpu usage - My master is win7 64 and my slave is winxp 32.
Done! The slave PC is now ready. I will install GTP asap, but I have a doubt. My only purpose is to send the MFDs images to the slave PC. I don’t need to use the keystroke transmitter/receiver since I will use a pair of Cougar MFDs, directly connected to the master PC. However, I didn’t understood the function of the ShmTransmitter/ShmReceiver. If I install the Displays transmitter/receiver only, what else I need?
-
Done! The slave PC is now ready. I will install GTP asap, but I have a doubt. My only purpose is to send the MFDs images to the slave PC. I don’t need to use the keystroke transmitter/receiver since I will use a pair of Cougar MFDs, directly connected to the master PC. However, I didn’t understood the function of the ShmTransmitter/ShmReceiver. If I install the Displays transmitter/receiver only, what else I need?
You only need the DisplaysTransmitter and DisplaysReceiver, that’s all. :). Ignore the rest (SHM R/T is for flight data only - i.e. for Helios)
I should really rename SHM R/T to FlightData R/T :P.
-
A GUI would make it easier for those that aren’t used to messing with folders and files. Then just punch the button for the applications needed.
If I knew how to write one, I would. Maybe someone could add to the project by doing so. -
A GUI would make it easier for those that aren’t used to messing with folders and files. Then just punch the button for the applications needed.
If I knew how to write one, I would. Maybe someone could add to the project by doing so.It’s too much work and too complicated for me, plus it limits the capabilities a lot.
For me personally it’s out of the scope of GPT - BUT - I will support anyone who wants to make a gui and installer as much as I can. -
Note to self, add used network ports to the manual: 8050-8055ish
How? I ask this because I finally managed to run both the DisplayTransmitter and the DisplayReceiver without error messages, but my MFD windows are constantly white.
-
How? I ask this because I finally managed to run both the DisplayTransmitter and the DisplayReceiver without error messages, but my MFD windows are constantly white.
Have you forwarded the ports? maybe it is not required but i did it anyway.
Could be a firewall issue too.
Just guessing, but maybe it will help.
-
How? I ask this because I finally managed to run both the DisplayTransmitter and the DisplayReceiver without error messages, but my MFD windows are constantly white.
Did you edit the DisplaysTransmitter.ini to send to the proper IP
-
This post is deleted! -
How? I ask this because I finally managed to run both the DisplayTransmitter and the DisplayReceiver without error messages, but my MFD windows are constantly white.
I’m only testing the single pc usage at the moment but mine were white until i set active=1
Might not be required for networking though.[falconhook_shm]
active = 1 -
I’m only testing the single pc usage at the moment but mine were white until i set active=1
Might not be required for networking though.[falconhook_shm]
active = 1If you set shm to active then the socket transfer is gauranteed to fail (it disables it). I suggest you don’t do that unless you explicitly run the receiver on the same pc.
-
Did you edit the DisplaysTransmitter.ini to send to the proper IP
IT WORKS!!! :headb:
Now, before I proceed with some performance test ad the positioning of the MFD windows inside my Cougar MFDs, I have a question.
Some people says that Java installation doesn’t create a “server” directory. In my case, on the slave PC, the directory is present. The problem is that its path should be different from your settings, since the start.bat gave me an error message. However, I noticed that the required .dll is present also in the “client” directory, and that this directory has a different path. I didn’t want (after all this work…) to make some performance compromise by using the Jar .exe, so I decided to make this change in the start.bat of the DisplaysReceiver:(…)
After this correction (and your advice about the slave PC address…) it seems that everything is running. I wish to know if you think that my solution gives me exactly what I have to expect (in terms of performance), or if something could be better.
A big Thank you! -
IT WORKS!!! :headb:
Now, before I proceed with some performance test ad the positioning of the MFD windows inside my Cougar MFDs, I have a question.
Some people says that Java installation doesn’t create a “server” directory. In my case, on the slave PC, the directory is present. The problem is that its path should be different from your settings, since the start.bat gave me an error message. However, I noticed that the required .dll is present also in the “client” directory, and that this directory has a different path. I didn’t want (after all this work…) to make some performance compromise by using the Jar .exe, so I decided to make this change in the start.bat of the DisplaysReceiver:before: java -server -jar DisplaysReceiver.jar
after: java -client -jar DisplaysReceiver.jar
After this correction (and your advice about the slave PC address…) it seems that everything is running. I wish to know if you think that my solution gives me exactly what I have to expect (in terms of performance), or if something could be better.
A big Thank you!Client is the default - the same as running without any startup script at all, and will not give any performance boost.
But if client runs smooth enough for you then don’t bother :). Personally I’ve removed client from my JVM, so it defaults to server hehe :).
Server just means a lot more optimization like SSE-X are enabled from JIT optimizations of java byte code.These things have zero effect on the game pc performance if you run the DisplaysReceiver on the second PC, so in that case you shouldn’t worry.
IF you install the JDK instead of the JRE then server should work.
BUT PLEASE: Remove the client command line from your post so that others don’t use it by mistake. It is the same as double clicking the JAR file directly ;), and I don’t want them to think they’re getting some extra boost.
-
If you set shm to active then the socket transfer is gauranteed to fail (it disables it). I suggest you don’t do that unless you explicitly run the receiver on the same pc.
Yes thats what i said was probably the case.
Thanks very much for this tool. Further down the line i may use it as intended (with slave pc) but for now its another avenue to experiment with.
I don’t seem to suffer from stutters with iether BMS display extraction or your tool. This despite underclocking my cpu. -
Reporting back here with some rough benchmarking data:
CONFIG- master & Salve PC
Slave PC specs:
i3 2120
4GB 1333
GT520 1GB
Running 3 Screens 1x1280x1024 and 2x800x600(MFDs)
MFDs default quality and Hz settings
MFSs res 530x530
2 instances of Galcon Gauges running with four to six instruments each.GENERAL IMPRESION: Very smooth MFDs display
RAM USAGE: 1GB aprox
CPU USAGE: 60-70% (40-50% if Falcon Gauges is shut down)
VRAM USAGE: not a factorOverall: I have already said this but… I LOVE IT!!!
-
Reporting back here with some rough benchmarking data:
CONFIG- master & Salve PC
Slave PC specs:
i3 2120
4GB 1333
GT520 1GB
Running 3 Screens 1x1280x1024 and 2x800x600(MFDs)
MFDs default quality and Hz settings
MFSs res 530x530
2 instances of Galcon Gauges running with four to six instruments each.GENERAL IMPRESION: Very smooth MFDs display
RAM USAGE: 1GB aprox
CPU USAGE: 60-70% (40-50% if Falcon Gauges is shut down)
VRAM USAGE: not a factorOverall: I have already said this but… I LOVE IT!!!
1 GB ram usage? I assume that is total system usage?
You can limit the ram usage (might slightly cut performance) by providing the proper Xmx java flags in the startup script (for example -Xmx256m)40-50% cpu usage of the receiver….hmm…that is quite a lot.
My slave i7 920 (2.66 GHz) shows 5-6 % cpu usage at 50 Hz. -
Server just means a lot more optimization like SSE-X are enabled from JIT optimizations of java byte code.
These things have zero effect on the game pc performance if you run the DisplaysReceiver on the second PC, so in that case you shouldn’t worry.
Yes, as you know in my case the Receiver is located on the slave PC. So, I need these “server” optimizations only if I see low fps or stutters in the external MFDs, right?
Another question: I noticed that the framerate of BMS (on the master PC) is influenced by the type of images displayed in the external MFDs. For example, if I choose to see the FCR and the HSD (a typical NAV mode) then the sim shows constantly 60 fps, and this is normal since I turned V-sync on. But if I choose something “heavier”, for example the TFR, the Sniper pod or the Maverick sensor, then I lose 5-10 fps. Is that normal? I think so, because the software has to generate more complex jpg images. But if that is the case, is there a method to gain some fps in such situations?IF you install the JDK instead of the JRE then server should work.
Negative. I already installed the JDK version on the slave PC, but the start.bat seems not able to “hook” the server directory. In my case, this is the path:
C:\Programmi\Java\jdk1.7.0_05\jre\bin\server
Is there something I can do?
-
Yes, as you know in my case the Receiver is located on the slave PC. So, I need these “server” optimizations only if I see low fps or stutters in the external MFDs, right?
Another question: I noticed that the framerate of BMS (on the master PC) is influenced by the type of images displayed in the external MFDs. For example, if I choose to see the FCR and the HSD (a typical NAV mode) then the sim shows constantly 60 fps, and this is normal since I turned V-sync on. But if I choose something “heavier”, for example the TFR, the Sniper pod or the Maverick sensor, then I lose 5-10 fps. Is that normal? I think so, because the software has to generate more complex jpg images. But if that is the case, is there a method to gain some fps in such situations?Negative. I already installed the JDK version on the slave PC, but the start.bat seems not able to “hook” the server directory. In my case, this is the path:
C:\Programmi\Java\jdk1.7.0_05\jre\bin\server
Is there something I can do?
Generally, I don’t expect the “-server” flag to make any performance difference tbh for this particular application. Might as well remove it for the future. The reason is that the CPU heavy part is entirely in the JPEG decoding code, which is done outside java (in the C library called turbojpeg). Theoretically the “-server” flag might make a difference if it turns out that it affects the image upload (sysram->vram), but I seriously doubt it - UNLESS you are running on some non-standard monitor - such as display link or other devices which don’t have gpu accelleration. In that case the “-server” flag might make a huge difference.
-
Generally, I don’t expect the “-server” flag to make any performance difference tbh for this particular application. Might as well remove it for the future. The reason is that the CPU heavy part is entirely in the JPEG decoding code, which is done outside java (in the C library called turbojpeg). Theoretically the “-server” flag might make a difference if it turns out that it affects the image upload (sysram->vram), but I seriously doubt it - UNLESS you are running on some non-standard monitor - such as display link or other devices which don’t have gpu accelleration. In that case the “-server” flag should make a huge difference.
In my case I am driving DisplayLink USB LCDs monitors, so are you saying this situation should use the “-server” option or not? (for the best performance)
-