Closed MaxGivno closed 6 years ago
This is a DXVK issue - I've created the issue here.
To continue building with new git release of Proton, in dxvk/src/meson.build
remove subdir('d3d10')
. Issue looks like meson is trying to correct an rpath using the wrong tool.
Something is definitely wrong with this build of DXVK:
[1/2] Installing files.
Installing src/dxgi/dxgi.dll to /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win32/bin
Stripping target 'src/dxgi/dxgi.dll'
Installing src/dxgi/libdxgi.dll.a to /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win32/lib
Installing src/d3d11/d3d11.dll to /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win32/bin
Stripping target 'src/d3d11/d3d11.dll'
Installing src/d3d11/libd3d11.dll.a to /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win32/lib
Installing /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win32/utils/setup_dxvk.sh to /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win32/bin
The Meson build system
Version: 0.47.1
Source dir: /Volumes/MacHDD/Users/harley/dev/proton/dxvk
Build dir: /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win64
Build type: cross build
Project name: dxvk
Project version: v0.70
0009:err:process:create_process 64-bit application L"Z:\\Volumes\\MacHDD\\Users\\harley\\dev\\proton\\build\\dxvk.win64\\meson-private\\sanitycheckc_cross.exe" not supported in 32-bit prefix
wine: Bad EXE format for Z:\Volumes\MacHDD\Users\harley\dev\proton\build\dxvk.win64\meson-private\sanitycheckc_cross.exe.
meson.build:1:0: ERROR: Executables created by c compiler x86_64-w64-mingw32-gcc are not runnable.
A full log can be found at /Volumes/MacHDD/Users/harley/dev/proton/build/dxvk.win64/meson-logs/meson-log.txt
Seems it tries to run 64bit exe in 32bit environment. I've found a similar issue in DXVK's repository, but it seems to be fixed back then. Looking for a fix.
@MaxGivno Looks like you trying to use 32 bit wine prefix for 64 bit build. You can try to change your cross-files like this: https://github.com/doitsujin/dxvk/pull/575
@pchome Thanks, it does the trick :)
Not sure where else to ask as there seem to be no forums of mailing list for those of us tinkering with macOS Proton: have either of you succeeded in running DX11 games of demos? Any Vulkan games or demos?
@Luke-Nukem I haven't tested it properly 'cause it tricky to install and launch games since Steam itself is not supported macOS build of Proton. Also, as I read in issue that you've created, dxvk isn't of any real use on mac until it's able to link to MoltenVK. So it seems it will take some work to make this happens.
@Luke-Nukem Nope
[170/176] Linking target src/d3d10/d3d10core.dll.
FAILED: src/d3d10/d3d10core.dll
i686-w64-mingw32-g++ -o src/d3d10/d3d10core.dll 'src/d3d10/src@d3d10@@d3d10core@sha/d3d10_main.cpp.obj' 'src/d3d10/src@d3d10@@d3d10core@sha/d3d10_reflection.cpp.obj' ../../dxvk/src/d3d10/d3d10core.def -Wl,--as-needed -Wl,-O1 -shared ../../dxvk/src/d3d10/d3d10core.def -Wl,--start-group -Wl,--out-implib=src/d3d10/libd3d10core.dll.a src/util/libutil.a src/dxbc/libdxbc.a src/dxvk/libdxvk.a src/spirv/libspirv.a /Volumes/MacHDD/Users/harley/dev/proton/dxvk/lib32/d3dcompiler_43.lib -ldxgi -ld3d11 /Volumes/MacHDD/Users/harley/dev/proton/dxvk/lib32/vulkan-1.lib -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group '-Wl,-rpath,$ORIGIN/../../../../dxvk/lib32' -static -static-libgcc -static-libstdc++ -Wl,--add-stdcall-alias,--enable-stdcall-fixup
/usr/local/Cellar/mingw-w64/5.0.4_1/toolchain-i686/bin/i686-w64-mingw32-ld: src/d3d10/src@d3d10@@d3d10core@sha/d3d10_main.cpp.obj:d3d10_main.cpp:(.text+0x89): undefined reference to `D3D11CoreCreateDevice@24'
collect2: error: ld returned 1 exit status
[174/176] Compiling C++ object 'src/d3d10/src@d3d10@@d3d10_1@sha/d3d10_main.cpp.obj'.
ninja: build stopped: subcommand failed.
@MaxGivno yeah, works for the 64bit build fine. It's all a bit of a pain on macOS, not sure what will happen for Steam once Apple forces phasing out of 32bit.
If you want to do a build of wine from winehq with MoltenVK enabled I can help with that - but, I don't know of any DX games or apps that are 32bit so you can try DXVK. Doom (2016) still crashes with a threading error with winehq macOS builds.
I don't know of any DX games or apps that are 32bit so you can try DXVK
DXVK contains simple tests (meson --cross-file ... -Denable_tests=true
), use d3d11-triangle
test if succeeded.
Thanks @pchome.
Given that macOS is going to depreciate 32-bit compatibility soon, and that MoltenVK currently doesn't build for 32-bits, I think we should look at building proton and support libs as 64-bit only on macOS.
I read somewhere (I wish I had bookmarked it) that someone at Code Weavers was looking at getting 64-bit wine builds on macOS to run/translate 32-bit Windowes apps.
@MaxGivno you can get a perfectly functional build by removing all 32-bit support.
@Luke-Nukem will try, thanks :)
@Luke-Nukem
Well, it's not that perfect ;) It seems like current Wine build doesn't support Vulkan on Mac. But WineHQ's one does. I've managed to build Proton with Wine 3.14 yesterday and it would ran cube.exe and vkQuake. But I wasn't able to test DXVK with d3d11-triangle
. I've got this:
free142:bin mryazanov$ STEAM_COMPAT_DATA_PATH=~/.proton/ ~/Documents/dev/proton/dist/proton run d3d11-triangle.exe
info: Game: d3d11-triangle.exe
info: DXVK: v0.65-82-gc24497d
warn: OpenVR: Failed to initialize OpenVR
info: Required Vulkan extension VK_KHR_get_physical_device_properties2 not supported
err: DxvkInstance: Failed to create instance
Failed to create DXGI factory
Tried today with MoltenVK 1.0.20, DXVK 0.71 and Wine dev 3.15:
info: Game: d3d11-triangle.exe
info: DXVK: v0.65-82-gc24497d
warn: OpenVR: Failed to initialize OpenVR
info: Enabled instance extensions:
info: VK_KHR_get_physical_device_properties2
info: VK_KHR_surface
info: VK_KHR_win32_surface
[mvk-info] MoltenVK version 1.0.20. Vulkan version 1.0.83.
The following Vulkan extensions are supported:
VK_MVK_moltenvk v7
VK_MVK_macos_surface v2
VK_KHR_surface v25
VK_KHR_swapchain v70
VK_KHR_maintenance1 v2
VK_KHR_shader_draw_parameters v1
VK_KHR_get_physical_device_properties2 v1
VK_KHR_push_descriptor v2
Created VkInstance with the following Vulkan extensions enabled:
VK_MVK_macos_surface v2
VK_KHR_surface v25
VK_KHR_get_physical_device_properties2 v1
[mvk-info] GPU device:
model: NVIDIA GeForce GTX 1060 3GB
type: Discrete
vendorID: 0x10de
deviceID: 0x1c02
pipelineCacheUUID: 00000000-0000-0000-0000-271300002724
supports the following Metal Feature Sets:
macOS GPU Family 1 v3
macOS GPU Family 1 v2
macOS GPU Family 1 v1
info: NVIDIA GeForce GTX 1060 3GB:
info: Driver: 0.0.156
info: Vulkan: 1.0.83
info: Memory Heap[0]:
info: Size: 3072 MiB
info: Flags: 0x1
info: Memory Type[0]: Property Flags = 0x1
info: Memory Type[1]: Property Flags = 0xf
info: Memory Type[2]: Property Flags = 0xb
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_10_1
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_10_0
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_9_3
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_9_2
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_9_1
err: D3D11CoreCreateDevice: Requested feature level not supported
Failed to create D3D11 device
It's confusing how DXVK reports version 0.65-82-gc24497d instead of 0.71.
i've jumped on this bandwagon and i'm curious as to how you guys are getting this to build. i was working on my own set of patches, i did figure out i needed these things on my High Sierra Hackintosh.
brew install cmake nasm libtool automake mingw-w64 python3
brew postinstall python3
# Install meson through pip3
pip3 install meson
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
I'm now getting stuck on SDL of all things. I've tweaked some more stuff in the build_proton.sh
and i'll edit back if that fixes things.
It's specifically during the wine build ( )
ld: symbol(s) not found for architecture i386
I've been adding if statements around 32-bit build steps to skip them on Darwin so I'm very confused as to where this came from.
@suicvne First of all I'm not a real 'fireman' ;) so treat my advices lightly.
I'm not sure if it's matter, but I've read that it's not recommended to use different repos for dependencies. It could break something. So use either brew or pip but not both.
For Xcode command line tools I've used just xcode-select --install
. Also not sure if it's critical.
Make sure you follow install instructions in Proton readme. Clone proton, then update submodules.
At this point you should be set to build. I had just one bummer with DXVK 0.70 stuck on d3d10 32-bit. So I just deleted subdir('d3d10')
in proton/dxvk/src/meson.build
.
It does it for me but there is some caveats for macOS. Wine 3.7 in current Proton build doesn't have Vulcan support for Mac. And MoltenVK seems do not have required capabilities for work with DXVK.
And follow instructions I have been. A lot of the stuff I have listed are workarounds I personally had to use. I've got a fully functioning Xcode command line tools and Xcode 9 and 10 beta. Deleted subdir('d3d10')
already. Everything's being built from the submodules.
The fact that the version of Wine they're using doesn't even support MoltenVK yet makes this seem counterintuitive to even attempt to build but I think it would still be fun to see the progress being made on it. I look forward to Valve putting in the work to make this great on macOS because it looks really promising already for Linux. Hopefully the day comes soon where I can permanently abandon my Windows partition.
macOS support has been removed: https://github.com/ValveSoftware/Proton/commit/a84120449d8177fa40f3de729e55d238d3c24877
iMac 2012 macOS 10.13.6
Happens after yesterday's update.