@rbernon `win32u, server: Use the shared memory for GetClipCursor and GetAsyncKeyState.` The patch, along with the ntsync patches, caused my games to freeze when starting with a black screen. Proton changed [win32u/input.c NtUserGetAsyncKeyState](https://github.com/ValveSoftware/wine/blob/25af144e4ac4e8de6bf4d8ea5d960af06...) in commit [38660173bb5aa5250ad414ac27517dce25b30a6a ](https://github.com/ValveSoftware/wine/commit/38660173bb5aa5250ad414ac27517dc...) I simplified the NtUserGetAsyncKeyState function to look like this. I'm not sure if it's correct, but it's helped me. ```C SHORT WINAPI NtUserGetAsyncKeyState( INT key ) { const desktop_shm_t *desktop_shm; struct object_lock lock = OBJECT_LOCK_INIT; NTSTATUS status; BYTE state = 0; if (key < 0 || key >= 256) return 0; check_for_events( QS_INPUT ); while ((status = get_shared_desktop( &lock, &desktop_shm )) == STATUS_PENDING) state = desktop_shm->keystate[key]; return (state & 0x80) << 8; } ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5896#note_73913