This is the first of (tentatively) 3 MRs that add Vulkan support to the Wayland driver. Here is the proposed breakdown:
* part 10.1 (this one): Basic setup and VkSurfaceKHR integration
* part 10.2: VkSwapchainKHR integration
* part 10.3: Everything else (mostly passthrough implementations of other Vulkan functions)
I chose to go with Vulkan first, instead of OpenGL, since the integration is more straightforward, and allows us to implement required core driver changes (which will also be used for OpenGL later) with fewer distractions.
Please note that all 3 parts need to land before the Vulkan support is actually usable in applications/games. I have uploaded the full (tentative) series for people that want to take a look or try out the final state: https://gitlab.winehq.org/afrantzis/wine/-/tree/wayland-part-10
Finally, part 10 is not based on part 9, so they can land in either order. However, there are interactions and conflicts between the two, so whichever part lands last will need to be (slightly) adapted. Note, though, that without part 9, some things won't work well on scaled outputs (esp. fullscreen).
Thanks!
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4340
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v7: vkd3d-shader/tpf: Initial support for writing fx_4_0/fx_4_1 binaries.
vkd3d-shader: Add separate binary target type for effects.
vkd3d-shader/hlsl: Handle effect group statement.
vkd3d-shader/hlsl: Add variables for techniques.
vkd3d-shader/hlsl: Rename rule for top-level techniques.
vkd3d-shader/hlsl: Add 'fxgroup' token.
tests: Add some tests for effects groups syntax.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/443
--
v2: dmime: Better implement performance times with tempo track.
dmime: Support playing secondary and control segments.
dmime/tests: Test playing tempo track effect on performance times.
dmime/tests: Add helpers to scale and check music time with tempo.
dmime: Fix tempo track GetParam with GUID_TempoParam implementation.
dmime/tests: Test tempo track GetParam with GUID_TempoParam.
dmime/tests: Test tempo track Play and DMUS_PMSGT_TEMPO messages.
dmime: Implement IDirectMusicPerformance_GetSegmentState semi-stub.
dmime/tests: Test IDirectMusicPerformance_GetSegmentState.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4338
Currently we are not properly handling register(cX) reservations for SM1, this is one of the things required for the SNK shaders (CW Bug Bug 18092).
register(cX) reservations also change the offset in the $Globals buffer in SM4, so support for this is also included.
---
Patch 1/4 is required to specify:
```
[require]
shader model < 4.0
```
so that the tests that follow do not get run with the vulkan backend on SM4. I think nobody disagreed with that patch.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/458