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);
```
--
v5: winex11.drv: Fix wglSwapBuffers() with NULL current context with child window rendering.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4912
It looks like when the data is available but the recursion limit is reached Windows (after 7 when WinHttpQueryDataAvailable is concerned) fills the output immediately and only queues completion callback. I hope the updated test should be stable as we should have the server response read during WinHttpSendRequest already (like on Windows).
Fixes market window in Black Desert Online.
The game depends on WinHttpReadData returning the result synchronously in WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE callback (and doesn't mind WINHTTP_CALLBACK_STATUS_READ_COMPLETE at all). By the time it reaches there through previous callbacks the recursion limit doesn't allow full synchronous return (and after playing with test_recursion() I think at least Windows 10 has the same recursion limit as we do currently). But as the test shows the output of WinHttpReadData / WinHttpQueryDataAvailable is filled in immediately, probably only the callback should be queued asynchronously to break the recursion.
--
v2: winhttp: Always return result at once if available in WinHttpReadData().
winhttp: Always return result at once if available in WinHttpQueryDataAvailable().
https://gitlab.winehq.org/wine/wine/-/merge_requests/4925
--
v2: vkd3d-shader/spirv: Handle the TAN instruction in spirv_compiler_emit_ext_glsl_instruction().
vkd3d-shader/dxil: Handle DX intrinsic Tan in sm6_parser_emit_dx_unary().
vkd3d-shader/dxil: Implement DX intrinsics Cos and Sin.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/595
--
v4: vkd3d-shader/dxil: Implement DX intrinsic SplitDouble.
tests/shader-runner: Add an asuint() test to the 64-bit cast tests.
tests/shader-runner: Support testing for integer pixel data.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/589
I'll revise the operand codes once !572 is upstream.
--
v3: vkd3d-shader/spirv: Support 64-bit source value for bitfield instructions.
vkd3d-shader/dxil: Implement DX intrinsic Tertiary.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/587
This MR includes:
- A fix to a comment in vkd3d-shader/ir.c (out of MR scope but really tiny!).
- A fix when creating UAV buffers in the shader_runner d3d12 backend.
- Fixes to (hopefully) all the memory leaks in the shader_runner reported by valgrind when running all tests.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600