-
-
Notifications
You must be signed in to change notification settings - Fork 1
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
3D hardware acceleration? #20
Comments
Hi, this is a (sad) known issue... and a work in progress, see fsquillace/junest#344 Latelly I discovered that by installing
something changes in the output messages. However, I've not done furter experiments about this. Would you try by yourself? |
Right now I've tried to build SuperTuxKart by adding libselinux in "DEPENDENCES" and the line above in the AppRun, this is the message I have:
|
NOTE: without "libselinux" installed into the AppImage, exporting LD_LIBRARY_PATH is useless and destructive... the AppImage would not run at all. In some way, "libselinux" helps to run both the libraries from the AppImage and from the host. |
UPDATE: also "libOpenGL libEGL libGLdispatch" must be included in "LIBSAVED=" |
UPDATE: I've included also "libX11.so" in "LIBSAVED=" and I have several errors like this
I can't see the bottom, the messages are too long for my terminal |
UPDATE: I've included "libX" insead of "libX11.so" in "LIBSAVED=" and I have several errors related to all libraries libX* in the AppImage, like this
again, I can't see the bottom, the messages are too long for my terminal |
UPDATE: in first I've included all libraries in /usr/lib, the game starts but not the gameplay Then I've execute directly the whole JuNest without removals... same result. So, I think that here the issue is to use "--bind" to let the AppImage use libraries from the host... or at least LD_PRELOAD @kenderipa if you want to test this, I'll resume the lines you must change in the script:
From here, I can't see furter improvements. I hope you are luckier. Have fun. EDIT: there could be fewer steps (the AUR related ones) if only "libselinux" was included by default in the AUR repositories (or in JuNest) |
@kenderipa see fa7c6f6 From now all you need is:
all our tests can be done like this. |
Thanks! I'll test it during the week. Don't have much time at the moment. |
In the meantime the AppImages are Type3: no |
Interestingly, 3D acceleration works for ScummVm out of the box. |
Does ScummVm requiring GL accelleration? I know that 32bit games in WINE work quite well, also without these implementations. Maybe you're wrong. |
That I may be, but I'm pretty sure that Longest Journey, a 3D game, with an enhanced texture pack requires at least OpenGL. Also, I can switch on OpenGL for ScummVM GUI. Only v-sync doesn't seem to work. |
What GPU? I've an old Nvidia (so I'm pretty sure that it would not work for me out of the box) |
Also you should see if your AppImage's /usr/lib/dri contains all drivers or just "swrast_dri.so"... or nothing. If nothing or just "swrast_dri.so" is better. |
1660 Ti |
Can you do a test with SuperTuxKart? |
Sure, in the next few days. |
Steps I've done (for
No audio, no gameplay... just menus and loading screen |
So, Supertuxkart doesn't work for me, I have an endless loading screen. |
Its the same for me, we need to found the reason because the game does not starts. Try to run the AppImage using LD_DEBUG https://bnikolic.co.uk/blog/linux-ld-debug.html |
@kenderipa maybe you're right. Maybe there is an issue only with SupertuxKart (we miss something in the bundle). I've built the old car race game Torcs and works! I'll publish the new repo soon (just the time to fix missing audio issue). EDIT: https://github.com/ivan-hc/Torcs-appimage Just the time that this workflow run has finished. @fsquillace this is really interesting. Here we go! |
I've built Astromenace and 0 A. D., they both run very slowly, about 5-10 FPS. |
you should run them using |
@kenderipa I've tried to install 0ad and got this error
I've done a search and found this https://wiki.archlinux.org/title/OpenGL EDIT: also including |
This is the script I wrote for "0AD" 0ad-junest.txt (I had to rename it to .txt file because github does not allow .sh formats) @andy5995 I'd like to have you in this Team, you're the expert of drivers support for this game If you already had experienced with Archimages, all you have to do is to run the script I wrote to have a 1,8 GB AppImage of the "0AD" game, but we have an issue here to made it work with the host's drivers (being Archimage a Arch Linux container into an AppImage... we are trying to made it use the drivers of the host system). |
@ivan-hc I'm no expert regarding the drivers but thank you for the compliment. The way I worked around this with the 0ad AppImage was build one using Ubuntu 22.04 (Jammy). With no changes to how I built the AppImage, the image detected Vulkan whereas the image built on Ubuntu 20.04 (focal) did not (see the link above for more details). |
@andy5995 sure, I remember this detail about the two different versions of Ubuntu. In this case, Archimages are able to work also on old dritributions with at least the Linux kernel v2.6 (so distributions of 10 years ago or more). The only thing this kind of packaging lacks is support for GPU accelleration, due to its container's nature. However, to include the changes we are discovering in this issue, we are near to a solution. In this example, 0ad runs and works but with a very low performaces and about 5-10 FPS... we have this message in the terminal (and on the UI):
Now, two would be the solutions:
Now, the responsible of the drivers is "libLLVM-17.so" in /usr/lib (into the AppImage) that asks for "swrast_dri.so" in /usr/lib/dri (always inside the AppImage). We need a way to use our drivers on the host instead of let the AppImage rely on what its bundled into it. |
Just experienced that this issue only affects systems with proprietary Nvidia drivers, I've tried this in some Kde games at ivan-hc/KDE-games-suite-appimage#3 and in a pure Archimage-based Bottles version (not the hybrid one I've published, mixing Arch Linux + Debian). 3D gamse will work with Nouveau enabled, not with Nvidia propriatary drivers. |
@kenderipa how can I force an app using "nouveau" drivers instead of "nvidia"? |
No idea. You can, of course, uninstall the nVidia drivers and reinstall them again. |
its not a solution, but a workaroun... like the one I proposed. No progresses in these months on this issue. |
aisap binds the following to allow access to the GPU, maybe one of these is missing?
|
I was also trying to work this out, as this was the last thing I was stuck on, specifically for OBS using nVidia hardware acceleration. I had tested some theories, but they did not work out in the end. Back to the beginning. |
@qurious-pixel JuNest, and Archimages in general, use theiir internal copy of Bubblewrap to mount directories from the host system. This is how the AppRun works in the latest version of my Archimages:
where "$BINDS" are all mountpoints. For example, "$USR_SHARE_THEMES_DIR" is
with this command you use "junest" to launch "obs", and the internal Bubblewrap "-b" mounts the "/usr/share/themes" of the host in the guest Arch Linux container. The directory "/usr/share/themes" must exist in both, host and guest. Once we mount the exact files and directories from the host into the guest, we solve this issue. But as you can see, this is an issue opened from months, without significative progresses. |
Hello again,
I'm trying to build a Lutris AppImage. After building and l;aunching, it has following output:
Vulkan is not available or your system isn't Vulkan capable
Vulkan is, of course, installed on my system. How do I expose it for the AppImage (it probably tries to call vulkaninfo).
The text was updated successfully, but these errors were encountered: