https://bugs.winehq.org/show_bug.cgi?id=32010
--- Comment #10 from Patrick Rudolph patrick1804@web.de --- After further investigations: UpdateLayeredWindow uses software fallback to blend a layered window using blend_rect_8888 function. That causes high load in the launcher process. It would be nice to let X do the blending instead.
After blending the result is put into a pixmap and flushed to X11 using x11drv_surface_flush.
x11drv_surface_flush calls update_surface_region which causes high load, too. It iterates over the whole surface to find the shape borders.
After that X11DRV_GetRegionData and XShapeCombineRectangles is called. It looks like this causes glamor/X11 to do a flush and stall until GPU finishes rendering. It then locks the framebuffer to read back and combine the pixmaps. This causes high load in X and the kernel as it does busy waiting.
By commenting the XShapeCombineRectangles code in x11drv_surface_flush, the load is reduced and X11 runs smooth. The mouse is also visible.
Not sure if this a X11 bug or wine bug.