GetKeyboardLayout() is also tested manually on Windows 10 with Korean, Chinese, and Japanese IME
activated.
--
v2: win32u: Don't set the high word of keyboard layout to 0xe001 in CJK locales.
user32/tests: Test keyboard layout in CJK locales.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4876
Currently usr1_handler always delivers the context to server. With AVX enabled the single context size is around 1k (while there are two of those for wow64). I am now working on a more generic xstate support in contexts (mostly motivated by AVX512), with AVX512 the single context to be transferred to server is ~1k bigger.
The context is needed to be passed to the server from usr1_handler only for NtGetContextThread, NtSetContextThread and NtSuspendThread handling (e. g., when stop_thread is called on the server). The vast majority of usr1_handler usage is for kernel APCs (e. g., APC_ASYNC_IO involved in every async operation) that don't need the thread context transferred to the server and back.
My measurements of single SERVER_START_REQ( select ) in server_select() shows that the turnaround time of the request with the context (on native x64 without wow context) is almost two times bigger on average when currently supported AVX context is involved (that is, on every usr1_handle invocation on a machine supporting AVX). So, this patch is expected to increase the time of relatively rare calls which actually need contexts by roughly 50% but decrease the turnaround time of frequent calls involving system APCs by 50%. The difference will be more in favour of this patch once huge AVX512 contexts are added.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4914
This is relevant to the structuriser because branched DXIL can sometimes contain forward refs. It doesn't need to be implemented in the backend until necessary, but it adds a parameter to `register_init_ssa_vector()` and `register_init_ssa_scalar()` so it's convenient to add before further use of those functions.
--
v2: vkd3d-shader/dxil: Support forward-referenced value ids.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/590
Goes atop !533. The last two commits belongs to this MR.
--
v4: vkd3d-shader/dxil: Implement DX intrinsic Binary.
vkd3d-shader/dxil: Add an operand type code for the return type.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/572
After wglMakeCurrent(NULL, NULL); wglSwapBuffers(HDC) actually swaps buffers for the device context. That works on Windows and basically with Wine glx (as glxSwapBuffers also works on drawable and doesn't need GLX context). But that doesn't work for child window rendering: first because of NULL ctx dereference (checked for NULL elsewhere) and next because of GLX_OML_sync_control path.
Fixes Black Desert Online launcher being black screen. The launcher does the following for drawing a frame (while drawing on the child window):
```
wglMakeCurrent(hdc, valid context);
<gl drawing>
wglMakeCurrent(NULL, NULL);
wglSwapBuffers(hdc);
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4912