--
v4: mfreadwrite/reader: Pass the device manager to the stream transforms.
winegstreamer/video_processor: Implement D3D awareness.
mf/tests: Test video processor D3D11 awareness.
mfreadwrite/tests: Add some source reader D3D11 awareness tests.
mfreadwrite/reader: Avoid leaking the stream transform service MFT.
mfreadwrite/tests: Shutdown the test stream event queues on source shutdown.
mfreadwrite/tests: Avoid using MFCreateMediaBufferFromMediaType.
mfreadwrite/tests: Do not accept MFVideoFormat_RGB32 in the test transform.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5459
As an intermediate step on the way to !5388, I wanted to focus on the infrastructure that will allow us to pass pixel format information from the driver to the PE side. This MR introduces the mechanism to perform this information exchange and uses it to implement `wglDescribePixelFormat` on the PE side. In the current RFC state this MR:
1. Introduces `p_get_pixel_format` driver API to allow drivers to provide pixel format information.
2. Implements `wglDescribePixelFormat` on the PE side using the pixel format information. If the driver doesn't implement `p_get_pixel_format` we fall back to the `wglDescribePixelFormat` driver implementation (temporary measure until all drivers are updated).
3. Caches pixel format information in `NtCurrentTeb()->glReserved1[]`.
4. Implements `p_get_pixel_format` API and removes the custom `wglDescribePixelFormat` for winewayland.
At this point would like to get some more feedback about this approach and the technical details. If the direction seems promising, here are the next steps to get to a final MR:
1. Implement `p_get_pixel_format` for winex11, winemac and dibdrv and remove their custom `wglDescribePixelFormat` implementations.
2. Remove the `wglDescribePixelFormat` driver API.
Thanks!
--
v3: winex11.drv: Remove unnecessary parameter from describe_pixel_format.
winex11.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5517
This avoids one case of spurious wakeup of WaitOnAddress (which could be triggered by prior race on consequent WakeAddressAll and a thread trying to wake on that, leaving the waking thread in an alerted state). And fixes Resident Evil games randomly crashing due to unhandled spurious SleepConditionVariableCS wakeups.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3929