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

Orange Pi 5 Max Performance improvement #640

Open
1 task
DummyTitan opened this issue Dec 17, 2024 · 5 comments
Open
1 task

Orange Pi 5 Max Performance improvement #640

DummyTitan opened this issue Dec 17, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@DummyTitan
Copy link

Is your feature request related to a problem? Please describe

The main issue is that at first it was running perfectly, with of course a low fps (23 to 25 fps). The thing is, the Orange Pi 5 processor is double the performance of the RPi5, and I know of people running this fine in their RPi5. Perhaps it requires a little bit of coding or research, but no one has any info on the net currently.

Whenever I was playing with my cousin, the system tended to lag a little, but it wasn't much. After a while playing and starting our bases, a lot of lag started happening, and traspasing floors or walls wasn't uncommon, which is frustrating, and I believe it might have something to do with the emulation or some kind of setting I put.

Describe the solution you'd like

As such, if there is any way that you could add to the ARM64_DEVICE some kind of setting for the rk3588 processor, which includes multiple SOC, it would be great; if it cannot be done, no problem. And if you could make a template for making it run in something like Puferpanel, which would allow me to see in live the issues presented in the Docker, it might also help (tried with pterodactyl and it had many issues with the panel so i was unable to install it).

Describe alternatives you've considered

I have attempted turning off the multithreading and turning it on, also changing the settings for the "BOX64_DYNAREC_STRONGMEM",
"BOX64_DYNAREC_BIGBLOCK", "BOX64_DYNAREC_SAFEFLAGS", "BOX64_DYNAREC_FASTROUND", "BOX64_DYNAREC_FASTNAN",
"BOX64_DYNAREC_X87DOUBLE".

Additional context

env.txt
json-code.txt
The env.text file is the .env file I used after changing the settings a little to see if there was any improvement, and the json-code.txt is a code I made to use as a template in pufferpanel that, unfortunately, didn't get farther than pulling the Docker image.

Feature Report Checklist

  • I am willing to implement this feature
@DummyTitan DummyTitan added the enhancement New feature or request label Dec 17, 2024
@sonroyaalmerol
Copy link
Contributor

I've added ARM64_DEVICE=rk3588 in the arm64 base image. You'll be able to test it as soon as @thijsvanloef updates the image tag. I'm not familiar with Puferpanel (and it's out of the "arm64-exclusive" scope) so I'll leave that to him as well :)

@thijsvanloef
Copy link
Owner

@sonroyaalmerol @DummyTitan You should be able to test ARM64_DEVICE=rk3588 with the thijsvanloef/palworld-server-docker:dev image :)

@DummyTitan
Copy link
Author

I reset my Box64 env config just in case and made sure to use the ARM64_DEVICE=rk3588, but did not use multithreading just in case and the lag and glitches are as always, the fps didnt see much improvement. Just in case i will try again with the multithreading on to see if there is any diffrence.

@DummyTitan
Copy link
Author

The multithreading helped with the waiting time in the load screen, but the fps became actually a bit more erratic; when I first get in it's at 4 fps, and after a while it goes to 21, 22, and can go down to 18 or less. Just in case this is the Docker compose code I'm using.
services: palworld: image: thijsvanloef/palworld-server-docker:dev restart: unless-stopped container_name: palworld-server stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop ports: - 8212:8212/udp - 27015:27015/udp # - 8212:8212/tcp # Port for REST API if REST_API_ENABLED: true env_file: - /srv/dev-disk-by-uuid-044ded6a-869c-4981-ad61-d131a8ab5a5d/Storage_and_Cache/palworld/enviorment/.env volumes: - /srv/dev-disk-by-uuid-044ded6a-869c-4981-ad61-d131a8ab5a5d/Storage_and_Cache/palworld:/palworld/ devices: - '/dev/dri:/dev/dri' - '/dev/dma_heap:/dev/dma_heap' - '/dev/mali0:/dev/mali0' - '/dev/rga:/dev/rga' - '/dev/mpp_service:/dev/mpp_service'
The devices I put are for the internal GPU, just in case, because I didn't know if it might make a difference since it does at least when transcoding in jellyfin. I just changed the .env file and started the Docker container again after. I don't know if I needed to delete something or not, but when I do that, OMV just rebuilds it. (Open Media Vault 7)

@sonroyaalmerol
Copy link
Contributor

Don't bother mounting your GPU device. Game servers, in general, almost never use the GPU as they're not rendering any graphics.

Unfortunately, providing a Box64 build for the rk3588 is all I can do here. I'm not a Box64 contributor, nor an expert at it.

Try playing around with the Box64 dynarec env vars again. Also, you can try setting BOX64_DYNAREC_PAUSE to either 0, 1, 2, or 3 and see if either of those makes any difference.

See the Box64 docs for more options you can experiment with: https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md

Considering the system requirements of running a Palworld server + emulation overhead, I'd say that's more or less the performance I'd expect from single board computers like your Orange Pi based on my exp.

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

No branches or pull requests

3 participants