Vectors cannot be used as array indexes, however, single-component
swizzles (such as vec.x) can be used.
This suggests that single-component swizzles should actually be
scalars and not vectors of dimx = 1.
It is worth noting that the use of swizzles on scalars should still
be allowed.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/70
First part of v2 of !27, which aims to:
* Allow allocation of variables of complex types that contain both numerics and objects across multiple register sets (regsets).
* Support the tex2D and tex3D intrinsics, inferring generic samplers dimension from usage, writing sampler declarations, and writing sample instructions.
* Support for arrays of resources for both SM1 and SM4 (not to be confused with the resource-arrays of SM 5.1, which can have non-constant indexes).
* Support for resources declared within structs.
* Support for synthetic combined samplers for SM1 and synthetic separated samplers for SM4, considering that they can be arrays or members of structs.
* Imitate the way the native compiler assigns the register indexes of the resources on allocation, which proved to be the most difficult thing.
* Support for object components within complex input parameters.
* Small fixes to corner cases.
This part consists on parsing the `tex2D()` and `tex3D()` intrinsics and beginning to support the allocation of variables across multiple regsets.
The whole series, is on my [master6](https://gitlab.winehq.org/fcasas/vkd3d/-/commits/master6) branch.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/66
The PE build of vkd3d uses Windows critical sections for synchronisation, and
these slow down on the very high lock/unlock rate during multithreaded
descriptor copying in Shadow of the Tomb Raider. This patch speeds up the
demo by about 8%. By comparison, using SRW locks in the allocators and
locking them for read only where applicable is about 4% faster.
--
v2: vkd3d: Store a heap array index in each CBV/SRV/UAV descriptor.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/67
MemAvailable field in /proc/meminfo appeared in Linux kernel around 2015 and is recommended way to query free RAM. The way we currently estimate it consistently reports more free RAM available.
The old way of estimating free RAM should still work if MemAvailable field is not there.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2013
session_request_sample() calls session_request_sample_from_node() and increments sink.requests only if that succeeds. But session_request_sample_from_node() calls session_deliver_sample_to_node() synchronously for MF_TOPOLOGY_TRANSFORM_NODE if there are output samples available. Then, if sink.requests is zero before this session_request_sample() call that sample is silently dropped.
It might not be easily noticeable currently, but I have a patchset which implements _ProcessMessage(MFT_MESSAGE_COMMAND_DRAIN) needed for some games (and also improving end of playback by fully delivering output including few last frames). And currently if session_deliver_sample_to_node() performs drain and that drain produces any samples we get a data sample processed but end marker silently dropped resulting in hanging session. That market gets to session_request_sample / session_request_sample_from_node but gets dropped in session_deliver_sample_to_node due to the reason first patch is fixing.
Thus also the second patch. I am not sure it is strictly needed, but the current handling of that seems fragile to me, I suppose we shouldn't ever drop markers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2012
First relevant commit:
windows.media.speech: Add a worker thread to the recognition session.
--
v9: windows.media.speech: Store recorded audio in a temporary ringbuffer.
windows.media.speech: Partially implement the speech recognizer state.
windows.media.speech: Add an 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.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1948
First relevant commit:
windows.media.speech: Add a worker thread to the recognition session.
--
v8: windows.media.speech: Store recorded audio in a temporary ringbuffer.
windows.media.speech: Partially implement the speech recognizer state.
windows.media.speech: Add an 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.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1948