On Wed Mar 18 01:48:10 2026 +0000, Brendan McGrath wrote:
Oh - I just realised that the version of wine that I'm testing with doesn't include 18339eb0f5048500efb668e6a9b679ed2f62d7a3. I will test with that cherry-picked. Before that commit the color was de-facto initialized with black, that only changed that to white.
color_bits which window_surface_get_color() gets are not from winex11.drv, they are from DIB section created with NtGdiCreateDIBSection() in window_surface_create(). NtGdiCreateDIBSection doesn't go to winex11, it allocates memory with NtAllocateVirtualMemory (and so that is initialized with 0 even before the 'white' commit). So it is yet unclear to me how any data in X image allocated in winex11 matter here. x11drv_surface_flush() should copy win32u data to the image. Is the win32u image maybe gets the garbled data before that (somehow blitted from x11 with XGetImage or else), or something goes wrong in x11drv_surface_flush itself so the data is not actually copied (to the required size) but X image is put to screen? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10356#note_132586