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
On Mon Jan 22 21:59:45 2024 +0000, Piotr Caban wrote:
> No, you can't look on concrt.h while working on it since it may contain
> parts of the implementation.
Ok, I am not going there as it's too complicated for me.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4899#note_58534