Dxvk: Build issue

Created on 15 Nov 2018  Â·  49Comments  Â·  Source: doitsujin/dxvk

Trying to build c25483e856fddd3599c08804991242fcbcb9b7d7 , but fails with:

In file included from ../../Temp/dxvk/src/util/com/../../d3d11/d3d11_include.h:3:0,
                 from ../../Temp/dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:3,
                 from ../../Temp/dxvk/src/util/com/com_guid.cpp:3:
../../Temp/dxvk/src/util/com/../../d3d11/../dxgi/dxgi_include.h:27:10: fatal error: dxgi1_4.h: No such file or directory
 #include <dxgi1_4.h>

System information

  • GPU: GTX970
  • Driver: 396.54.9
  • Wine version: 3.20-staging
  • DXVK version: c25483e

dxgi1_4.h is not found in sourcetree, but for me found in: /opt/wine-devel/include/wine/windows/dxgi1_4.h (and my other custom wine sources).

Tbh seems as dxvk does not grab wine includes outside of sourcetree when building?

build

All 49 comments

Are you trying to build it with mingw or winelib?

Regular mingw build: ./package-release.sh release ../../ --no-package

mingw builds don't use headers from your wine install. You need mingw 6.0 for updated DXGI headers.

Hmm.. That sux, since Ubuntu 18.04 comes with 5.0.3-1.

Well.. Will try to run through all those hoops of symlink++++ to get World of Warcraft to work with winelib build then, since its not working as it should do :(

Building as "winelib" compiled ok tho.

I´ll try setting up a 19.04 VM w/mingw 6.0 and build there if i need to :)

Closing this, as i guess its not a bug.

PS. Might put a note on the README with mingw 6.0 requirement.

I know this was "closed," but it's still an issue. Just ran into it myself with Ubuntu 18.10: it uses the same MinGW version as 18.04. Getting WoW (and many other things) to run with this kind of handicap is... frustrating, to say the least. -_-

EDIT: most recent build of MinGW can be found here: https://launchpad.net/ubuntu/+source/mingw-w64

Ok, after manually installing MinGW 6.0, I'm getting a different error...

