Start the DOSVM tick timer when the GET_SYSTEM_TIME interrupt
(int 1a ah 00) is fired. This fixes a bug when running Sid Meier's
CIVILIZATION for Windows 3.1 where the game would appear to hang at the
launch screen (although sound would play as expected). This was due to
the BIOSDATA.Ticks field never being updated.
I originally had written a version of this patch which moved away from using `BIOSDATA.Ticks` until I saw that the timer thread existed and seemed like a more sensible option.
--
v2: krnl386.exe16: Start DOSVM timer on GET_SYSTEM_TIME
https://gitlab.winehq.org/wine/wine/-/merge_requests/5498
Includes !782 to prevent the 32-bit Windows CI crashing.
--
v9: vkd3d-shader/dxil: Support SV_Depth, SV_DepthGreaterEqual and SV_DepthLessEqual.
tests/hlsl: Add pixel shader depth-out tests.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/777
This is a simplified version of !748 that doesn't handle conditional jumps. I'll submit a cleaned up version of that after this.
--
v4: vkd3d-shader/hlsl: Implement loop unrolling.
vkd3d-shader/hlsl: Parse loop and unroll loop attributes.
vkd3d-shader/hlsl: Pull evaluate_static_expression_as_uint upwards.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/786
This is a simplified version of !748 that doesn't handle conditional jumps. I'll submit a cleaned up version of that after this.
--
v3: vkd3d-shader/hlsl: Implement loop unrolling.
vkd3d-shader/hlsl: Parse loop and unroll loop attributes.
vkd3d-shader/hlsl: Pull evaluate_static_expression_as_uint upwards.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/786
This is a simplified version of !748 that doesn't handle conditional jumps. I'll submit a cleaned up version of that after this.
--
v2: vkd3d-shader/hlsl: Implement loop unrolling.
vkd3d-shader/hlsl: Parse loop and unroll loop attributes.
vkd3d-shader/hlsl: Pull evaluate_static_expression_as_uint upwards.
vkd3d-shader/hlsl: Defer bounds checks to after copy propagation.
tests/hlsl: Add a test for dynamically indexed multisampled texture loads.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/786
The general idea is:
* Run copy prop initially, save the copy prop state.
* Unroll one iteration, substitute all jumps by stores to synthetic control vars, move all instructions after the jumps to checks to those control vars.
* Run copy prop on the iteration, using the previous iteration's or the root's state as the parent state.
* Probe the copy prop state to check if the "loop_broken" control variable was set, stop unrolling if it true, otherwise continue.
Some stuff I'm less sure about and would love comments on:
* The way I deferred bounds checking.
* Splitting the iter block from the body. This was needed because otherwise copy prop marks variable that are changed in iter blocks (e.g "i++") as invalidated and does not propagate them to subsequent iterations.
* Messing around with copy prop internals. I attempted two other similar solutions that were less invasive: running copy prop on the entire block after each unroll and running copy prop once, after unrolling to `max_iterations`, both were too slow to be viable.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/748
Improve minidump dumping in Wine dump:
- support several -j options to only print relevant part of the file
- support a bunch of new streams (memory list, token, thread names...)
- several other cleanups and homogeinization of output
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5493