First relevant commit:
windows.media.speech: Add a worker thread to the recognition session.
--
v3: windows.media.speech: Store recorded audio in a temporary ringbuffer.
windows.media.speech: Implement the audio capturing system.
windows.media.speech: Allow the recognition session worker to be paused.
windows.media.speech/tests: Check if stopping the session resets the paused state.
windows.media.speech: Add a worker thread to the recognition session.
windows.media.speech/tests: Test starting, stopping, pausing and resuming the recognition session.
windows.media.speech/tests: Test the recognizer state.
windows.media.speech: Return IAsyncAction from session_PauseAsync.
windows.media.speech: Return IAsyncAction from session_StopAsync.
windows.media.speech: Do not force calling convention on internal callbacks.
windows.media.speech: Move constraints vector to the recognition session.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1948
FFXIV depends on this. It calls SetFullscreenState when it receives WM_WINDOWPOSCHANGED. Through luck the recursion aborts after two calls. The user-visible bug is that after leaving fullscreen, the game's window is still TOPMOST because we overwrite the stored pre-fullscreen window flags.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1964
As diagnosed by GCC 13:
dlls/localspl/provider.c: In function ‘fill_builtin_form_info’:
dlls/localspl/provider.c:3045:16: warning: ‘res_len’ may be used uninitialized [-Wmaybe-uninitialized]
3045 | if (res_len)
| ^
--
v2: wrc: Avoid undefined behavior in the FreeBSD case
https://gitlab.winehq.org/wine/wine/-/merge_requests/1960
This video codec is used by games such as Richman 4, and Zwei: The Arges Adventure.
The decoder logic is based on code from the FFmpeg project.
--
v6: loader/wine.inf: Enable ir50_32 video codec.
ir50_32: Implement decompression to 24-bit and 15-bit RGB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1301
The existing mitigation for this (memcpy/overhead) leaves the first 8 bytes of RAWINPUT.data in the location of the wParam, and the upper 4 bytes of the wParam in the lower 4 bytes of the hDevice.
Marking this as a draft due to code freeze.
--
v2: win32u: Correct GetRawInputBuffer alignment under WoW64.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1949
Second part of !50.
--
v2: vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_scope.
vkd3d-shader/hlsl: Add field-level documentation to function structs.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_buffer.
vkd3d-shader/hlsl: Add documentation to small hlsl.h structs.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_deref.
vkd3d-shader/hlsl: Add documentation to struct hlsl_reg.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/61
If a hlsl_ir_load loads a variable whose components are stored from different
instructions, copy propagation doesn't replace it.
But if all these instructions are constants (which currently is the case
for value constructors), the load can be replaced with a constant value, which
is what the first patch of this series does.
For instance, this shader:
```
sampler s;
Texture2D t;
float4 main() : sv_target
{
return t.Gather(s, float2(0.6, 0.6), int2(0, 0));
}
```
results in the following IR before applying the patch:
```
float | 6.00000024e-01
float | 6.00000024e-01
uint | 0
| = (<constructor-2>[@4].x @2)
uint | 1
| = (<constructor-2>[@6].x @3)
float2 | <constructor-2>
int | 0
int | 0
uint | 0
| = (<constructor-5>[@11].x @9)
uint | 1
| = (<constructor-5>[@13].x @10)
int2 | <constructor-5>
float4 | gather_red(resource = t, sampler = s, coords = @8, offset = @15)
| return
| = (<output-sv_target0> @16)
```
and this IR afterwards:
```
float2 | {6.00000024e-01 6.00000024e-01 }
int2 | {0 0 }
float4 | gather_red(resource = t, sampler = s, coords = @2, offset = @3)
| return
| = (<output-sv_target0> @4)
```
This is required to write texel_offsets as aoffimmi modifiers in the sm4 backend, since it expects the texel_offset arguments to be hlsl_ir_constant.
This series also:
* Allows Gather() methods to use aoffimmi modifiers instead of an additional source register (which is the only way allowed for shader model 4.1), when possible.
* Adds support to texel_offsets in the Load() method via aoffimmi modifiers (the only allowed method).
--
v8: vkd3d-shader/hlsl: Fold swizzle chains.
vkd3d-shader/hlsl: Refactor common code on copy-prop of both loads and swizzles.
vkd3d-shader/hlsl: Propagate copies through swizzles.
vkd3d-shader/hlsl: Replace swizzles with constants in copy prop.
tests: Test constant propagation through swizzles.
vkd3d-shader/hlsl: Support offset argument for the texture Load() method.
tests: Test offset argument for the texture Load() method.
vkd3d-shader/hlsl: Use aoffimmis when writing gather methods.
vkd3d-shader/hlsl: Replace loads with constants in copy prop.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/51