The Meson build system
Version: 0.47.2
Source dir: /home/eqlipse/Downloads/Linux/Drivers/dxvk-master
Build dir: /home/eqlipse/.local/share/lutris/runtime/dxvk/dxvk-master/build.64
Build type: cross build
Project name: dxvk
Project version: v0.92
Native C compiler: cc (gcc 8.2.0 "cc (Ubuntu 8.2.0-7ubuntu1) 8.2.0")
Cross C compiler: x86_64-w64-mingw32-gcc (gcc 7.3.0)
Native C++ compiler: c++ (gcc 8.2.0 "c++ (Ubuntu 8.2.0-7ubuntu1) 8.2.0")
Cross C++ compiler: x86_64-w64-mingw32-g++ (gcc 7.3.0)
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Build machine cpu family: x86_64
Build machine cpu: x86_64
Checking if "winelib check" compiles: NO
Library vulkan-1 found: YES
Library d3d11 found: YES
Library dxgi found: YES
Library d3dcompiler_43 found: YES
Library d3dcompiler_47 found: YES
Program glslangValidator found: YES (/usr/bin/glslangValidator)
Dependency threads found: YES
Dependency threads found: YES (cached)
Configuring setup_dxvk.sh using configuration
Build targets in project: 11
Found ninja-1.8.2 at /usr/bin/ninja
[1/192] Compiling C++ object 'src/util/src@util@@util@sta/com_com_guid.cpp.obj'.
FAILED: src/util/src@util@@util@sta/com_com_guid.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/com_com_guid.cpp.obj' -MF 'src/util/src@util@@util@sta/com_com_guid.cpp.obj.d' -o 'src/util/src@util@@util@sta/com_com_guid.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/com/com_guid.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/ios_base.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ios:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ostream:38,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/com/com_guid.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/com/com_guid.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[2/192] Compiling C++ object 'src/util/src@util@@util@sta/util_env.cpp.obj'.
FAILED: src/util/src@util@@util@sta/util_env.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/util_env.cpp.obj' -MF 'src/util/src@util@@util@sta/util_env.cpp.obj.d' -o 'src/util/src@util@@util@sta/util_env.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_env.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_string.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_env.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_env.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[3/192] Compiling C++ object 'src/util/src@util@@util@sta/util_string.cpp.obj'.
FAILED: src/util/src@util@@util@sta/util_string.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/util_string.cpp.obj' -MF 'src/util/src@util@@util@sta/util_string.cpp.obj.d' -o 'src/util/src@util@@util@sta/util_string.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_string.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_string.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/util_string.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[4/192] Compiling C++ object 'src/util/src@util@@util@sta/config_config.cpp.obj'.
FAILED: src/util/src@util@@util@sta/config_config.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/config_config.cpp.obj' -MF 'src/util/src@util@@util@sta/config_config.cpp.obj.d' -o 'src/util/src@util@@util@sta/config_config.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/config/config.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/ios_base.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ios:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/istream:38,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/fstream:38,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/config/config.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[5/192] Compiling C++ object 'src/util/src@util@@util@sta/log_log_debug.cpp.obj'.
FAILED: src/util/src@util@@util@sta/log_log_debug.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/log_log_debug.cpp.obj' -MF 'src/util/src@util@@util@sta/log_log_debug.cpp.obj.d' -o 'src/util/src@util@@util@sta/log_log_debug.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/log/log_debug.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/ios_base.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ios:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/istream:38,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/sstream:38,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/log/log_debug.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/log/log_debug.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[6/192] Compiling C++ object 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj'.
FAILED: src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/spirv/src@spirv@@spirv@sta -Isrc/spirv -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj' -MF 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj.d' -o 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv/spirv_module.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/ios_base.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ios:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ostream:38,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/iostream:39,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv/spirv_code_buffer.h:5,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv/spirv_module.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv/spirv_module.cpp:3:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[7/192] Compiling C++ object 'src/util/src@util@@util@sta/sha1_sha1_util.cpp.obj'.
FAILED: src/util/src@util@@util@sta/sha1_sha1_util.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/sha1_sha1_util.cpp.obj' -MF 'src/util/src@util@@util@sta/sha1_sha1_util.cpp.obj.d' -o 'src/util/src@util@@util@sta/sha1_sha1_util.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/sha1/sha1_util.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/stdexcept:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/array:39,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/sha1/sha1_util.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/sha1/sha1_util.cpp:2:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[8/192] Compiling C++ object 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_names.cpp.obj'.
FAILED: src/vulkan/src@vulkan@@vkcommon@sta/vulkan_names.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/vulkan/src@vulkan@@vkcommon@sta -Isrc/vulkan -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX -pthread  -MD -MQ 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_names.cpp.obj' -MF 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_names.cpp.obj.d' -o 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_names.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/vulkan_names.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/ios_base.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ios:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ostream:38,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/vulkan_names.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/vulkan_names.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[9/192] Compiling C++ object 'src/util/src@util@@util@sta/log_log.cpp.obj'.
FAILED: src/util/src@util@@util@sta/log_log.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/util/src@util@@util@sta/log_log.cpp.obj' -MF 'src/util/src@util@@util@sta/log_log.cpp.obj.d' -o 'src/util/src@util@@util@sta/log_log.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/log/log.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/stdexcept:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/array:39,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/log/log.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/util/log/log.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[10/192] Compiling C++ object 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_loader.cpp.obj'.
FAILED: src/vulkan/src@vulkan@@vkcommon@sta/vulkan_loader.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/vulkan/src@vulkan@@vkcommon@sta -Isrc/vulkan -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX -pthread  -MD -MQ 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_loader.cpp.obj' -MF 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_loader.cpp.obj.d' -o 'src/vulkan/src@vulkan@@vkcommon@sta/vulkan_loader.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/vulkan_loader.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/stdexcept:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/array:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/tuple:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/functional:54,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/../util/rc/util_rc_ptr.h:3,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/vulkan_loader.h:4,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/vulkan/vulkan_loader.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[11/192] Compiling C++ object 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj'.
FAILED: src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/spirv/src@spirv@@spirv@sta -Isrc/spirv -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv -I../../../../../../../Downloads/Linux/Drivers/dxvk-master/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++1z -O3 -DNOMINMAX  -MD -MQ 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj' -MF 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj.d' -o 'src/spirv/src@spirv@@spirv@sta/spirv_code_buffer.cpp.obj' -c ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv/spirv_code_buffer.cpp
In file included from /usr/share/mingw-w64/include/pthread.h:66:0,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/bits/basic_string.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/string:52,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/stdexcept:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/include/c++/array:39,
                 from ../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/spirv/spirv_code_buffer.cpp:1:
/usr/share/mingw-w64/include/process.h:10:10: fatal error: corecrt_startup.h: No such file or directory
 #include <corecrt_startup.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
[12/192] Generating 'src/dxvk/src@dxvk@@dxvk@sta/dxvk_clear_buffer_f.h'.
../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/dxvk/shaders/dxvk_clear_buffer_f.comp
[13/192] Generating 'src/dxvk/src@dxvk@@dxvk@sta/dxvk_clear_buffer_u.h'.
../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/dxvk/shaders/dxvk_clear_buffer_u.comp
[14/192] Generating 'src/dxvk/src@dxvk@@dxvk@sta/dxvk_clear_image1d_u.h'.
../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/dxvk/shaders/dxvk_clear_image1d_u.comp
[15/192] Generating 'src/dxvk/src@dxvk@@dxvk@sta/dxvk_clear_image1d_f.h'.
../../../../../../../Downloads/Linux/Drivers/dxvk-master/src/dxvk/shaders/dxvk_clear_image1d_f.comp
[17/192] Generating version.h with a custom command.
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
[18/192] Compiling C++ object 'src/util/src@util@@util@sta/com_com_private_data.cpp.obj'.
ninja: build stopped: subcommand failed.

Can we please re-open this? It most certainly warrants attention, even if it's not a "bug." It's still an open issue, having dependencies which are not listed, nor immediately available for most people.... and even after installing the latest version, I'm still running into problems building DXVK!

