They are constantly failing on Gitlab, and may be caused various race
conditions around window focus, both in Wine and in Fvwm. It would be
nice to fix them but it's been going for many years now and unlikely to
be the case soon.
Partially reverts commit 67f2da2a8d which
broke ccache cache as the job configurations were overriding the default
cache configuration from .wine-build instead of extending it.
Fixes the test name passed to winetest.exe which is otherwise split
into a character array when there's a single line in the winetest.args
file, and then causes it to miss the test and always return success.
I don't know for sure that this is why iris (or nvidia) performs badly, but it
seems perfectly plausible, and I don't think we lose anything by letting the
driver allocate here.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54223
It's simpler to just use the same sequence as normal fullscreen windows
and avoid headaches with virtual desktops.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56149
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Same workaround as used in is_window_resizable, except it's on a different
code path. This also affects other WMs (e.g. Kwin, compiz).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56149
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
`(BYTE *)dst_ex - (BYTE *)dst` is the size of the legacy context, but
`dst_ex->All` already contains the legacy context. Therefore,
`context_length` has the legacy context size added *twice*.
This becomes a problem when `context_length` exceeds
`sizeof(src_context_buffer)`. This confuses `check_changes_in_range()`,
causing out-of-bounds read and unpredictable test results.
The penultimate element of `ranges_x86` array has an incorrect value: it
should be *at least* 0x2f0, which is the minimum size of an extended
context.
Fix this by setting it to 0x440, which is the minimum size of an
extended context *with* CONTEXT_I386_XSTATE. This is consistent with
`ranges_amd64`, the penultimate element of which has the minimum size of
an extended context *with* CONTEXT_AMD64_XSTATE.
Note that the incorrect value does not always lead to a test failure,
since check_changes_in_range_() effectively ignores range `start`s that
are not in order. Reproducing the failure requires a system with a
sufficiently large XSAVE area; specifically, the following condition is
necessary for check_changes_in_range_() to pick up the wrong value:
0x2cc < 0x294 + src_ex->XState.Length - sizeof(XSTATE).