This applies on top of !698, the last three commits belong here.
Here we reconstruct an internal representation of a structured program corresponding to the input CFG. The representation can be directly emitted (which will be the following MR) or other passes can be run on it to simplify the loop structure.
--
v2: vkd3d-shader/ir: Dump the reconstructed structured program.
vkd3d-shader/ir: Add jumps to the structured programs.
vkd3d-shader/ir: Reconstruct a structured program.
vkd3d-shader/ir: Sort loop intervals.
vkd3d-shader/ir: Generate synthetic intervals for forward edges.
vkd3d-shader/ir: Compute loop as intervals of the block order.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/704
On Tue Mar 12 12:12:59 2024 +0000, Yuxuan Shui wrote:
> @Alcaro `wg_parser_disconnect` frees all the streams
`wg_parser_disconnect` and `wg_parser_destroy` frees the Unix-side streams. `reader->streams` is PE-side, and is not affected by wg_parser_disconnect/destroy.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4449#note_64390
During Direct3D device enumeration, Tomb Raider 3 modifies the buffer holding the Direct3D reference device description string. However, due to insufficient space in the buffer, the modification overruns the buffer and corrupts the IDirectDraw vtable, which leads to a crash on game startup.
Reserving extra space in the description string buffer avoids the vtable corruption and allows the game to start.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56367
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5272
--
v4: vkd3d-shader/fx: Add support for writing shared object descriptions for fx_4_x.
vkd3d-shader: Add an option to enable child effects compilation.
vkd3d-shader/fx: Add initial support for writing uninitialized vertex/pixel shader objects.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/692
Sorry for the long silence. A couple of nits above, but generally that looks fine to me. My understanding is that we could in principle have a client that calls Microsoft's d3d9on12.dll instead of returning our d3d9, is that right? The games just go through `Direct3DCreate9On12` but then only use the D3D9 interface?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4915#note_64358