@Eqlipse I have not tested this 19.04 beta of MinGW-w64, but it MAY be a problem installing this on 18.04 perhaps? Or did you compile from source? (Havent ventured there yet, as its somewhat large-ish packageset to get all mingw dependencies up and running i fear).

I can try to set up a VM and see if it compiles on 19.04.

To clarify. I'm running Ubuntu 18.10 (with kernel version 4.19.2-041902-generic), not 18.04. For MingGW-64, I'm using the 6.0.0-3 version.

While I'm aware that the 6.0.0-3 version is _intended_ for Ubuntu's 19.04 "Disco Dingo," what choice do I have? That's literally the only option I have for Ubuntu, since...

You need mingw 6.0 for updated DXGI headers.

Otherwise, we get an error regarding dxgi1_4.h not existing, since the current build seems to call for it. Arguably, calling for something which is currently unavailable for the vast majority of linux users _could_ be considered a bug...

As to how I'm using the MinGW 6.0, I went with the .deb files initially, since I wanted to avoid messing up the process of compiling it from source. I tried removing it completely, and re-installing it via source compilation later, but ran into the same error.

Ok. Set up a 19.04 beta VM, installed all build-deps and whatnot + mingw-w64 from default package repo's for 19.04.
Result: Compiles without error.

Some include file or dependencies for that mingw-w64 package probably messes with 18.04/18.10 packages and makes a mess.

I do however agree that if you are a Ubuntu user (like you and me), there is currently no alternative, and that is sad. It MIGHT be someone clever puts up a mingw backport package on a PPA or something eventually, but for NOW, it cant be built on any RELEASE version of Ubuntu.

It is no crisis for me personally, cos setting up that VM box did not take overly amounts of time (<1 hour), but it is cumbersome to HAVE to compile in a VM, and tbh, i have no 100% guarantee that it wont introduce bugs not apparent immediately when using those binaries on a system that are not able to compile them to begin with (actually have not tested yet).

Building winelib did however work, and could possibly be the best option overall (native "winecompile", with gcc-8.2 vs. mingw-w64 that seem to use gcc-7.3).

World of Warcraft CAN be tricked into working with the winelib build, but it is kinda cumbersome to do every time... Probably doable to symlink dll.so's inside the wine install /lib64/wine folder and it works as intended? (Nope!) If you would be content with building a winelib build for your WoW, i can post a quick howto for you?

@Eqlipse Created a PR https://github.com/doitsujin/dxvk/pull/769 with a winelib buildscript working on Ubuntu.

For World of Warcraft you need to do an additional step to not crash or error with "loadlibrary".

Adding a small script if you are interested in trying. Edit the file before running. Would absolutely recommend using a custom wine version, and NOT your system-installed one!
update_wow_winelib.sh.gz

@Eqlipse your setup is just wrong, that file is included in Ubuntu 19.04 mingw package: https://packages.ubuntu.com/disco/all/mingw-w64-x86-64-dev/filelist

Ok, after manually installing MinGW 6.0, I'm getting a different error...

No idea how you did it but mixing mingw-w64 5 and mingw-w64 6 toolchains is never going to be reliable because of API differences.

You need packages built for your Ubuntu version or you can build mingw-w64 yourself (it's not as easy as it sounds.

@mati865 Yeah, mingw-w64 is not just a "small meta-package" tbh, and building just from source is a pita atleast to get various files placed the right spot for Ubuntu when it comes to this.

In other words: I think one can conclude that unless a ppa with the right distro package comes around, building standard DXVK on current released Ubuntu is "Not Available" for the regular John Doe.

@mati865
As already stated, I'm aware that it's intended for usage in Ubuntu 19.04, but I thought I'd give it a shot anyways....

While I'm aware that the 6.0.0-3 version is intended for Ubuntu's 19.04 "Disco Dingo," what choice do I have?

And...

I tried removing it completely, and re-installing it via source compilation later, but ran into the same error.

Anyhoo, methinks I'm going to hold off on any further tinkering with MinGW 6.0 until there's some official support for the Ubuntu 18.x series. Which leads right into @SveSop 's point about DXVK's availability.

@SveSop I'll take a look at that script, but yes: I'd appreciate that tutorial on the winelib ^_^ Perhaps that PR will fix things, though...
Also, by "custom wine version," I assume you mean pointing export wine_install="$HOME/should/point/to/your/custom-wine-folder" _away_ from the default wine directory?

@Eqlipse Yeah, export wine_install= should point to your self-compiled wine.. Eg. if you use PlayOnLinux: /home/Eqlipse/.PlayOnLinux/wine/linux-amd64/wine-staging-3.20_custom (or whatever you specify when compiling wine yourself with ./configure --prefix=/home/Eqlipse/....)

Havent fiddled with Lutris tbh, but afaik it has better options than PlayOnLinux for managing different wine versions, and usually you can just fiddle with those :)

The PR is meant for ppl to have a quick way to build winelib version of dxvk, instead of the "manual way", so its not "fixing" anything other than to give ppl a quick way to compile dxvk as winelib instead.

