Building 32 bit wine with Vulkan support

Questions about Wine on Linux
Post Reply
invisible kid
Level 1
Level 1
Posts: 7
Joined: Tue Dec 24, 2019 3:23 pm

Building 32 bit wine with Vulkan support

Post by invisible kid » Sat Jan 04, 2020 7:27 am

Hello!

My distro is LFS without apt or related tools installed, but I can install *.deb files, but would rather build myself if possible.

I have successfully built 64 bit wine with vulkan support by installing the pre-built libraries from the SDK:

pkgconfig/vulkan.pc
libvulkan.so.1
libvulkan.so.1.1.130
libvulkan.so

World of Warcraft 64 bit client is working beautifully. When I try to build 32 bit wine for blizzard launcher and Hearthstone, I expectedly get "configure:23350: libvulkan and libMoltenVK 32-bit development files not found, Vulkan won't be supported."

It was a huge disappointment to find out https://vulkan.lunarg.com/sdk/home#linux did not supply 32 bit libraries like they do the 64 bit versions. So I will need to build the 32 bit versions.

So I started out attempting to build the 64 bit version of vulkan, since I know the pre-built libraries work, to start from a "safe spot" and once I am able to build 64 bit, I will then attempt to build 32 bit. (The pre-build 64 bit SDK tar ball includes the sources)

It is difficult to even determine what I do and don't need to install. It seems I definitely need Vulkan-Loader, as building that will provide

pkgconfig/vulkan.pc
libvulkan.so.1
libvulkan.so.1.1.130
libvulkan.so

which is I believe what wine is looking for when configuring/compiling. The error I'm getting building that is

In file included from /usr/src/vulkansdk-linux-x86_64-1.1.130.0/source/Vulkan-Loader/loader/loader.h:38,
from /usr/src/vulkansdk-linux-x86_64-1.1.130.0/source/Vulkan-Loader/loader/asm_offset.c:24:
/usr/src/vulkansdk-linux-x86_64-1.1.130.0/source/Vulkan-Loader/loader/generated/vk_layer_dispatch_table.h:224:5: error: unknown type name ?PFN_vkGetPhysicalDeviceToolPropertiesEXT?
PFN_vkGetPhysicalDeviceToolPropertiesEXT GetPhysicalDeviceToolPropertiesEXT;

So I though I might need to build Vulkan-ValidationLayers, but in the BUILD.md file it intentionally excludes linux 32 bit instructions, but includes them for windows 32 bit builds, so I am at a bit of a loss here, but will try to build the 64 bit versions just as a sanity check.

Also I noticed that my debian install does not have the above mentioned vulkan libraries, so I am guessing debian only uses the generated dll files and its wine versions do not need to dynamicly link to them?

Any help would be much appreciated!

invisible kid
Level 1
Level 1
Posts: 7
Joined: Tue Dec 24, 2019 3:23 pm

Re: Building 32 bit wine with Vulkan support

Post by invisible kid » Sun Jan 05, 2020 7:55 am

I had a copy of libvulkan1_1.0.39.0+dfsg1-1_i386.deb laying around in my debian cache, so I took the 32 bit lib from there, created a vulkan.pc and rebuilt 32 bit wine, and did the wow64 install

I am still unable to get past the blizzard launcher login. The login splash occurs, but disappears after a crash(I already have corefonts and other winetricks/configs). I guess this can still be a gnutls issue that I created another thread for:

viewtopic.php?f=8&t=33294

Cybermax
Level 4
Level 4
Posts: 206
Joined: Fri Dec 01, 2017 5:26 pm

Re: Building 32 bit wine with Vulkan support

Post by Cybermax » Sun Jan 05, 2020 11:27 am

You could perhaps grab some source packages from LunarG and build from those? https://packages.lunarg.com/vulkan/1.1.130/pool/main/ These are used to build Ubuntu Xenial/Bionic packages, but should be adaptable for building.

Not really familiar with LFS, but for the debian/ubuntu family, building crosslib kinda sux. I tend to use LXC to build -32 bit, and it works fairly well, but i know ppl have other build methods for that.

If you have problems figuring out what you need of those packages, i did a backport quite a while back to 1.1.106 (before LunarG provided packages pre-built) that can give you an idea what you would need to build Wine and/or Dxvk. https://launchpad.net/~cybermax-dexter/ ... -backports

You need to build headers first, as the vulkan-loader is dependent on that to build.

You did not mention why you wanted vulkan support for Wine, other than perhaps to use DXVK? If so, you could try remove the dll-override for d3d9 that DXVK puts in as i think this causes a problem with the blizzard launcher....

invisible kid
Level 1
Level 1
Posts: 7
Joined: Tue Dec 24, 2019 3:23 pm

Re: Building 32 bit wine with Vulkan support

Post by invisible kid » Sun Jan 05, 2020 2:14 pm

Thanks a lot! Yes, I believe I just need 32 bit DXVK working. It seems it is already working in 64 bit mode with world of warcraft.

I will process this and get back with an update, thx again!

Post Reply