I'm not completely sure about the mechanism, but I think it's simple enough to consider having that upstream now. This shows at least how we can leverage win32u surface changes to decide to switch surfaces on/off-screen and fallback to manual blitting.
Having the surfaces on-screen makes sure they are presented as efficiently as possible, having them off-screen we use GDI blit to indirectly call XCopyArea and this will be suboptimal, probably with visible tearing, but hopefully not too common.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5573
ObjC dictionary literals are autoreleased, meaning BitmapOutputTypeMap was released at the end of the first call to macdrv_copy_pasteboard_types. Any call after that was liable to crash, depending on whether it was overwritten. More complex objects on the clipboard (like a file copied in the Finder) seemed to trigger a crash, which manifested as explorer.exe taking 100% of CPU (since the main thread crashed, then the SEGV handler crashed because it's not a Wine thread).
Fixes a regression from bb2e02ab66c5c602d635722cf3a5820d6b366006.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5572
Same bug class as https://gitlab.winehq.org/wine/wine/-/merge_requests/5550.
None of them are referenced by anything (not counting mfplat/main.c's debugstr_attr(), which names the two in mfapi.h - better debug output, yay I guess).
--
v3: include: Fix a typoed GUID
include: Fix a typoed GUID
include: Fix two typoed GUIDs
include: Fix two typoed GUIDs
include: Fix two typoed GUIDs
include: Fix a typoed GUID
include: Fix a typoed GUID
include: Fix a typoed GUID
include: Fix a typoed GUID
include: Fix a typoed GUID
https://gitlab.winehq.org/wine/wine/-/merge_requests/5559
This appear to be introduced with commit 12f73ed9d851.
When This->stride is negative (bottom up image) it converts the multiplication to an UINT.
Thus causing the pointer to be incorrect when y > 0.
--
v2: windowscodecs: Avoid implicit cast changing value.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5568
First part of Proton shared memory series. The full branch can be seen at https://gitlab.winehq.org/rbernon/wine/-/commits/mr/shared-memories.
--
v34: win32u: Use the desktop shared data for GetCursorPos.
server: Move the last cursor time to the desktop session object.
server: Move the cursor position to the desktop session object.
win32u: Open desktop shared objects from session mapping.
server: Return the desktop object info in get_thread_desktop.
server: Allocate shared session object for desktops.
win32u: Open the global session shared mapping.
include: Add ReadNoFence64 inline helpers.
server: Create a global session shared mapping.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3103
This appear to be introduced with commit 12f73ed9d851.
When This->stride is negative (bottom up image) it converts the multiplication to an UINT.
Thus causing the pointer to be incorrect when y > 0.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5568