Not sure why World of Warcraft is throwing errors using a winelib build, but im at a end with my trial and errors of this, and i am by no means a coder.. so dont really understand how to fix it. Suggestions i have dug up on the net MAY indicate some weirdness with WoW "Warden" (Copy protection), as i have seen mentions of similar errors from ppl trying to do dll-injections for various hacks.
https://github.com/doitsujin/dxvk/issues/706

@Eqlipse Hmm... Not sure if this was just "well, it IS this easy", or what.. Cos tbh i did not try to install the .deb's directly, but rather built them myself from the "disco" source.
Tested in a VM, set up with build deps for DXVK, and did the usual build and got the error.

This is how i built the mingw-w64 deb's. (Mind you - i did NOT replace the mingw-gcc/g++ versions, as those are 7.3 on "Disco" aswell).

Download:
http://archive.ubuntu.com/ubuntu/pool/universe/m/mingw-w64/mingw-w64_6.0.0.orig.tar.bz2
http://archive.ubuntu.com/ubuntu/pool/universe/m/mingw-w64/mingw-w64_6.0.0-3.debian.tar.xz

Extract those to whatever buildfolder you like (eg. $HOME/Temp)
Now you have 2 folders there: "debian" and "mingw-w64-v6.0.0"
do a mv debian mingw-w64-v6.0.0, then cd mingw-w64-v6.0.0
dpkg-buildpackage -uc -us

Sit back, grab a coffee or whatnot.. When its done you will have (in the $HOME/Temp folder):

mingw-w64_6.0.0-3_all.deb
mingw-w64-common_6.0.0-3_all.deb
mingw-w64-i686-dev_6.0.0-3_all.deb
mingw-w64-tools_6.0.0-3_amd64.deb
mingw-w64-x86-64-dev_6.0.0-3_all.deb

Install with sudo dpkg -i *.deb
EDIT: Possibly NOT SAFE for a "live" system. (Se comment from Mati865 below)

Build dxvk package as normally... Should i test this on my live system and see if it breaks stuff?

PS. I guess you MIGHT need some additional packages to do dpkg-buildpackage perhaps? maybe sudo apt install build-essential atleast...

@SveSop it may work but libstdc++ built with migw-w64 5 uses synchronous IO and mingw-w64 6 switched to asynchronous IO. It may cause issues with stdout and I would not recommend it for inexperienced users.
Nonetheless the dxvk itself may work.

@mati865
Since im not that well versed in how things connect, im gonna ask.
Does this mean libstdc++-7, since the gcc-mingw-w64, and g++-mingw-w64 packages are built around gcc-7.3? I see there is a newer libstdc++-7 package: http://changelogs.ubuntu.com/changelogs/pool/main/g/gcc-7/gcc-7_7.3.0-30ubuntu1/changelog
And the g++-mingw-w64 and gcc-mingw-w64 packages are also newer.... so even if it seemingly installed ok as the "major version" was the same, it is changes that might break something else at play here? Or more bluntly, building that without perhaps building the rest of the gcc/g++ packages might open up a whole container full of open cans of worms?

That it works for building dxvk might be one thing, but if used to build other stuff, it might break that?

PS. Holding off upgrading my live-system a bit longer then i guess hehe.. Experimenting in VM's is one thing...

@SveSop mingw-w64 is a base, every DLL will contain its symbols. GCC libs (like libstdc++) were built with repository version of mingw-w64 (5.0.4) and new binaries will use mingw-w64 6.0 symbols.
It may work well or it can cause issues, you won't know for sure.

@mati865 @Eqlipse
So, i guess we can conclude that fiddling with semi-upgrades of the mingw-w64 package is deemed unsafe, and tbh should just be avoided until a backport or ppa is provided with a proper package then.

Closing this issue again, with the following conclusion:

  1. dxvk needs mingw-w64-v6.0.0
  2. Ubuntu RELEASE has of now 17/11-18 no such package
  3. dxvk can be built as "winelib" package and works with most games, although World of Wacraft needs a workaround.

PS. On the topic of WoW, i just played a few minutes with D3D12 and vkd3d support... Yeah, needed a patch, but seemingly worked ok.

@SveSop How did you get it to stick to D3D12? Even in a prefix that doesn't have DXVK set up it falls back to D3D11 for me.

Not sure if its a nVidia patch, or a general "hack patch", but it did not work for me either until i got this patch on IRC last night. Its a wine patch tho, so have to recompile wine. And i guess use whatever latest vkd3d version.

With this patch, the "World of Warcraft/Logs/gx.log" looked like this (from start to finish):

