This is a step in the direction of continuously polling the queue fd on the server side, removing the need for ntsync to notify wineserver before / after waiting on the queue.
For this my plan is to make win32u also notify wineserver to update the queue access time before waiting (through set_queue_mask), if it's been long enough. Then decide that a queue is hung based on whether it is signaled but access time is more than 5s ago (ie: neither get_message nor set_queue_mask are called regularly even though queue is signaled).
On the server side, the queue fd would stop being polling once it gets ready, and win32u would notify wineserver after all the driver events have been processed, to start polling it again, as a separate request from the wait.
--
v3: win32u: Check the queue access time from the shared memory.
server: Use monotonic_time as queue access time base.
win32u: Move the message queue access time to shared memory.
server: Move hooks_count to the end of the queue_shm_t struct.
server: Return early if there's no queue in queue requests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9000
This is a step in the direction of continuously polling the queue fd on the server side, removing the need for ntsync to notify wineserver before / after waiting on the queue.
For this my plan is to make win32u also notify wineserver to update the queue access time before waiting (through set_queue_mask), if it's been long enough. Then decide that a queue is hung based on whether it is signaled but access time is more than 5s ago (ie: neither get_message nor set_queue_mask are called regularly even though queue is signaled).
On the server side, the queue fd would stop being polling once it gets ready, and win32u would notify wineserver after all the driver events have been processed, to start polling it again, as a separate request from the wait.
--
v2: win32u: Check the queue access time from the shared memory.
server: Use monotonic_time as queue access time base.
win32u: Move the message queue access time to shared memory.
server: Move hooks_count to the end of the queue_shm_t struct.
server: Return early if there's no queue in queue requests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9000
--
v2: iphlpapi: Try to disambiguate addresses in GetBestRoute2() by probing system assigned ones.
iphlpapi/tests: Add tests for best routes.
iphlpapi: Reimplement GetBestInterfaceEx() on top of GetBestRoute2().
iphlpapi: Implement GetBestRoute2().
https://gitlab.winehq.org/wine/wine/-/merge_requests/8991
--
v2: dmsynth: Pre-attenuate voices by center pan attenuation.
dmsynth: Compensate gain added by IIR filter.
dmsynth: Handle GUID_DMUS_PROP_Volume.
dmsynth: Set gain to 6 dB.
dmsynth/tests: Add tests for GUID_DMUS_PROP_Volume.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8986
Giving this one final shot. If this is not deemed acceptable, I will abandon the effort and just move on to other things, no hard feelings.
This is IMO a cleaner, more conservative/less invasive change.
What is fixed:
- Bug #56381, "TYPE c:\windows\winhelp.exe >foo", i.e. binary mode operation. I would probably consider this the main reason for this change. I'm trying to get the compiler mentioned in the bug report working.
- Ctrl-Z termination of TYPE output to the console.
- "TYPE con >foo", with Ctrl-Z handling, functionally equivalent to "COPY con foo".
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56381
--
v8: cmd: Fix TYPE behavior (now uses WCMD_copy_loop).
https://gitlab.winehq.org/wine/wine/-/merge_requests/8920
This is a step in the direction of continuously polling the queue fd on the server side, removing the need for ntsync to notify wineserver before / after waiting on the queue.
For this my plan is to make win32u also notify wineserver to update the queue access time before waiting (through set_queue_mask), if it's been long enough. Then decide that a queue is hung based on whether it is signaled but access time is more than 5s ago (ie: neither get_message nor set_queue_mask are called regularly even though queue is signaled).
On the server side, the queue fd would stop being polling once it gets ready, and win32u would notify wineserver after all the driver events have been processed, to start polling it again, as a separate request from the wait.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/9000
--
v6: mfmediaengine: Retry topology resolution if necessary with video output type B8G8R8A8_UNORM.
mfmediaengine: Resolve the topology before setting it on the session object.
mfmediaengine: Introduce a create_video_media_type_from_fourcc() helper function.
mfmediaengine: Call OnVideoStreamTick() if a sample is not available.
mfmediaengine: Call media_engine_render_d3d11 if scale/letterbox is needed.
mfmediaengine: Call media_engine_render_d3d11 from media_engine_transfer_d3d11().
mfmediaengine: Rename media_engine_transfer_to_d3d11_texture() helper function.
mfmediaengine/tests: Test TransferVideoFrame() scale/letterbox.
mfmediaengine/tests: Test output to format R10G10B10A2 from H.264.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8531