Using IMF2DBuffer2_Lock2DSize with LockFlags_Write dramatically improves
performance over IMFMediaBuffer_Lock when using a DXGI buffer.
IMFMediaBuffer_Lock does not know that this buffer will not be read and
therefore performs an unnecessary transfer of the texture from GPU to CPU
before it is overwritten.
--
v2: winegstreamer: Optimise copy to DXGI buffer.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5978
Signed-off-by: Joel Holdsworth <joel(a)airwebreathe.org.uk>
--
v2: ntdll: Add support for FILE_{RENAME,LINK}_POSIX_SEMANTICS.
ntdll: Factor out get_inode_open_sharing.
ntdll/test: Add tests for FILE_LINK_POSIX_SEMANTICS.
ntdll/test: Add tests for FILE_RENAME_POSIX_SEMANTICS.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4457
in tiling compositors, or those with decorations always on, having popups (like menu items or
on-hover tooltips) be set as toplevels causes them to become unusable. Instead, if a HWND is owned
by another window that has a wayland surface, create the surface as a xdg_popup of the owner.
since i couldn't find any info on this issue aside from https://bugs.winehq.org/show_bug.cgi?id=56278,
i decided to try and fix it.
those patches are a WIP, currently it manages fine running tools like notepad.exe and notepad++,
but gimp and winecfg still don't work. some tests, namely tooltip.c in comctl32 are failing,
although i can reproduce the failure on the master branch, will look into it.
Signed-off-by: Anna (navi) Figueiredo Gomes <navi(a)vlhl.dev>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5994
I'm not sure about the need for this solution, so it's a **DRAFT**. For me it is an academic interest to check whether atomic locks will give advantages over pthread_mutex in games. First impressions are that games have become smoother, but need to think about tests that can actually be measured.
Before build need define `WINE_USE_ATOMIC_LOCKS`.
```bash
export CFLAGS="${CFLAGS} -DWINE_USE_ATOMIC_LOCKS"
```
--
v7: ws2_32: Add atomic lock support.
wine32u: Add atomic lock support.
winevulkan: Add atomic lock support.
ntdll: Add atomic lock support.
winewayland: Add atomic lock support.
include: Define custom mutex macroses.
msxml3: Fix compilation errors with Clang 18.
configure: Change C standard to C17.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6031
This is based on work done by Andrew Eikum. It has been in some form in Proton for the last 4 years.
If server's sampling rate is not 48kHz **DOOM Eternal** will try to set it 48kHz for the streams using the implemented interface. There's a whole class of audio devices that use 44.1kHz sampling rate and at least PulseAudio / PipeWire tends to inherit the value from the hardware to avoid resampling. The value can also be overridden by the user via the audio server's config files.
In such cases, if the interface is not present or stubbed, this results in **audio underruns and noticeable crackling**.
It's easy to test with pipewire-pulse:
```
$ cat /etc/pipewire/pipewire.conf.d/sample-rate.conf
context.properties = {
default.clock.rate = 41100
}
```
With PulseAudio this should be doable via setting `default-sample-rate = 41100` in `/etc/pulse/daemon.conf`.
--
v6: winepulse.drv: Implement set_sample_rate.
mmdevapi: Add stub IAudioClockAdjustment implementation.
mmdevapi/tests: Add more IAudioClock tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5585