11/17 23:43:58.246  LogOpen
11/17 23:43:58.276  ConsoleDetectDetectHardware():
11/17 23:43:58.280      cpuIdx: 1
11/17 23:43:58.326  ConsoleDeviceInitialize(): hwDetect = 0, hwChanged = 0
11/17 23:43:58.371  D3d12 Device Create
11/17 23:43:58.375      Format 1920 x 1080 Fullscreen, ArgbX888, vsync 0
11/17 23:43:58.431  Taking Adapter 0 by name: Vendor Id 0x10de, Device Id 0x13c2
11/17 23:43:58.434      NVIDIA GeForce GTX 970
11/17 23:43:58.489  Detected NvAPI and checking if it's valid...
11/17 23:43:58.492  Caps:
11/17 23:43:58.496      Vendor ID: 10de
11/17 23:43:58.499      Device ID: 13c2
11/17 23:43:58.502      AFR Groups: 1/1
11/17 23:43:58.921  Feature Level: DX=3, GL=0, MTL=0
11/17 23:43:58.933  D3d12 Device Create Successful
11/17 23:43:58.963  CPU Processor Detection: 12 H/W threads
11/17 23:43:58.967  Memory Detection: 16748670976 bytes of physical memory available
11/17 23:43:58.970  Detected Graphics Defaults: 6 (CPU = 6, GPU = 7, MEM = 6)
11/17 23:43:58.983  Resample::CreateResources
11/17 23:43:59.128  RenderSettings::NotifyChanged
11/17 23:43:59.172  Liquid::CreateProceduralTextures
11/17 23:43:59.574  PortraitDeviceCreate
11/17 23:43:59.696  VolumeFog::DestroyResources
11/17 23:43:59.751  VolumeFog::UpdateResources
11/17 23:43:59.755  VolumeFog::DestroyResources
11/17 23:44:27.932  PortraitDeviceDestroy
11/17 23:44:27.942  PortraitDeviceCreate
11/17 23:50:53.836  PortraitDeviceDestroy
11/17 23:50:53.875  PortraitDeviceCreate
11/17 23:50:54.087  PortraitDeviceDestroy
11/17 23:50:54.199  VolumeFog::DestroyResources
11/17 23:50:54.208  Liquid::DestroyProceduralTextures
11/17 23:50:54.232  Resample::DestroyResources
11/17 23:50:54.235  D3d12 Device Destroy

Before that patch, i had a "failed to create" on d3d12, and a fallback to d3d11.

WoW ofc started with the -d3d12 option on command line.
I have not tested this with your "wip-vkd3d" branch tho...
You can export VKD3D_DEBUG=trace to get some logs from vkd3d aswell.

Patch attached:
wine_mem.patch.gz

Thanks.

It won't work with my branch, for some reason WoW doesn't even try to use DXGI 1.4 and D3D12 when using it. After checking for FL11_0 support it just creates an IDXGIFactory1 with DXVK as opposed to an IDXGIFactory4 with wined3d, and I have no idea why.

I dont know. I did some experimenting with that wip-vkd3d branch, and i also made a very very simple d3d12 test from the Microsoft DirectX sample repo using Visual Studio Community (or whatever the free one is).

It is the basic "HelloWindow" from: https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12HelloWorld/src/HelloWindow
I then modified it some, so that it "probes" for featurelevels:
I edited DXSample.cpp, and added:

if (SUCCEEDED(D3D12CreateDevice(adapter.Get(), D3D_FEATURE_LEVEL_12_1, _uuidof(ID3D12Device), nullptr)))
        {
            break;
}

and so on over the D3D_FEATURE_LEVEL_11_0, so that it "checks" for 12_1, 12_0, 11_1 and finally 11_0.
The vkd3d logs the following:

fixme:vkd3d_create_device: Unsupported feature level 0xc100.
fixme:vkd3d_create_device: Unsupported feature level 0xc000.
fixme:vkd3d_create_device: Unsupported feature level 0xb100.

Until ofc that it "completes" with 0xb000 (FL_11_0). So vkd3d is currently not able to detect or initiate anything over FL_11_0. Why am i telling you this? Cos doing that DOES work with wip_vkd3d branch currently, so your dxgi is able to "transfer" to d3d12 and vkd3d.. But have no clue about IDXGIFactory4, as it seems the only thing dxvk logs from dxgi is: warn: CreateDXGIFactory2: Ignoring flags

Ill attach the compiled "D3D12HelloWindow.exe" file i built with VS2017, and you can try it, or you can make your own :)
D3D12HelloWindow.exe.gz

I meant that WoW specifically doesn't work with my branch. I know that vkd3d in general can work, that's the whole point of it, but the game itself doesn't.

In any case, I rebuilt wine+vkd3d with your patch, and WoW crashes on the login screen with d3d12 enabled on my system, but hey, it's progress.

What does the /Logs/gx.log say?

  • looking over that microsoft example, D3D12HelloWindow.cpp has a line reading:
ComPtr<IDXGIFactory4> factory;
ThrowIfFailed(CreateDXGIFactory2(dxgiFactoryFlags, IID_PPV_ARGS(&factory)));

So.. Could that "ThrowIfFailed" indicate WHY the dxvk log sais CreateDXGIFactory2 instead of CreateDXGIFactory1? (the 2 being a debug/fail whatever). I dont really have a clue, but kinda guessing CreateDXGIFactory1 -> IDXGIFactory4 should be the ideal D3D12 way?

vkd3d message:

