[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 22:17:47 CDT 2022
https://bugs.winehq.org/show_bug.cgi?id=52508
--- Comment #6 from Zhiyi Zhang <zzhang at codeweavers.com> ---
(In reply to Zeb Figura from comment #5)
> (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()
I don't think this trace is correct. root_window is initialized in winex11.drv
process_attach().
X11DRV_init_desktop should only be called when using virtual desktop. Are you
using virtual desktop?
I tried running explorer and then notepad and traced
X11DRV_DisplayDevices_Init(). No X11DRV_DisplayDevices_Init(TRUE)
calls are made for new processes.
> -> 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