--
v2: Release 9.0.1.
wbemprox: Use separate critical sections for tables and table list.
kernel32/tests: Add tests for critical section debug info presence.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7462
--
v2: d3dx9: Don't color key compressed pixel formats on 32-bit d3dx9.
d3dx9: Fixup color key value in d3dx_load_pixels_from_pixels() if necessary.
d3dx9: Set all color channels to zero when color keying.
d3dx9/tests: Add some color key tests.
d3dx9: Move code for format conversion of a single pixel into a common helper function.
d3dx9: Make functions for pixel copying/conversion/filtering static.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7711
--
v3: mshtml: Move Option constructor to the window rather than the prototype.
mshtml: Move Image constructor to the window rather than the prototype.
mshtml: Validate builtin host functions in IE9+ using prototype_id rather
mshtml: Store the prototype_id of the last member that contains the needed
https://gitlab.winehq.org/wine/wine/-/merge_requests/7779
--
v5: win32u: Add a nulldrv pbuffer stub implementation.
winemac: Use the generic pbuffer implementation.
winewayland: Use the generic pbuffer implementation.
win32u: Introduce a generic pbuffer implementation from winex11.
opengl32/tests: Add more WGL_ARB_render_texture tests.
opengl32/tests: Add more WGL_ARB_pbuffer tests.
opengl32/tests: Avoid leaking contexts.
win32u: Handle some pixel format initialization.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7758
--
v4: win32u: Add a nulldrv pbuffer stub implementation.
winemac: Use the generic pbuffer implementation.
winewayland: Use the generic pbuffer implementation.
win32u: Introduce a generic pbuffer implementation from winex11.
opengl32/tests: Add more WGL_ARB_render_texture tests.
opengl32/tests: Add more WGL_ARB_pbuffer tests.
opengl32/tests: Avoid leaking contexts.
win32u: Handle some pixel format initialization.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7758
This fixes a misbehaving proton game that sets MF_XVP_PLAYBACK_MODE.
MF_XVP_PLAYBACK_MODE isn't mentioned in microsoft docs, but it's explained and used in the MIT-licensed [Windows-classic-samples](https://github.com/microsoft/Windows-classic-sampl…
Not sure if mfplat is the right place to add the tests for this since the code is in winegstreamer, but it's very similar to the existing mfplat tests and the test does not interface with winegstreamer directly.
It should be noted that on windows, ProcessOutput errors out if we provide a pSample with MF_XVP_PLAYBACK_MODE unset, wine simply ignores it.
--
v7: winegstreamer: Allow caller to allocate samples in MF_XVP_PLAYBACK_MODE.
mfplat/tests: Add test for MF_XVP_PLAYBACK_MODE.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7796
This fixes a misbehaving proton game that sets MF_XVP_PLAYBACK_MODE.
MF_XVP_PLAYBACK_MODE isn't mentioned in microsoft docs, but it's explained and used in the MIT-licensed [Windows-classic-samples](https://github.com/microsoft/Windows-classic-sampl…
Not sure if mfplat is the right place to add the tests for this since the code is in winegstreamer, but it's very similar to the existing mfplat tests and the test does not interface with winegstreamer directly.
It should be noted that on windows, ProcessOutput errors out if we provide a pSample with MF_XVP_PLAYBACK_MODE unset, wine simply ignores it.
--
v6: winegstreamer: Allow caller to allocate samples in MF_XVP_PLAYBACK_MODE.
mfplat/tests: Add test for MF_XVP_PLAYBACK_MODE.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7796
If CompStrAttr and CompStrClause are properly configured, Japanese input
will be more comfortable.
Inspired by cursor_begin and cursor_end from Wayland zwp_text_input_v3
preedit_string, I extended the cursor_pos concept as follows:
cursor_pos = MAKELONG( cursor_begin, cursor_end );
ime_to_tascii_ex() uses this to construct CompStrAttr, CompStrClause.
MS Windows native CompStrAttr, CompStrClause is a bit more complicated
than this, but the concept is useful enough.
It requires additional implementation in the Wine ime_ui_window proc and
richedit control. However, it is useful for applications that inline ime
composition string.
This can be tested with MS Office Word, Excel. LANG=ja_JP.UTF-8 wine EXCEL.EXE
Test key sequences:
- “n-i-h-o-n-g-o-n-o-m-o-j-i-d-e-s-u-.-SPACE”.
- And, RIGHT, LEFT, Shift+LEFT, Shift+RIGHT, SPACE, UP, DOWN, ESC, etc.
--
v3: winex11: Update only when caret pos changed in xic_preedit_caret.
winex11: Extend cursor_pos using cursor_begin, cursor_end.
winemac: Extend cursor_pos using cursor_begin, cursor_end.
winewayland: Extend cursor_pos using cursor_begin, cursor_end.
win32u: Add more CompAttr, CompClause implementation using cursor_begin, cursor_end concept.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7812
Follow-up of !2786, which appears to have been abandoned.
--
v17: ws2_32/tests: Add test for AF_UNIX sockets.
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7650
Ralf Habacker (@rhabacker) commented about server/fd.c:
> set_error( STATUS_OBJECT_NAME_COLLISION );
> goto error;
> }
> ftruncate( fd->unix_fd, 0 );
Here is a direct usage of the `unix_fd`, which may be a problem.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7650#note_100892
On Tue Apr 15 07:50:06 2025 +0000, Ralf Habacker wrote:
> Here the `unix_fd` is saved for closing the file, which is -1 in the
> case of sockets.
`unix_fd` is used in `inode_close_pending()`, `inode_destroy()`, `inode_add_closed_fd()`, `fd_destroy()` and `unmount_fd()` to close the file. In any of the mentioned location the call to close() is guarded with `if (fd->unix_fd != -1)`, so these function are already save the socket case.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7650#note_100886
This fixes a real problem and improves behavior at the same time.
- ~~Fixes: hanging when trying to run Wine built with epoll_pwait2 headers available but epoll_pwait2 is missing in the run-time kernel (i.e. build 5.11->run 5.10)~~ (already fixed.)
- Improvement: bring the improved timeout resolution to Wine builds
which didn't have epoll_pwait2 at compile time, if the run-time kernel supports it
(i.e. build 5.10->run 6.14)
This last point is especially important in my opinion, as it applies to official Proton builds.
Proton is (currently) built in Debian 11 with kernel 5.10, but SteamOS is a moving target with
a much newer kernel version being used to run these Wine builds.
These builds use the lower resolution timeouts if epoll_pwait2 is only checked for at compile-time,
when it can cheaply and easily be done at run-time instead.
~~Fixes: 87ca5db40e2c1b37423bdc25101a5c5e39e67e6f~~
~~An alternative to !7640 that kills two birds with one stone.~~
--
v6: server: Use dlsym() to check for epoll_pwait2 at run-time.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7642
--
v2: shell32: Rework rename_files.
shell32: Don't parse wildcard for rename operation.
shell32: Rework add_file_entry, add more parameters.
shell32/tests: Avoid showing UI when testing.
shell32/tests: Test NULL and empty file name for SHFileOperation.
shell32/tests: Add more tests to test_rename.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7775
I split the implementations into 2 parts to make it looks easier to review. So plz first review this MR and make sure it's good so that we don't have to rebase. The follwing patches is in !7571.
--
v2: mfreadwrite: Implement sink_writer_SetInputMediaType.
mfreadwrite: Implement IMFSinkWriterEx.
mfreadwrite: Add converter transform to stream.
mfreadwrite: Add attributes member to writer struct.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7570