trace:d3d12_device_CreatePlacedResource: iface 0x7de44510, heap 0x7dd69fd0, heap_offset 0x12e0000, desc 0x23d2d8, initial_state 0x400, optimized_clear_value (nil), iid {696442be-a72e-4059-bc79-5b5c98040fad}, resource 0x1bbd9ad0.
trace:d3d12_device_AddRef: 0x7de44510 increasing refcount to 305.
fixme:vkd3d_bind_heap_memory: Invalid heap offset 0x12e0000.

Game log:

11/18 13:28:59.253  LogOpen
11/18 13:28:59.353  ConsoleDetectDetectHardware():
11/18 13:28:59.388      cpuIdx: 0
11/18 13:28:59.520  ConsoleDeviceInitialize(): hwDetect = 0, hwChanged = 0
11/18 13:28:59.653  D3d12 Device Create
11/18 13:28:59.688      Format 1920 x 1080 Fullscreen, ArgbX888, vsync 0
11/18 13:28:59.788  Found First Candidate Adapter 0: Vendor Id 0x1002, Device Id 0x67df FL_12_0: false
11/18 13:28:59.857  Caps:
11/18 13:28:59.888      Vendor ID: 1002
11/18 13:28:59.922      Device ID: 67df
11/18 13:28:59.955      AFR Groups: 1/1
11/18 13:28:59.989  Feature Level: DX=3, GL=0, MTL=0
11/18 13:29:00.024  D3d12 Device Create Successful
11/18 13:29:00.059  CPU Processor Detection: 16 H/W threads
11/18 13:29:00.089  Memory Detection: 16813289472 bytes of physical memory available
11/18 13:29:00.122  Detected Graphics Defaults: 6 (CPU = 6, GPU = 6, MEM = 6)
11/18 13:29:00.160  Resample::CreateResources
11/18 13:29:00.334  RenderSettings::NotifyChanged
11/18 13:29:00.428  Liquid::CreateProceduralTextures
11/18 13:29:02.704  PortraitDeviceCreate
11/18 13:29:02.882  VolumeFog::DestroyResources
11/18 13:29:02.917  Error Tex Create Failed: 0x80070057.
11/18 13:29:02.951  Placed resource create failed
    HR:80070057 Format:9 Size:524288 (512, 512, 1)
11/18 13:29:02.986  Error Tex Create Failed: 0x80070057.
11/18 13:29:03.018  Placed resource create failed
    HR:80070057 Format:1 Size:262144 (256, 256, 1)

Oki :) That seems as progress atleast!
Device is created, but crashing probably one some other bug.. but better than how it was without that patch.

The ppl i spoke to on IRC last night mentioned a couple of games more it was tested on, but it was my understanding that vkd3d is not really "production ready" yet. WoW being one of the games they actually tweaked for to get working tho..

I've set up mingw-w64 PPA for 18.X Ubuntu systems: https://launchpad.net/~mati865/+archive/ubuntu/mingw-w64/+packages. It should work for 18.10, if it doesn't work on 18.04 let me know and I'll backport newer binutils.

I have unpatched Wine Staging and WoW allows me to use only DX11. Your D3D12HelloWorld crashes:
backtrace.txt
console_output.txt
D3D12HelloWindow_dxgi.log

I think it may be an issue with 415 driver but I barely made gdm not to hang on the boot with proprietary drivers and I'd like leave it as is for now (I mostly use Arch). I'd appreciate if you @SveSop could verify it.

Will do some testing with that PPA @mati865 ! Nice :)

Btw, D3D12HelloWindow does NOT work with dxvk.
Philip has done some testing with his wip_vkd3d branch where vkd3d and d3d12 should load, but its in testing stages yet.

You need wine or wine-staging in a prefix without dxvk to test d3d12 (and WoW with d3d12). To get WoW to load in d3d12 mode, you need the patch above.

Why would it not work? vkd3d support requires a winelib build of the wip-vkd3d branch, but it should work just fine with that.

So you say vkd3d and d3d12 works with "master" branch of dxvk, and does not need wip_vkd3d branch to work now? The "HellowWindow.exe" worked with wip_vkd3d tho, but did not test with "master" :)
EDIT:
winelib build e74411704277009169a31f0bc34951b9f67be9c2

warn:  CreateDXGIFactory2: Ignoring flags
info:  Game: D3D12HelloWindow.exe
info:  DXVK: v0.92-25-ge744117+
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  GeForce GTX 970:
info:    Driver: 396.54.9
info:    Vulkan: 1.1.85
info:    Memory Heap[0]: 
info:      Size: 4096 MiB
info:      Flags: 0x1
info:      Memory Type[7]: Property Flags = 0x1
info:      Memory Type[8]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 11979 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[1]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x0
info:      Memory Type[3]: Property Flags = 0x0
info:      Memory Type[4]: Property Flags = 0x0
info:      Memory Type[5]: Property Flags = 0x0
info:      Memory Type[6]: Property Flags = 0x0
info:      Memory Type[9]: Property Flags = 0x6
info:      Memory Type[10]: Property Flags = 0xe
fixme:vkd3d_create_device: Unsupported feature level 0xc100.
fixme:vkd3d_create_device: Unsupported feature level 0xc000.
fixme:vkd3d_create_device: Unsupported feature level 0xb100.
err:   DXGI: Failed to create presenter

