Mainly the implementation of SM1 comparison operators, defined in terms of CMP and SLT instructions, and the capacity to transform SLT->CMP for pixel shaders and CMP->SLT for vertex shaders.
--
v2: vkd3d-shader/hlsl: Lower CMP instructions for vertex shaders.
vkd3d-shader/hlsl: Use hlsl_fixme() on missing SM1 matrix writemask lowering.
vkd3d-shader/hlsl: Lower SLT instructions for pixel shaders.
tests: Test equality between tiny and between large numbers on ps_2_0.
vkd3d-shader/hlsl: Implement SM1 comparison operators.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/706
--
v5: win32u: Enumerate monitors from their device keys.
win32u: Get rid of the monitor flags.
win32u: Get rid of the adapter display_device.
win32u: Get rid of the monitor state_flags.
win32u: Get rid of the monitor display_device.
win32u: Split writing monitor to registry to a separate helper.
win32u: Add an adapter struct to the device manager context.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5262
--
v6: vkd3d: Support aliased tile binding if available.
vkd3d: Implement ID3D12CommandQueue::UpdateTileMappings() for textures.
vkd3d: Implement ID3D12CommandQueue::UpdateTileMappings() for buffers.
vkd3d: Pre-bind sparse texture mip tails.
tests/d3d12: Add a test for freeing underlying memory of a reserved resource.
tests/d3d12: Add tests for UpdateTileMappings().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/631
--
v4: win32u: Enumerate monitors from their device keys.
win32u: Get rid of the monitor flags.
win32u: Get rid of the adapter display_device.
win32u: Get rid of the monitor state_flags.
win32u: Get rid of the monitor display_device.
win32u: Split writing monitor to registry to a separate helper.
win32u: Add an adapter struct to the device manager context.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5262
The standalone test attached to 51957 proves this change correct. Trying to
integrate a test into Wine's test suite is not particularly helpful since
ShellExecute() is asynchronous. We cannot test FindExecutable() either, since
that's not actually supposed to check the App Paths key (Wine is currently
incorrect in this respect).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5304
~~This applies on top of !698, the last three commits belong here.~~
Here we reconstruct an internal representation of a structured program corresponding to the input CFG. The representation can be directly emitted (which will be the following MR) or other passes can be run on it to simplify the loop structure.
--
v4: vkd3d-shader/ir: Dump the reconstructed structured program.
vkd3d-shader/ir: Add jumps to the structured programs.
vkd3d-shader/ir: Reconstruct a structured program.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/704
Currently success return from SuspendThread() neither guarantees that thread is already suspended nor that it will be suspended at all. E. g, if SuspendThread is racing with thread normal exit, a SIGUSR1 could be queued to the thread for suspend but it reached exit_thread() and disabled signals for final exit before processing it.
Fixes GRIS game showing embedded Mono's garbage collector error on exit. Which error is due to the race between normal thread exit and GC cleanup. GC cleanup (as well as normal operation actually) first tries to suspend all the threads, failure here is fine. But when suspend succeeded it doesn't tolerate the failure to GetThreadContext() a bit later.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5301