The first two patches here address an issue I encountered when using Wine's d3dx9 with DXVK in the game Command and Conquer 3. The game calls `D3DXLoadSurfaceFromMemory` on a multisampled render target. This ends up going through the `lock_surface()` helper in d3dx9, which eventually calls `UpdateSurface()` in `unlock_surface()` to copy the staging surface back to the multisampled render target. This succeeds on wined3d even though it shouldn't, and fails on DXVK like it should.
The second two patches address an issue reported in Empires: Dawn of the Modern World, where the game expects a device reset to reset the scene state.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6042
The `-Wstringop-overread` fix feels a bit questionable (so I'll add Eric as a
reviewer to clarify the MSC structs details)
--
v4: winedump: Initialize size variable in dump_dir_exceptions().
winedump: Use offsetof() for string position calculations.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5625
GCC 14.1 emits a bunch of warning when compiling (winedump & dbghelp).
This stems from some of the structures attempting to reflect file
layout (after serialisation), whereas the variable length of
some contiguous fields make it impossible (in C).
So use flexible array members for variable length arrays,
and use an FAM as well for packing the more complicated bits.
This keeps these data blocks as C structures for the fields
that can be directly mapped, and leave to the caller the
responsability of deserializing the rest.
This seem to be enough to get rid of these GCC warnings.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6064
Fixed rotation of angles < 90deg in bus_sdl.
Align logical max of angles to physical max defined in dinput (35900). Before, a polar angle of eg 90deg would end up in bus_sdl/bus_udev as 90.25deg.
--
v4: winebus.sys: Align logical max of angles to physical max defined in dinput
winebus.sys: Fix rotation for angles < 90deg
https://gitlab.winehq.org/wine/wine/-/merge_requests/6043