winelib build of wip_vkd3d 94ffc931b4d2c582c036e98c23c704747ada07fa

warn:  CreateDXGIFactory2: Ignoring flags
info:  Game: D3D12HelloWindow.exe
info:  DXVK: v0.92
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  GeForce GTX 970:
info:    Driver: 396.54.9
info:    Vulkan: 1.1.85
info:    Memory Heap[0]: 
info:      Size: 4096 MiB
info:      Flags: 0x1
info:      Memory Type[7]: Property Flags = 0x1
info:      Memory Type[8]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 11979 MiB
info:      Flags: 0x0
info:      Memory Type[0]: Property Flags = 0x0
info:      Memory Type[1]: Property Flags = 0x0
info:      Memory Type[2]: Property Flags = 0x0
info:      Memory Type[3]: Property Flags = 0x0
info:      Memory Type[4]: Property Flags = 0x0
info:      Memory Type[5]: Property Flags = 0x0
info:      Memory Type[6]: Property Flags = 0x0
info:      Memory Type[9]: Property Flags = 0x6
info:      Memory Type[10]: Property Flags = 0xe
fixme:vkd3d_create_device: Unsupported feature level 0xc100.
fixme:vkd3d_create_device: Unsupported feature level 0xc000.
fixme:vkd3d_create_device: Unsupported feature level 0xb100.
info:  Presenter: Actual swap chain properties:
  Format:       VK_FORMAT_B8G8R8A8_UNORM
  Present mode: VK_PRESENT_MODE_FIFO_KHR
  Buffer size:  640x480
  Image count:  3
warn:  VkD3DPresenter::GetAdapter: Stub
warn:  DXGI: MakeWindowAssociation: Ignoring flags

No, it's not supposed to work with master. But your previous comment sounded like it would not work at all.

@doitsujin Then im sorry for the missunderstanding.

Philip has done some testing with his wip_vkd3d branch where vkd3d and d3d12 should load, but its in testing stages yet.

Was meant to inform about "testing", and that it "should work" (and DOES work with the d3d12HelloWindow test).

@mati865 Added the PPA, and built dxvk with no errors.. so far. (Tested a couple of Unigine Valley runs, and a wee bit ingame in WoW. Gonna do some TW3 testing later) This was on 18.04, so it SEEMS to work, but things you mentioned earlier about "missing symbols" i cant really test for, as i don't have any other mingw-w64 projects to test with i guess :)
Thanks for providing a alternative for those on 18.04/18.10 for building dxvk!

@SveSop I've built GCC from source with mingw-w64 6.0 so you won't notice issues I mentioned before.

I'm a bit confused about current state of DXGI with MinGW builds but I'll just let people who know what's going on to do their job.

Tried to compile DXVK today with MinGW 6.0 from @mati865 's PPA. It at least got much further in the build process, before throwing a bunch of errors and failing...

Big pile o' errors: https://pastebin.com/GvBf5wde

Now, some of them were the error: ‘mutex’ is not a member of ‘std’ type. Which is odd, since sudo update-alternatives --config x86_64-w64-mingw32-gcc shows /usr/bin/x86_64-w64-mingw32-gcc-posix as the type in use.

There were also some interesting I don't think I've seen before...

error: ‘m_submissionLock’ was not declared in this scope
       m_submissionLock.unlock();

@Eqlipse the error is for i686-w64-mingw32-gcc, check update-alternatives --config i686-w64-mingw32-gcc.

@Eqlipse the error is for i686-w64-mingw32-gcc, check update-alternatives --config i686-w64-mingw32-gcc.

Yeah, I just found that on a different reported issue. Thanks for the quick reply, @mati865 !

@doitsujin the readme says "use i686 for 32-bit," which doesn't say very much. Yes, x86-64 is the common prefix for 64-bit, but you still have "w64." Considering how arbitrary some file naming conventions can be, it's not really clear just how one should rename "x86_64-w64-mingw32-gcc" in order to call for the 32-bit (i686) version.

My first guess was to replace x86_64-w64 with i686 (i686-mingw32-gcc), or i686-w32 (i686-w32-mingw32-gcc), which obviously didn't work :P

So, you may, _possibly_, want to clarify that a bit in the readme...

EDIT: it complied properly after both (64 and 32-bit) configs were set to multithreading.

For ubuntu:

sudo update-alternatives --config x86_64-w64-mingw32-gcc #Choose "Posix"
sudo update-alternatives --config x86_64-w64-mingw32-g++ #Choose "Posix"
sudo update-alternatives --config i686-w64-mingw32-gcc #Choose "Posix"
sudo update-alternatives --config i686-w64-mingw32-g++ #Choose "Posix"

@doitsujin
Now that mingw-w64 PPA is working for Ubuntu, and my bug-report on the LunarG website made them include the :i386 version of libvulkan1, compiling DXVK on Ubuntu should work without much problems.

