Track ticks since draw start per window_surface, instead of per DC as is
currently the case. This change helps reduce visual glitches caused by
badly timed flushes when drawing to the same window_surface from
multiple DCs, e.g., child windows (see first commit), or in some special
scenarios when the window_surface is updated (see second commit).
(Much) more information about this issue and the rationale for the changes
can be found in the commit messages.
Note that since this is an inherently timing related issue, the visual glitches
depend on the application specific draw patterns, drawing speed (and thus
processor performance and load) etc.
Here is a capture which exhibits the issue with the current implementation:
[resizing-regedit-per-dc-ticks.mkv](/uploads/d7d30d009cc4db1337cbc3266df5ae17/resizing-regedit-per-dc-ticks.mkv)
And here is a capture of the same scenario with the proposed changes applied, which shows the improvement:
[resizing-regedit-per-surface-ticks.mkv](/uploads/6f878568862f5fb5157567341e4e452f/resizing-regedit-per-surface-ticks.mkv)
--
v3: win32u: Reset draw_start_ticks for new window_surface.
gdi32: Track ticks since draw start per window_surface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2226
Signed-off-by: Bernhard Kölbl <besentv(a)gmail.com>
--
v18: windows.media.speech: Implement Vosk create and release functions in the unixlib.
windows.media.speech/tests: Allow the SpeechRecognizer creation to fail in Wine.
windows.media.speech/tests: Get rid of duplicated hresult.
windows.media.speech: Add unixlib stub.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2091
This series fixes a couple of failures when running kernel32:debugger tests
on various platforms.
--
v2: kernel32/tests: Fix debugger.c:test_kill_on_exit().
dbghelp/tests: Fix failure on Win10 1607.
kernel32/tests: Don't let debugger tests fail on a 64bit only config.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2237
Also, renaming `compatible_data_types()` to `explicit_compatible_data_types()` since we also have `implicit_compatible_data_types()` and `expr_compatible_data_types()`.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/99
--
v2: vkd3d-shader/hlsl: Avoid warning for each variable when in/out modifiers are specified on non-parameters.
vkd3d-shader/hlsl: Remove a redundant warning for mutually exclusive majority modifiers.
vkd3d-shader/hlsl: Check for majority modifiers on non-matrices in apply_type_modifiers().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/98