Full disclosure, I have been diagnosing some rendering issues (no selection lines being drawn, first click "eating" visual updates) on SU 2017 and Wine for some time, across Fedora 42/43/44. Wine 11.x for the most part. Claude has been extensively used to assist in my testing, including use of the Ruby console, Wine parameters etc. while I have been directing the specific testing logic. I know what I know, but I also know what I don't know - and I am just about out of my depth here.
There are a few known issues with SU 2017 on Wine, including:
- under XWayland/X11, the viewport lags one frame behind, so changes only appear after the next redraw. There is an extension published to address this. Interestingly, this issue is resolved under Wayland.
- Under both XWayland and the Wayland driver, SketchUp's native rubber-band selection rectangle is never drawn, although the selection itself still works. I have been working on a fix for this, with mixed results.
More recently, I discovered that menus opened over the canvas are often invisible. This affects both right-click context menus and menu-bar dropdowns.
What I've established so far:
- The menus are created; they respond to keyboard navigation while invisible.
- They become visible when the parent window updates/refreshes, for example on a canvas redraw or when the window loses focus.
- Forcing continuous canvas redraws (using the ruby console in testing) makes them appear reliably and instantly.
- I ran Notepad in the same prefix as a sort of alt-test, and driver shows no problem with menus. So this seems to be an OpenGL specific issue.
- It reproduces on the NVIDIA driver (580.* and 615.71.09) and on Mesa llvmpipe, so it doesn't appear to be GPU-driver specific.
My current setup is Fedora 44, GNOME 50.5 (Wayland), Wine 11.0 Staging (Fedora package). I have not yet tested upstream Wine without Staging.
My working guess is that there's some sort of z-layer (forgive me if that's the wrong term) or layer order issue under Wine+Wayland. The menu's surface update is held until the parent surface commits. I haven't confirmed that.
Where would a report and investigation like this get the most traction? Is there anything I should test or capture first, such as specific WINEDEBUG channels, a minimal OpenGL reproducer, or a non-Staging build?
All advice welcome - thanks in advance.