[Bug 52508] EnumDisplayDevices() fails in obscure ways on 32-bit arch when 64-bit Vulkan is present but 32-bit is missing

WineHQ Bugzilla wine-bugs at winehq.org
Fri Apr 22 13:46:17 CDT 2022


https://bugs.winehq.org/show_bug.cgi?id=52508

--- Comment #5 from Zeb Figura <z.figura12 at 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.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list