Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Improve the speed on PPC64LE host to run x86_64 binary #946

Open
runlevel5 opened this issue Aug 22, 2023 · 3 comments
Open

Comments

@runlevel5
Copy link

runlevel5 commented Aug 22, 2023

Info

$ uname -ar
# Linux shrimp-paste 6.5.0-0.rc6.20230818git0e8860d2125f.47.fc40.ppc64le #1 SMP Fri Aug 18 13:42:16 UTC 2023 ppc64le GNU/Linux
$ git clone https://github.com/ptitSeb/box64.git
$ cd box64
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -PPC64LE=1 -DPAGE64K=ON
$ make -j32
$ sudo make install

$ cd ~/Games/PillarsOfEternity
# NOTE: this is the x86_64 Linux Pillars Of Eternity game (purchased from GOG)
$ file PillarsOfEternity
PillarsOfEternity: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=848f3a372e45bc39c4e8b77a6bce42c5bad3e9ee, stripped
$ BOX64_ENV='MESA_GL_VERSION_OVERRIDE=3.2' box64 ./PillarsOfEternity

Running on POWER9, altivec supported with 32 Cores
Params database has 25 entries
Box64 v0.2.4 45c4117a built on Aug 21 2023 22:28:46
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 50 Env var
Looking for ./PillarsOfEternity
Rename process to "PillarsOfEternity"
Using native(wrapped) libdl.so.2
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
Using native(wrapped) libGLU.so.1
Using native(wrapped) libGL.so.1
Using native(wrapped) libX11.so.6
Using native(wrapped) libXcursor.so.1
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libm.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Found path: /home/tle/GOG/Pillars of Eternity/game/PillarsOfEternity
Using emulated /home/tle/GOG/Pillars of Eternity/game/PillarsOfEternity_Data/Mono/x86_64/libmono.so
Mono path[0] = '/home/tle/GOG/Pillars of Eternity/game/PillarsOfEternity_Data/Managed'
Mono path[1] = '/home/tle/GOG/Pillars of Eternity/game/PillarsOfEternity_Data/Mono'
Mono config path = '/home/tle/GOG/Pillars of Eternity/game/PillarsOfEternity_Data/Mono/etc'

the game took nearly 20min to get to the menu screen. Further action is so sluggish, I could not get further than this screen.
No error output FYI

Screenshot from 2023-08-22 22-51-10
Screenshot from 2023-08-22 22-54-06
Screenshot from 2023-08-22 23-13-18

Wondering if the team could improve the performance on PPC64LE Linux host? I am more than happy to offer access to my box for development work.

@ksco
Copy link
Collaborator

ksco commented Aug 22, 2023

refer to #242

@ptitSeb
Copy link
Owner

ptitSeb commented Sep 9, 2023

Yeah, this is basicaly asking for a Dynarec for PPC64LE. It is certainly doable, but tjhat needs some works, and access to a machine.
(I tried in the past to work on box64 with a remote access machine only... it's really not practical, so I will not do it again).

Without access to any PPC64LE machine, I cannot do it myself. Writing the Dynarec for Box64 needs knowledge in x86_64 assembly and PPC64LE assembly (and docs for that, but I assume the are open sources).

@runlevel5
Copy link
Author

runlevel5 commented Sep 10, 2023

@ptitSeb i am more than happy to grant you full RDP, VNC and SSH access to my box. (if there is anything I could do to make it practical for you)

In regards to docs, I remember @classilla has mentioned once about a collections of books on this topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants