Wine Vulkan ICD repository

Sebastian Lackner sebastian at fds-team.de
Fri Nov 17 07:09:14 CST 2017


On 17.11.2017 09:38, Roderick Colenbrander wrote:
> Hi all,
> 
> I have created a temporary Wine fork containing my Vulkan ICD work at:
> https://github.com/roderickc/wine-vulkan
> 
> The repo is meant to show the current design without having to spam
> wine-devel with a ton of patches. I rebased all my code and split it
> up well. There are a few hacky patches like x11 window support just
> for me to get some actual applications to work to test the ICD design.
> 
> The last 3 or so patches contain a proof-of-concept for some of the
> 32-bit struct handling support. I have 32-bit support mostly working,
> but it required some changes to my script which I need to cleanup
> before I share it. Obviously the 32-bit work will be rebased across
> earlier patches in the series.

I find it a bit difficult to check how well 32-bit support is working
when there is just an example for a single wrapper function. Are you aware
that some functions also take arrays of structs as parameters, or have
arrays embedded in other structs?

For a function which takes an array of VkSwapchainCreateInfoKHR structs,
please take a look at vkCreateSharedSwapchainsKHR.

For a struct which contains an embedded array that has to be converted,
take a look at VkGraphicsPipelineCreateInfo (pStages array) or
VkSparseBufferMemoryBindInfo (pBinds array).

Obviously, you also want to avoid the conversion overhead when the
host and windows struct matches. Is that also implemented?

> 
> The patches also include the Vulkan generation script I wrote. Parsing
> Vulkan is quite a pain due to all the structures and its object
> design. For this reason my parser is quite stateful, which made it
> more work to write, but now it is easy to generate code and do awful
> things like the 32-bit generation.
> 
> Feel free to play around with the code. I added some instructions to
> the project. Currently 64-bit applications such as cube.exe,
> vulkaninfo.exe and vkquake.exe are known to work. 32-bit support is in
> progress, vulkaninfo.exe kind of works, but anything needing structure
> conversion will currently fail.
> 
> Let me know your thoughts.
> 
> Thanks,
> Roderick
> 
> 




More information about the wine-devel mailing list