https://bugs.winehq.org/show_bug.cgi?id=52508
--- Comment #5 from Zeb Figura z.figura12@gmail.com --- (In reply to Zhiyi Zhang from comment #4)
Actually, there is a mechanism to let only the first process initialize monitors. That's what the force parameter in X11DRV_DisplayDevices_Init() is for. Maybe recent win32u work changed its behavior or the first process to create windows isn't always 64-bit.
As far as I can tell that function ends up getting called with force == TRUE once for each process that calls GetDesktopWindow() (plus once for explorer.exe itself). The call chain goes:
GetDesktopWindow() -> retrieve top_window from server, call user_driver->pCreateDesktopWindow() -> X11DRV_CreateDesktopWindow() -> root_window is not yet initialized; call X11DRV_init_desktop() -> set virtual desktop handler, call X11DRV_DisplayDevices_Init( TRUE )
The code organization here is too unclear for me to tell where the fault lies.