CLIP STUDIO PAINT spams FIXMEs for these functions when starting up.
--
v2: msvcrt: Only print FIXME once for Context_Yield().
msvcrt: Remove FIXME for _StructuredTaskCollection_dtor().
msvcrt: Print less FIXMEs for ThreadScheduler_ScheduleTask*().
https://gitlab.winehq.org/wine/wine/-/merge_requests/6454
This series is motivated by performance requirements for GetExtendedTcpTable, especially the tables that require owner PIDs. In the worst case, the existing code scans all /proc/\<pid\>/fd directories for all Wine process for every socket, and may repeat the entire scan up to 5 times if the number of connections outgrew the buffer. With esync, processes can easily have hundreds of entries in /proc/\<pid\>/fd. And, in certain environments, reading the files under /proc can be very …
[View More]slow; I've seen GetExtendedTcpTable take almost 2 seconds to complete.
Some applications (GOG Galaxy, Steam) use the TCP table to check that incoming connections to local services are from a set of whitelisted processes. It's possible for the GetExtendedTcpTable to take longer than the timeout on the socket, which results in failed communication between the client and service.
wineserver knows about all sockets and what process they belong to. The only missing information needed for GetExtendedTcpTable is the state of TCP sockets, which is recoverable from getsockopt(TCP_INFO).
I've added a function in server/handle.c that enumerates all handles of a given type in all processes. The new server calls use that to find all sockets and return the needed information.
Apologies for commit 3 being large. I couldn't think of a way to split it without introducing dead code.
--
v2: iphlpapi/tests: Confirm that GetExtendedUdpTable associates a socket with the correct PID.
iphlpapi/tests: Confirm that GetExtendedTcpTable associates a socket with the correct PID.
nsiproxy: Remove now unused git_pid_map and find_owning_pid.
server, nsiproxy: Implement UDP table on top of a server call.
server, nsiproxy: Implement TCP table on top of a server call.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6399
[View Less]
--
v3: winegstreamer: Output compressed samples from the media source.
winegstreamer: Stop on unparsed H.264 in autoplug-continue.
winegstreamer: Explicitly append an H.264 parser for H.264.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5988
Similar to !6430 and !6362, this should make it possible to use native override for these classes.
--
v3: l3codecx.ax: Register the MP3 Decoder class.
quartz: Register the MPEG Video Decoder class.
quartz: Register the MPEG Audio Decoder class.
quartz: Register the WAVE Parser class.
quartz: Register the AVI Splitter class.
quartz: Register the MPEG1 Splitter class.
quartz: Move registration code to main.c.
quartz: Simplify the filter registration …
[View More]code.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6441
[View Less]
I'm not sure this is 100% safe (maybe limiting those blits to sysmem textures
would be better like stated in the original change?)
--
v4: wined3d: Don't reject cross-device blits from CPU.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6300
Pushing all queued input immediately causes gstreamer to process all
frames in advance and queue them in the output_queue of the transform.
This results in a large amount of memory usage that can cause an OOM
issue.
This patch allows the queue to be drained at the rate required by the
application.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6432
Preparation for https://gitlab.winehq.org/wine/wine/-/merge_requests/6323
--
v2: winewayland: Detach client surfaces when they are not visible.
winewayland: Move client surface to wayland_win_data struct.
winewayland: Pass hwnd to and return client rect from wayland_surface_get_client.
winewayland: Introduce a new wayland_client_surface_attach helper.
winewayland: Move wayland_surface_get_client to window.c.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6452
This fixes a bug in EastMoney, which calls SetFileTypes() with a COMDLG_FILTERSPEC structure in which pszSpec = L"" followed by SetFileName(L"*.fml"). In windows, this matches all *.fml files. In wine, this matched no files. Before this patch, wine did not use filters from the file name field (marked as a FIXME) and a file type entry with an empty spec would match no files (as opposed to leaving the current filter unmodified).
The exact rules worked out by testing in a Windows 10 VM seem to be:…
[View More]
Current filter is initially empty and can be set by typing a filter
into the file name field (or SetFileName) or selecting an entry from the file type menu (or SetFileTypeIndex).
Selecting a file type entry with an empty spec leaves the current filter unchanged.
Selecting a file type entry with a non-empty spec clears the file name field if it currently contains a filter.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6443
[View Less]