Killsquad sends a MESessionClose at various times depending on user input. It always expects a MESessionClosed event and will wait indefinitely if not received. There are currently a number of scenarios where we don't report the MESessionClose event. This MR attempts to fix that.
--
v3: mf: Handle Source/Sink shutdown whilst waiting for an event.
mf: Handle an error during Media Session Close.
mf: Handle MediaSession Close when state is SESSION_STATE_RESTARTING_SOURCES.
mf/tests: Add additional tests for MESessionClosed event.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5584
When `FindFirstFileA` is called with `<path>/<file>/*` (where file is expected to be a directory), Windows uses the `ERROR_DIRECTORY` error.
This patch changes Wine's implementation to match Windows. This fixes a crash in Unity of Command II.
--
v3: server: Don't always return STATUS_OBJECT_NAME_INVALID on ENOTDIR.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5737
On Tue May 28 08:16:35 2024 +0000, Brendan McGrath wrote:
> I just tested on Windows, and that's exactly what it does. I'll update
> the MR.
Thanks for taking a look @nsivov. I think I've fixed it in the right spot now.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5737#note_71615
When `FindFirstFileA` is called with `<path>/<file>/*` (where file is expected to be a directory), Windows uses the `ERROR_DIRECTORY` error.
This patch changes Wine's implementation to match Windows. This fixes a crash in Unity of Command II.
--
v2: server: Don't return STATUS_OBJECT_NAME_INVALID on ENOTDIR.
ntdll/tests: Test error code when NtOpenFile uses file as directory.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5737
Currently, when GPUs are being added and display driver only provides a fake one (like e.g. winex11.drv does on Xwayland), its default name and empty UUID and PCI IDs will be preferred over ones reported by Vulkan. When Vulkan-only GPUs are added later, the resulting list will look like so:
```
Xrandr GPU 0x0000:0x0000 {00000000-0000-0000-0000-000000000000}
NVIDIA GeForce RTX 4080 Laptop GPU 0x10de:0x27e0 {13938ad6-4925-b628-c068-30558bc4b489}
```
Instead, when default or empty properties were provided, we should prefer ones from Vulkan as they are more likely to be accurate:
```
Intel(R) Graphics (RPL-S) 0x8086:0xa788 {a7888086-0004-0000-0002-000000000000}
NVIDIA GeForce RTX 4080 Laptop GPU 0x10de:0x27e0 {13938ad6-4925-b628-c068-30558bc4b489}
```
This is important for LUIDs to be later correctly assigned by winevulkan which searches for matching GPU by UUID.
I'm not exactly sure if this implementation is the way to go (especially reporting and checking name for `"Wine GPU"`) but it's probably one of the simplest possible. Let me know if we already have some empty UUID around I could use for the comparison.
--
v3: win32u: Prefer Vulkan UUIDs over empty ones.
win32u: Prefer Vulkan PCI IDs over empty ones.
win32u: Use common name for fake GPUs and prefer Vulkan name over it.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5736
--
v5: win32u: Only keep DPI awareness context with window objects.
win32u: Fix SetThreadDpiAwarenessContext.
win32u: Pass the DPI awareness context in win_proc_params.
win32u: Get the thread DPI context instead of the awareness.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5738