RigsOfRods / rigs-of-rods

Main development repository for Rigs of Rods soft-body physics simulator
https://www.rigsofrods.org
GNU General Public License v3.0
991 stars 175 forks source link

fails to compile on Linux ARM64 #3051

Closed ghost closed 10 months ago

ghost commented 1 year ago

Hi all,

Rigs of Rods fails to compile because of either syntax errors in the code or the compiler being the wrong version.

I followed the guide on https://github.com/RigsOfRods/rigs-of-rods/wiki/Compile-(Linux).

Logs:

cmake: cmake-output.log ninja: ninja-output.log

My specs and versions of (possibly) involved programs:

Motherboard: SolidRun HoneyComb LX2K CPU: NXP LayerScape LX2160A Cortex-A72 (16c, 16t @2Ghz) GPU: AMD Radeon RX580 XFX RAM: 64G ECC

versions: cmake: 3.25.1 ninja: 1.11.1 git: 2.40.1 gcc: 12.2.0

Thanks for any help in advance!

vido89 commented 1 year ago

Try https://github.com/RigsOfRods/rigs-of-rods/wiki/Compiling-release-version-of-RoR-(Linux)-without-conan

ghost commented 1 year ago

Try https://github.com/RigsOfRods/rigs-of-rods/wiki/Compiling-release-version-of-RoR-(Linux)-without-conan

Thanks for the quick reply!

I also tried to build the dependencies and they failed to build with -Wnarrowing errors: https://dpaste.com/6V2AKQR53

Building the game itself with the method in the link also fails with the same error message given by ninja.

UPDATE:

Your fork and only-a-ptr's fork of rigs-of-rods succeed to build! The binary fails to start tho.

log: ror.log I use wayland. The game starts a black screen and crashes shortly after.

I am able to run the game using x86_64 emulation but I hope to get more performance out of it by running it natively.

I found #2823. I have libogre-1.12-dev and libogre1.12.10 installed as well as libmygui-dev_3.4.1.

ghost commented 10 months ago

@vido89 Sadly, RigsOfRods fails to build again, this time I think it's because I'm on Debian Sid.

cmake.log

make.log

I've been trying to compile RoR for natively for ARM64 for a while now.

Do you know, by any chance, how the RigsOfRods dev team compile the release builds? Which distribution do they build them on? Which package version do they use?

Thanks in advance.

CuriousMike56 commented 10 months ago

@HanoJing Not sure about release builds, but the GitHub Actions builds use Ubuntu 22.04, aka ubuntu-latest. Its build scripts can be found in the workflows folder: https://github.com/RigsOfRods/rigs-of-rods/tree/1b18ad364b484a50c95f23ac5ad51fc0ae2c4ef8/.github/workflows

ghost commented 10 months ago

Hey back, Debian Sid recently updated parts of the compiler toolchain, RigsOfRods now compiles fine, errorless. The game is running absolutely great!

Some notes: On some maps, there will be areas with the white texture, on the f8_testtrack most of the maps surface is properly texturized, not right. Disable shadows in the graphics settings to get more texturized areas. When turning on "use alternative vehicle materials" in the graphics settings, the vehicles will have their right texture and won't be white, at least on some vehicles like the BMW E39 M5 Driftking and Dodge Viper GTS Coupe (Race)

CuriousMike56 commented 10 months ago

@HanoJing Most vehicle materials require nvidia-cg-toolkit, which unfortunately is closed source and (AFAIK) doesn't have an ARM64 build. Hopefully we'll be able to move away from Cg in the future.

ghost commented 9 months ago

@HanoJing Most vehicle materials require nvidia-cg-toolkit, which unfortunately is closed source and (AFAIK) doesn't have an ARM64 build. Hopefully we'll be able to move away from Cg in the future.

Yes I know. Definitely looking forward to the aspirations of the RoR-team. nvidia-cg-toolkit also seems outdated (2012 was the last release) and yeah, once that dependency is gone, the whole project should be made up out of 100% free dependencies, right?

Thanks and lots of success!

ghost commented 9 months ago

Important notice: On Debian Sid, There is white texture on the map, but roads and buildings and all are visible on NeoQueretaro for example and also more maps.

On Gentoo however, the whole texture of the map is white and the game is unplayable.

The reason for this difference is the OIS version: Debian: libOIS-1.3.0.so Gentoo: libOIS-1.5.1.so

libOIS-1.3.0.so has to be used in order to fix this issue.

CuriousMike56 commented 9 months ago

Could you please upload the RoR.log files (located at ~/.rigsofrods/logs) from both systems?

ghost commented 9 months ago

Could you please upload the RoR.log files (located at ~/.rigsofrods/logs) from both systems?

Sure.

I just tested OIS-1.4.0 which works also tested OIS-1.5.0 which does not work.

Gentoo RoR.log (RoR built with OIS-1.5.0 and having the issue): RoR.log

Debian RoR.log (RoR built with OIS-1.3.0 and not having the issue): RoR.log