Create a bandtrack for MIDI files by picking out the MIDI 0xCn events, and creating matching DMUS_PATCH_PMSG.
* * *
This also has a commit adding a stub chordtrack, which is small so I think a separate MR is unwarranted. Can be split out if necessary.
--
v3: dmime: Add a stub chordtrack for MIDI segments.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5141
While reviewing !671 I wrote a few tests that are probably not too fundamental, but since now they exist it makes sense to keep them. !671 doesn't fix nor break any of them, anyway.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/674
Regarding dirty rectangles:<br>
Documentation for `ForceUpdate` states that "The system might update any region that is larger than the specified rectangle, including possibly the entire window". While native seems to use a sort of dirty-rectangle approach, for this MR, I am simply dirtying the entire surface. If someday someone did want to more-closely match the behavior of native, much can be learned from the rectangles passed to the update callbacks.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5161
With the new extension, we may implement wow64 correctly, without `VK_EXT_external_memory_host` hacks. This is both more correct and more performant (essentially eliminating Vulkan wow64 performance penalty).
--
v2: winevulkan: Use VK_EXT_map_memory_placed for memory mapping on wow64.
winevulkan: Add support for VK_EXT_map_memory_placed.
winevulkan: Refactor extra extensions handling in wine_vk_device_convert_create_info.
winevulkan: Use handle map for memory objects.
winevulkan: Rename wine_device_memory mapping to vm_map.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5128
~~This applies on top of !656, the last three commits belong here.~~
--
v10: vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Keep a reference to the message context inside struct vsir_cfg.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/662
This applies on top of !662, the last four commits belong here.
Here we compute a topological order (plus some additional properties) of the shader blocks. Eventually the blocks will be emitted precisely in this order, after having been enriched with structured control flow information.
--
v3: vkd3d-shader/ir: Keep loops contiguous in the topological sort.
vkd3d-shader/ir: Dump the topological order of the control flow graph.
vkd3d-shader/ir: Topologically sort the control flow graph.
vkd3d-shader/ir: Allow adding to a block list without checking for duplicates.
vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Keep a reference to the message context inside struct vsir_cfg.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/672