~~This applies on top of !704, the last two commits belong here.~~
Here we finally emit the structured program, replacing the older simple structurizer. The advantage of the new structurizer is that the CFG if statically described in the generated program, without having to trace the value of a variable. Upcoming MRs will make the CFG even simpler, easier to read and hopefully to optimize for downstream compilers.
--
v4: vkd3d-shader/ir: Emit multilevel jumps in the structured program.
vkd3d-shader/ir: Emit the reconstructed structured program.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/711
On Fri Mar 15 07:55:52 2024 +0000, Rémi Bernon wrote:
> changed this line in [version 2 of the diff](/wine/wine/-/merge_requests/5294/diffs?diff_id=105317&start_sha=bda0dbe0b9086716616731c86c81b550162e8811#f44c614b47a01be8d6d29ad07f7a5616e1ae60ec_26_26)
Indeed, fixed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5294#note_64866
DXVK fails to create a device for the desktop window which causes the test to crash.
Instead of crashing, it should just skip the remaining desktop window tests if device creation fails.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5258
When there are two monitors and they are mirrored, both of them are considered primary. When the
first primary monitor happens to be a clone, EnumDisplayMonitors() ends up not reporting any
monitors because should_enumerate_monitor() returns FALSE and we break out the loop to enumerate
primary monitors after that.
This is a regression from b59619d and my review comments. My indent was to break out of the loop
after finding the *master* primary monitor, not cloned primary monitors, to avoid unnecessary
iterations. However, the primary monitor count is small and it's cleaner this way so let's break
when should_enumerate_monitor() returns TRUE.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5317
When ddraw_texture_init needs to clean up on failure, it will call the
wined3d_texture_get_sub_resource_parent function on draw_texture in
order to retrieve its parent for a IDirectDrawSurface release call.
However, if draw_texture is NULL, then the function call will crash
due to a null pointer dereference.
Therefore, on failure cleanup, the release operation on the texture
parent should only be performed if draw_texture is not NULL.
This fixes a crash in the Virtual Insanity game demo.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5305