iXit / wine-nine-standalone

Build Gallium Nine support on top of an existing WINE installation
GNU Lesser General Public License v2.1
277 stars 23 forks source link

Using gallium-nine, CAD software repeatedly opening connections to the X server #160

Open baldrianbandit opened 1 year ago

baldrianbandit commented 1 year ago

The CAD software Altium Designer runs out of the box with recent wine-8.6 builds. Switching on gallium-nine improves 3D performance by a great deal.

The actual issue: While zooming in and out in 3D view, new connections to the X server are made, but never closed. I watch their number increasing by employing watch -n 1 "lsof -p $(pidof Xorg) | wc -l"

When reaching a total of 512 (~200 by CAD), the X server won't allow any more connections, also suppressing further 3D rendering of the CAD software. Running it with gallium-nine disabled, the number of connections keeps low at a total of 380 (~30 by CAD).

Intel i7-8650U w/ integrated graphics 6.2.12-arch1-1 wine-8.6.1 gallium-0.9.0.396 installed via winetricks gallium-0.10.0.404-devel via AUR

lorn10 commented 1 year ago

I don't have much knowledge about this CAD stuff but maybe you find some "inspiration" :wink: here: Autodesk-Fusion-360-for-Linux - Shedding some light on various problems

So my first thought would be to try out the very experimental Wayland port of Wine. However, at the moment, as far I know, Gallium Nine is not Wayland compliant, so DXVK has to be used. But that would trigger then another bug in Wine, the missing DXVK "child support".

And finally, perhaps there exist the chance that also a native Windows dll file will improve the situation? Ergo I would also check what the overall behavior is with a native gdiplus.dll file. (But don't use the stone old variant from winetricks.)

axeldavy commented 1 year ago

Nine doesn't create the X windows, it's done by wine. However we do listen on the X drawable and other stuff to present content. The issue doesn't occur with normal wine ?

axeldavy commented 1 year ago

I don't see anything obvious in the code. We should free the connections. Activating debug infos should help figure out what is going on (@dhewg do you remember what is needed to enable all debug info in the wine nine standalone ?)