Tested with my FEX windows port by setting cpsr bits before rethrowing an exception and observing the resulting eflags in an x86 program with an exception filter. There are no additional mappings (though this could be extended using reserved bits to pass through pf/af)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6128
--
v3: odbc32: Find the driver filename through the ODBCINST.INI key.
odbc32: Fix setting the Driver registry value.
odbc32/tests: Add tests for SQLTransact().
odbc32: Get rid of the wrappers for SQLGetDiagRecA() and SQLDataSourcesA().
odbc32: Avoid a clang warning.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6122
At the moment GL/VK content can only be presented in top-level windows, since child windows are not backed by Wayland surfaces. This MR adds support for such scenarios, in a few gradual steps:
1. Create Wayland (sub)surfaces for all child windows, anchoring them to their parent surface, which may also be a child window surface (i.e., we support GL/VK in nested child windows). This approach works, but it pollutes the compositor with mostly unused, and possibly nested (sub)surfaces. We will deal with this later in the MR.
2. Ensure that the child window (sub)surfaces are properly updated and reconfigured, and support WS_POPUP <-> WS_CHILD style changes (reparenting etc).
3. In the last commit, improve efficiency by creating (sub)surfaces only for the child windows needed by GL/VK, and anchor them directly to the parent toplevel. This removes (sub)surface bloat and unnecessary nesting, the trade-off being some extra complexity when dealing with updates.
Note that this MR doesn't clip GL/VK child window contents at the moment.
The subsurface mechanism introduced in this MR could also handle other kinds of windows in the future, for example display and properly position transient windows, menus etc.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6107
Fixes Bug 23029 (Devil May Cry® 3 Special Edition) (6550) Intro Video is covered by green, transparent square for a majority of it.
Before these patches, surface data for planar formats is not copied
correctly when the application uses a custom allocator-presenter and
allocates a surface of different size than the VMR9 source.
Patch 2/2 adds support for performing this copy correctly when the
source dimensions are less or equal than the rendering surface
dimensions.
---
I have some questions:
- Should I also make it work for when the dst is smaller than the src?
- If not, should the FIXME() in 1/2 be promoted to an error? Otherwise we might have segfaults, writing out of scope.
- Should I use copy_plane(), introduced in 2/2 also in the implementation of the other formats? Changing what needs to be changed to preserve behavior of course.
--
v4: quartz: Properly copy data to render surfaces of planar formats in VMR9.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6069