Fusion 360: Difference between revisions
mNo edit summary |
mNo edit summary |
||
| Line 1: | Line 1: | ||
== Fusion 360 on Linux | = Fusion 360 on Linux = | ||
* https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux | |||
== Additional Fixes == | |||
** | {| class="wikitable" | ||
* | |- | ||
! System !! Intel Iris Xe Graphics (RPL-P), X11, Wine-staging 11.6, Mesa 26.0.4, Vulkan 1.3.275 | |||
|- | |||
! Installer !! cryinkfly <code>autodesk_fusion_installer_x86-64.sh</code> (<code>--install --default</code>) | |||
|- | |||
! Fusion version !! 2702.1.47 | |||
|- | |||
! Install path !! <code>~/.autodesk_fusion</code> | |||
|- | |||
! Wine prefix !! <code>~/.autodesk_fusion/wineprefixes/default</code> | |||
|- | |||
! Production hash !! <code>6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5</code> | |||
|} | |||
== Usage == | |||
Install apt packages: | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install yad | |||
</syntaxhighlight> | |||
Apply all fixes in order after a fresh install with: | |||
<syntaxhighlight lang="bash"> | |||
./autodesk_fusion_installer_x86-64.sh --install --default | |||
</syntaxhighlight> | |||
Shell variables used throughout: | |||
<syntaxhighlight lang="bash"> | |||
WINE_PFX="$HOME/.autodesk_fusion/wineprefixes/default" | |||
HASH="6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5" | |||
</syntaxhighlight> | |||
'''Note:''' the production hash changes with Fusion updates. Find current hash with: | |||
<syntaxhighlight lang="bash"> | |||
ls "$WINE_PFX/drive_c/Program Files/Autodesk/webdeploy/production/" | |||
</syntaxhighlight> | |||
== 1. Restore original Qt6WebEngineCore.dll == | |||
'''Problem:''' The cryinkfly installer downloads a patched <code>Qt6WebEngineCore.dll</code> (~134MB) and replaces the original (~148MB). This patched DLL is version-mismatched with Fusion 2702.1.47 and causes BREAKPOINT assertion crashes (<code>exception code 0x80000003</code>) every time the Chromium rendering engine initializes. Fusion opens then closes after ~6 seconds. | |||
'''Diagnosis:''' CER crash log at <code>AppData/Local/Autodesk/CER/<hash>/cer.log</code> shows: | |||
<syntaxhighlight> | |||
AP/exception/module_name = Qt6WebEngineCore.dll | |||
AP/exception/text = BREAKPOINT | |||
AP/exception/code = 0x80000003 | |||
</syntaxhighlight> | |||
'''Fix applied:''' | |||
<syntaxhighlight lang="bash"> | |||
cd "$WINE_PFX/drive_c/Program Files/Autodesk/webdeploy/production/6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5/" | |||
cp Qt6WebEngineCore.dll.bak Qt6WebEngineCore.dll | |||
</syntaxhighlight> | |||
== 2. Fix adskidmgr:// protocol handler for SSO login == | |||
'''Problem:''' After browser sign-in, clicking "Open Product" does nothing. Two issues: (a) the <code>.desktop</code> file was in a subdirectory (<code>wine/Programs/Autodesk/1/</code>) where XDG can't find it by flat name, and (b) <code>%u</code> was quoted (<code>"%u"</code>) which prevents the callback URL from passing through. | |||
'''Codeberg issues:''' #429, #512, #561 | |||
'''Fix applied:''' Created <code>~/.local/share/applications/adskidmgr-opener.desktop</code>: | |||
<syntaxhighlight lang="ini"> | |||
[Desktop Entry] | |||
Type=Application | |||
Name=adskidmgr Scheme Handler | |||
StartupNotify=false | |||
MimeType=x-scheme-handler/adskidmgr; | |||
Exec=env WINEPREFIX=$HOME/.autodesk_fusion/wineprefixes/default wine "$HOME/.autodesk_fusion/wineprefixes/default/drive_c/Program Files/Autodesk/webdeploy/production/6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5/Autodesk Identity Manager/AdskIdentityManager.exe" %u | |||
</syntaxhighlight> | |||
Then: | |||
<syntaxhighlight lang="bash"> | |||
update-desktop-database ~/.local/share/applications/ | |||
</syntaxhighlight> | |||
'''Fallback:''' If the button still fails, right-click "Open Product", copy the <code>adskidmgr://...</code> URL, and run manually: | |||
<syntaxhighlight lang="bash"> | |||
WINEPREFIX=$WINE_PFX wine "$WINE_PFX/drive_c/Program Files/Autodesk/webdeploy/production/6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5/Autodesk Identity Manager/AdskIdentityManager.exe" "PASTE_URL_HERE" | |||
</syntaxhighlight> | |||
== 3. Clear stale IPC/lock files for SSO login == | |||
'''Problem:''' After crashed sessions, stale shared memory and lock files from the Identity Manager remain. These cause <code>invalid_grant</code> errors (expired OAuth codes get replayed) or prevent SSO from starting entirely. | |||
'''Fix applied (run after every crash or before fresh login):''' | |||
<syntaxhighlight lang="bash"> | |||
rm -f "$WINE_PFX/drive_c/ProgramData/Autodesk/IDSDK/*/interprocess/01000000/*" | |||
rm -f "$WINE_PFX/drive_c/ProgramData/Autodesk/Synergy/boost_interprocess/*" | |||
</syntaxhighlight> | |||
== 4. DXVK instead of OpenGL == | |||
'''Problem:''' Wine's OpenGL-based D3D11 (WineD3D) can't handle <code>multisample_type 32</code> on Intel Iris Xe, causing viewport crashes. The data panel also fails because the default Chromium graphics backend doesn't work under WineD3D. | |||
'''Fix applied:''' | |||
'''Step 1:''' Installed DXVK 2.7.1 via winetricks (replaces <code>d3d11.dll</code>, <code>dxgi.dll</code>, <code>d3d10core.dll</code> with Vulkan-backed versions): | |||
<syntaxhighlight lang="bash"> | |||
WINEPREFIX=$WINE_PFX WINE=wine ~/.autodesk_fusion/bin/winetricks -q dxvk | |||
</syntaxhighlight> | |||
'''Step 2:''' Downloaded and imported DXVK registry overrides (<code>d3d11=native</code>, <code>dxgi=native</code>, <code>d3d10core=native</code>, <code>d3d9=builtin</code>): | |||
<syntaxhighlight lang="bash"> | |||
curl -L "https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux/raw/branch/main/files/setup/resource/video_driver/DXVK/DXVK.reg" \ | |||
-o ~/.autodesk_fusion/downloads/DXVK/DXVK.reg | |||
WINEPREFIX=$WINE_PFX wine regedit.exe ~/.autodesk_fusion/downloads/DXVK/DXVK.reg | |||
</syntaxhighlight> | |||
'''Step 3:''' Replaced <code>NMachineSpecificOptions.xml</code> with DXVK version (all 3 locations): | |||
<syntaxhighlight lang="bash"> | |||
curl -L "https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux/raw/branch/main/files/setup/resource/video_driver/DXVK/NMachineSpecificOptions.xml" \ | |||
-o /tmp/NMachineSpecificOptions.xml | |||
cp /tmp/NMachineSpecificOptions.xml "$WINE_PFX/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options/" | |||
cp /tmp/NMachineSpecificOptions.xml "$WINE_PFX/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options/" | |||
cp /tmp/NMachineSpecificOptions.xml "$WINE_PFX/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options/" | |||
</syntaxhighlight> | |||
Key settings: <code>VirtualDeviceDx11</code>, <code>ChromiumGraphicsBackend=gl</code>, <code>OverrideChromiumGPUWorkarounds=1</code>, <code>DisableTransferAccelerationId=1</code> | |||
'''Step 4:''' Updated <code>~/.autodesk_fusion/logs/wineprefixes.log</code> line 1 from <code>OpenGL</code> to <code>DXVK</code>. | |||
'''How to verify:''' | |||
<syntaxhighlight lang="bash"> | |||
strings $WINE_PFX/drive_c/windows/system32/d3d11.dll | grep -i dxvk | |||
</syntaxhighlight> | |||
Should show DXVK version strings. | |||
== Import and modify stl == | == Import and modify stl == | ||
Revision as of 17:11, 14 April 2026
Fusion 360 on Linux
Additional Fixes
| System | Intel Iris Xe Graphics (RPL-P), X11, Wine-staging 11.6, Mesa 26.0.4, Vulkan 1.3.275 |
|---|---|
| Installer | cryinkfly autodesk_fusion_installer_x86-64.sh (--install --default)
|
| Fusion version | 2702.1.47 |
| Install path | ~/.autodesk_fusion
|
| Wine prefix | ~/.autodesk_fusion/wineprefixes/default
|
| Production hash | 6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5
|
Usage
Install apt packages:
sudo apt install yad
Apply all fixes in order after a fresh install with:
./autodesk_fusion_installer_x86-64.sh --install --default
Shell variables used throughout:
WINE_PFX="$HOME/.autodesk_fusion/wineprefixes/default"
HASH="6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5"
Note: the production hash changes with Fusion updates. Find current hash with:
ls "$WINE_PFX/drive_c/Program Files/Autodesk/webdeploy/production/"
1. Restore original Qt6WebEngineCore.dll
Problem: The cryinkfly installer downloads a patched Qt6WebEngineCore.dll (~134MB) and replaces the original (~148MB). This patched DLL is version-mismatched with Fusion 2702.1.47 and causes BREAKPOINT assertion crashes (exception code 0x80000003) every time the Chromium rendering engine initializes. Fusion opens then closes after ~6 seconds.
Diagnosis: CER crash log at AppData/Local/Autodesk/CER/<hash>/cer.log shows:
AP/exception/module_name = Qt6WebEngineCore.dll
AP/exception/text = BREAKPOINT
AP/exception/code = 0x80000003Fix applied:
cd "$WINE_PFX/drive_c/Program Files/Autodesk/webdeploy/production/6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5/"
cp Qt6WebEngineCore.dll.bak Qt6WebEngineCore.dll
2. Fix adskidmgr:// protocol handler for SSO login
Problem: After browser sign-in, clicking "Open Product" does nothing. Two issues: (a) the .desktop file was in a subdirectory (wine/Programs/Autodesk/1/) where XDG can't find it by flat name, and (b) %u was quoted ("%u") which prevents the callback URL from passing through.
Codeberg issues: #429, #512, #561
Fix applied: Created ~/.local/share/applications/adskidmgr-opener.desktop:
[Desktop Entry]
Type=Application
Name=adskidmgr Scheme Handler
StartupNotify=false
MimeType=x-scheme-handler/adskidmgr;
Exec=env WINEPREFIX=$HOME/.autodesk_fusion/wineprefixes/default wine "$HOME/.autodesk_fusion/wineprefixes/default/drive_c/Program Files/Autodesk/webdeploy/production/6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5/Autodesk Identity Manager/AdskIdentityManager.exe" %u
Then:
update-desktop-database ~/.local/share/applications/
Fallback: If the button still fails, right-click "Open Product", copy the adskidmgr://... URL, and run manually:
WINEPREFIX=$WINE_PFX wine "$WINE_PFX/drive_c/Program Files/Autodesk/webdeploy/production/6f81bda0bb0ebef0ea118cf2bd48cba17061ffb5/Autodesk Identity Manager/AdskIdentityManager.exe" "PASTE_URL_HERE"
3. Clear stale IPC/lock files for SSO login
Problem: After crashed sessions, stale shared memory and lock files from the Identity Manager remain. These cause invalid_grant errors (expired OAuth codes get replayed) or prevent SSO from starting entirely.
Fix applied (run after every crash or before fresh login):
rm -f "$WINE_PFX/drive_c/ProgramData/Autodesk/IDSDK/*/interprocess/01000000/*"
rm -f "$WINE_PFX/drive_c/ProgramData/Autodesk/Synergy/boost_interprocess/*"
4. DXVK instead of OpenGL
Problem: Wine's OpenGL-based D3D11 (WineD3D) can't handle multisample_type 32 on Intel Iris Xe, causing viewport crashes. The data panel also fails because the default Chromium graphics backend doesn't work under WineD3D.
Fix applied:
Step 1: Installed DXVK 2.7.1 via winetricks (replaces d3d11.dll, dxgi.dll, d3d10core.dll with Vulkan-backed versions):
WINEPREFIX=$WINE_PFX WINE=wine ~/.autodesk_fusion/bin/winetricks -q dxvk
Step 2: Downloaded and imported DXVK registry overrides (d3d11=native, dxgi=native, d3d10core=native, d3d9=builtin):
curl -L "https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux/raw/branch/main/files/setup/resource/video_driver/DXVK/DXVK.reg" \
-o ~/.autodesk_fusion/downloads/DXVK/DXVK.reg
WINEPREFIX=$WINE_PFX wine regedit.exe ~/.autodesk_fusion/downloads/DXVK/DXVK.reg
Step 3: Replaced NMachineSpecificOptions.xml with DXVK version (all 3 locations):
curl -L "https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux/raw/branch/main/files/setup/resource/video_driver/DXVK/NMachineSpecificOptions.xml" \
-o /tmp/NMachineSpecificOptions.xml
cp /tmp/NMachineSpecificOptions.xml "$WINE_PFX/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options/"
cp /tmp/NMachineSpecificOptions.xml "$WINE_PFX/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options/"
cp /tmp/NMachineSpecificOptions.xml "$WINE_PFX/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options/"
Key settings: VirtualDeviceDx11, ChromiumGraphicsBackend=gl, OverrideChromiumGPUWorkarounds=1, DisableTransferAccelerationId=1
Step 4: Updated ~/.autodesk_fusion/logs/wineprefixes.log line 1 from OpenGL to DXVK.
How to verify:
strings $WINE_PFX/drive_c/windows/system32/d3d11.dll | grep -i dxvk
Should show DXVK version strings.
Import and modify stl
- Insert Mesh
- Load STL
- Right-click on file name
- "Do not capture design history"
- Right-click on mesh body name
- "Mesh to BRep" -> "New body"