Autodesk-Fusion-360-for-Linux: Shedding some light on various problems

Hi,

I’ve been messing with Fusion 360 in Wine for the past month or so. I’ve encountered this repository several times during my research, and I’ve noticed that there is a lot of confusion regarding the whole setup. From what I’ve seen in this repo, you aren’t very knowledgeable on the technical aspects of it all, so I would like to present my findings and work so far. I hope you don’t find my tone offensive here, I’m really just trying to help. 😃

Installation

Let’s get this out of the way first, the setup script is an overcomplicated mess and I would not want to run it on my computer. All you need to install Fusion is Wine itself (it needs to support both 32 and 64 bit, because the installer and most winetricks verbs are 32 bit, but Fusion itself is 64 bit).

Run the following command to set up dependencies: winetricks atmlib gdiplus msxml3 msxml6 vcrun2017 corefonts win10. That’s it! I’ve yet to check whether this can be reduced even more, but this gets Fusion to actually “run and drive”.

Then run the installer. It doesn’t appear to require patching anymore, so that’s good. Unfortunately, the progress indicator is broken, and the installer will not exit when it’s done. This post explains how to check when it’s done: find the installation log file at $WINEPREFIX/drive_c/users/$USER/AppData/Local/Autodesk/autodesk.webdeploy.streamer.log, and look for a line like this towards the end:

2021-10-28 21:00:02,885 - MainProcess(272) - InstallDriver - adsk.dls.streamer.process.process - INFO :: Process Complete in 195.00197 seconds

When you see this, the installer has finished and you can kill it with Ctrl+C. Running a silent install might help work around this, otherwise a simple wrapper script would be helpful.

Afterwards you can start Fusion 360 and log in. Then we get to the next problem.

Graphics drivers

First of all, unless your copy of Wine has the Vulkan child window rendering patch (see https://bugs.winehq.org/show_bug.cgi?id=45277), DXVK will not work, no matter your driver, and neither will the Vulkan renderer in WineD3D. With that patch, DXVK does work, and appears not to have any rendering bugs. However, there’s still a problem where the work area will always be one frame behind, which is quite annoying (the visible effect is that everything you do won’t show up on screen until you do something else).

For the rest, here are my test results. I have an Intel 8th gen laptop, and a desktop with an AMD RX580 GPU. I do not have any Nvidia hardware, so I can’t really say anything about those.

Direct3D 11 is unfortunately broken. All I see in the work area is the Fusion 360 logo and nothing else. (Note that it works with DXVK, but I do not recommend using it due to the problems mentioned above).

OpenGL core profile works, but has some rendering issues with selections and highlights which make it annoying to use.

Now for the most interesting. Direct3D9 has rendering issues out of the box, but using Gallium Nine, I’ve yet to encounter any. Performance is pretty good. Note that Gallium Nine will not work on Nvidia’s proprietary driver.

One last thing, the data panel is broken when using DXVK or Gallium Nine. You need to set a library override in winecfg for AdCefWebBrowser_dpiAware.exe so that it uses the builtin d3d9. This can easily be scripted using wine reg to set a registry key. Unfortunately this is currently broken with Nine, but I’ve got a pending PR for that: https://github.com/iXit/wine-nine-standalone/pull/155.

Windowing bugs

I’ve identified several windowing bugs. Here’s a merge request to address those in Wine: https://gitlab.winehq.org/wine/wine/-/merge_requests/2343.

  • The floating panels (such as the browser and the navbar at the bottom) tend to disappear behind the main window. The Wine MR fixes this for the virtual desktop, otherwise you need to ask the authors of your window manager or desktop to make sure that managed windows are never restacked above any override_redirect windows.
    • Works fine in mutter.
    • Works fine in i3.
    • Here’s a MR which fixes this for wlroots-based compositors such as sway: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4052. Note that in sway, override_redirect windows are always rendered on top, so the floaters will remain visible, but confusingly not accept any input because the X server thinks they are behind the main window. The aforementioned MR fixes this.
  • The floating panels show up on all workspaces. Again, my Wine MR fixes this by telling the application that it’s minimized when it’s on an off-screen workspace. On the window manager side, you need to make sure the WM sets WM_STATE to withdrawn on windows that are off-screen.
    • I’ve confirmed that this works in mutter (GNOME)
    • i3 sets the state to withdrawn, but never sets it back to normal! This means that Wine applications will be frozen when you return to their workspace. I need to file an issue over there about that.
    • wlroots MR: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4057. This also needs work in each compositor. I’ve got a working proof of concept implementation for sway but I’m still waiting for advice on making it merge-worthy.
  • The floating panels tend to break when you click on them. This is due to Wine incorrectly handing them over to the window manager. The MR fixes this and no further work is required from WMs.
    • This also fixes non-working checkboxes.
    • Note that this will make the “always on top” issue worse. There’s nothing to do about this, it’s how it’s supposed to be: unmanaged windows on X11 are expected to be on top. The previous point should help though, because you can just put Fusion on its own workspace and it’ll get out of your way. Alternatively, minimizing it already works.

Additionally, the browser tree and some other things require XShape support to work properly. On X11 or in the virtual desktop, this should already work fine, but on Wayland this is up to the compositor. GNOME already supports it, KDE should work fine too, wlroots needs work that I plan on doing. For now it’s a bit difficult to use the browser tree.

The freeze-on-exit bug

This is bug #214. Honestly I’m not sure why it’s happening. What I’ve found that works is either:

  • Running Fusion in a terminal. To quit, attempt to close the window, then press Ctrl+C in the terminal and it should exit.
  • Using the virtual desktop. Just close the desktop window and Wine will eventually tell you that the app is not responding and ask you to if you want to kill it.
  • Run wineboot -e. This has the same effect as above. It’s theoretically possible to rig up a program that listens for attempts to close Fusion and runs that command.

It’s also a good idea to set a DLL override for ADPClientService.exe to disabled. This should disable some telemetry and prevent that process from lingering in the background after quitting.

The Wine Wayland port

I’ve tested the Wayland port a little bit. It solves all the windowing issues listed above by working completely differently. The floaters are contained in subsurfaces of the main window, so they will never interfere with anything else. However, the data panel, which is a different process, will currently show up as a separate window. DXVK also works flawlessly with no additional patching.

The catch is that it’s currently not very stable. It takes several attempts to get Fusion to start at all, and then it has a tendency to crash after a short while. Definitely not in usable shape yet, but very promising.

If you’ve made it this far, thanks for reading. I really hope this helps someone!

About this issue

  • Original URL
  • State: open
  • Created a year ago
  • Reactions: 20
  • Comments: 20 (3 by maintainers)

Most upvoted comments

So I did a binary grep for atmlib in the fusion install directory, no results at all so it’s probably not even using it.

I just did a test install in a clean prefix to confirm some things.

  • The passing --quiet to the installer allows it to exit correctly when it’s done.
  • I was able to start fusion with just winetricks msxml6 win10.
  • Missing corefonts isn’t really a problem, the login screen is falling back a different font but otherwise I haven’t noticed any problems in the UI.

Unfortunately I was only able to start fusion once or twice, afterwards it seems the main UI refused to start anymore. The splash window disappears and the main window doesn’t replace it, shortly followed by error spam in the terminal. I’ll try again soon. I’m using Wine 8.4.

@9ary about the installer, check out my open source installer (please report any bugs, it’s still a baby) fusion360-streamer

Very cool, this will be great for version pinning especially on nixos. Thanks!

No, the Wayland port is a different beast entirely. Fusion just suddenly exits.

… and then it has a tendency to crash after a short while.

Do you experience something like this?