Just a quick "collective info" on Ubuntu, and if interested you could pop it up on a wiki page perhaps?

Use Mati865's PPA here: https://launchpad.net/~mati865/+archive/ubuntu/mingw-w64
This works with Ubuntu 18.04/18.10. (Assuming you have already installed the Ubuntu version of Mingw-w64 5.0.3-1)

sudo add-apt-repository ppa:mati865/mingw-w64
sudo apt update && sudo apt upgrade

Remember to select the "Posix" version when running this:

sudo update-alternatives --config x86_64-w64-mingw32-gcc
sudo update-alternatives --config x86_64-w64-mingw32-g++
sudo update-alternatives --config i686-w64-mingw32-gcc
sudo update-alternatives --config i686-w64-mingw32-g++

LunarG just released Vulkan-SDK 1.1.92.0 with 32-bit libvulkan1:i386 , so you can run 32-bit wine games with the up-to-date Vulkan tools.
To install:
https://vulkan.lunarg.com/sdk/home
Click on "Ubuntu Packages" and 1.1.92.0 -> Follow for 18.04 (Afaik working on 18.10 aswell).

wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.1.92-bionic.list http://packages.lunarg.com/vulkan/1.1.92/lunarg-vulkan-1.1.92-bionic.list
sudo apt update

Install the LunarG SDK
sudo apt install lunarg-vulkan-sdk

Check that libvulkan1:i386 is installed by
dpkg -l|grep -i libvulkan1
Results should be

ii  libvulkan1:amd64                           1.1.92.0~rc1-1lunarg18.04.1.1               amd64        Vulkan loader library
ii  libvulkan1:i386                            1.1.92.0~rc1-1lunarg18.04.1.1               i386         Vulkan loader library

@SveSop After the last update of NVIDIA drivers it doesn't work anymore
When I try to run Overwatch I get an error message:
"Vulkan is not installed or is not supported by your system
If you have compatible hardware, follow the installation procedures in here](https://github.com/lutris/lutris/wiki/How-to:-DXVK)"

I of course tried to recompile dxvk using
./package-release.sh master ./build --no-package
and reinstall it using

export WINEPREFIX=/media/raffaele/DATA/LutrisGames/Overwatch/
winetricks --force /home/raffaele/bin/dxvk/build/dxvk-master/setup_dxvk.verb

Ok it was sufficient to reinstall the nvidia drivers

sudo apt-get remove nvidia*
sudo apt-get autoremove
sudo apt-get install nvidia-driver-415

I am using this PPA to install the updated NVIDIA drivers

Will give those 415.18.02 drivers a whirl :)

I got WoW to work with DX12 before patch, but when I tested today with the same build the game starts up, shows a black screen but with the cursor visable. If you manage to get it working again, I would be really interested in it.

@IngeniousDox Hmpf.. Me not like this patch...

Can't seem to get it to launch directly with Wow.exe anymore, cos i just get a "client disconnected" message when i try to log on. Launching the "launcher" works, but got some weirdness that COULD be due to my addons i guess (buttons not working++). AND using the launcher, the "pure" 64bit client does not work atm.. (So testing wine patches gonna suck balls needing to compile both 32 and 64 bit for a syswow64 wine version).

Gonna wait until i get things stable before testing d3d12 w/vkd3d i guess, cos troubleshooting things that don't work as is is kinda crap :)

@IngeniousDox Ait.. After figuring out the new folder structure so that my addon-update script worked as it should, i think most of the bugs are sorted out :)

Tested d3d12/vkd3d, and ended up with the same error you got. Black screen, mouse pointer moving around, but nothing more.

Gonna see if i can create a bug for this, and attach a tracelog.

EDIT: Someone beat me to it, so i attached a trace log: https://bugs.winehq.org/show_bug.cgi?id=46291

You can also get the mingw-w64 6.0 from Ubuntu Disco (19.04) repo itself:

# cat /etc/apt/apt.conf.d/01lock-release
APT::Default-Release "bionic";

# cat /etc/apt/preferences.d/01-disco-whitelist
# By default let's block everything from disco.
Package: *
Pin: release a=disco
Pin-Priority: -1

# Whitelist those packages which you want to take from disco.
Package: mingw-w64 mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev
Pin: release a=disco
Pin-Priority: 990

# cat /etc/apt/sources.list.d/disco.list 
deb http://archive.ubuntu.com/ubuntu/ disco universe
deb http://archive.ubuntu.com/ubuntu/ disco-updates universe
deb http://security.ubuntu.com/ubuntu/ disco-security universe

# apt-get update && apt-get upgrade

Advantage is that it gets updates faster and is more secure.

I would not blindly do that tbh, as Disco uses libc6 (2.28-0ubuntu1), vs Bionic uses libc6 (2.27-3ubuntu1), and that may (as described previously in the thread) possibly create other problems along the way.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

doitsujin picture doitsujin  Â·  171Comments

doitsujin picture doitsujin  Â·  236Comments

SveSop picture SveSop  Â·  133Comments

nickfaces picture nickfaces  Â·  110Comments

shmerl picture shmerl  Â·  90Comments