-
Notifications
You must be signed in to change notification settings - Fork 86
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
Blender with AMD GPU and HIP #710
Comments
It is expected that apps/games running in a Steam Linux Runtime container cannot load arbitrary libraries from the host system, other than accelerated graphics drivers (OpenGL, Vulkan, VA-API, ...) which have a series of special cases to make them work. Using the GPU for general-purpose computation (HIP, CUDA, OpenCL, ...) is not exactly graphics, but it's working in approximately the same space, so perhaps ideally the container infrastructure would pick up this library from the host too. I think we currently have similar special cases for some GPU computation APIs (in particular, I think we do have CUDA), but not all of them. I see that Blender's code to interact with HIP involves running a To know whether this is feasible, we'll need some information from AMD, or from you if you happen to know the answers:
|
I do have answers for some questions, but be aware that some answers might be applicable to Fedora only:
Hope those answers will help somehow, but nice feature would be option for disabling SteamLinuxRuntime per app, something like |
Also, seems like related issue from Blender repo: https://projects.blender.org/blender/blender/issues/129895 |
If |
Sorry, that's probably too "big" to be reasonable to pull into the container as part of the graphics stack: we can pick up a few essential libraries like the ones needed by Mesa, but every new library we add involves another roll of the dice on whether it will set up some incompatibility that causes a crash, and sooner or later our luck will run out. So I think whatever happens here will have to involve
I can see the appeal of that, but that's outside the Steam Runtime team's control, and would have to come from a Steam client developer. |
On my system, it looks like that: |
Honestly, that's the only optimal solution I see, the suboptimal but still good one would be, putting some voodoo magic into launch options, so it would escape/go through/disable that container and run natively, something like Or maybe there's already some environment variable or something else that does that, and I'm not aware of it ( |
In the short term, the best/least-bad workaround is
No, that won't work. Disabling the use of the older For native Linux apps/games that target the scout ABI (which means most native Linux apps/games right now, including Blender), For completeness:For native Linux apps/games that target the newer sniper ABI, the SLR container is required and cannot be disabled. For Windows apps/games running under Proton 5.13 or newer, the SLR container is required and cannot be disabled (except by choosing to use a very old old version of Proton instead). For Windows apps/games running under Proton 5.0 or older, the SLR container is not used and cannot be enabled (except by choosing to use a newer version of Proton instead).
This is not something that is supported or supportable. (A developer-oriented mechanism does exist, but should not be recommended to end users as a workaround.) |
So instead of explicitly disabling SLR per app, we can disable SLR completely and then explicitly enable it per app (if needed, but I guess better enable for all apps and then disable for those one that doesn't work well with it). Why I didn't think of that, that's an option, the junky one, but definitely an option, big thanks for deep dive explanations and for single (I hope for now) solution. |
If there was a supported/supportable way to achieve this, then yes I think that would be better, but currently there is not. A future Steam Client release might add a way to do this (but this is not under my control, so no guarantees). If it does, I'll try to update this issue to mention it. |
I just wanted to chime in here as well. I'm the current Linux maintainer for Blender. As you guys already figured out it is not really viable for Steam to ship all the needed HIP libraries. We (the Blender developers) do not really see a good way for Blender to work inside of the new steam sandbox. We hope that we can reach out and discuss the alternatives with Valve directly and come up with a solution. |
Your system information
None
Please describe your issue in as much detail as possible:
When running Blender through Steam, it uses SteamLinuxRuntime 1.0 (scout), which causes Blender to not be able to load libamdhip64.so (dependency of Cycles Rendering Engine when using AMD GPU as render device (a.k.a. HIP).
Running it directly or with
-compat-force-slr off
though, works fine.The problem is, disabling SteamLinuxRuntime globally is not a good idea I guess.
Examples
Running through Steam
Running through Steam with
-compat-force-slr off
Running directly
Steps for reproducing this issue:
Edit -> Preferences... -> System -> Cycles Render Devices -> HIP
No compatible GPUs found for Cycles...
Steps to avoid this issue (kinda hack I guess):
Run steam with
-compat-force-slr off
(Disables SteamLinuxRuntime globally)OR
Run Blender directly, without Steam, eg.
bash ~/.local/share/Steam/steamapps/common/Blender/blender-launcher
in your terminalThe text was updated successfully, but these errors were encountered: