dxvk: Error Building DXVK 1.6

FAILED: src/d3d11/bca5607@@d3d11.dll@sha/d3d11_interop.cpp.o 
wineg++ -Isrc/d3d11/bca5607@@d3d11.dll@sha -Isrc/d3d11 -I../dxvk-1.6/src/d3d11 -I../dxvk-1.6/./include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++17 -DNOMINMAX --no-gnu-unique -O3 -m32 -msse -msse2 -fvisibility=hidden -fvisibility-inlines-hidden -D__WIDL_objidl_generated_name_0000000C= -fPIC -MD -MQ 'src/d3d11/bca5607@@d3d11.dll@sha/d3d11_interop.cpp.o' -MF 'src/d3d11/bca5607@@d3d11.dll@sha/d3d11_interop.cpp.o.d' -o 'src/d3d11/bca5607@@d3d11.dll@sha/d3d11_interop.cpp.o' -c ../dxvk-1.6/src/d3d11/d3d11_interop.cpp
In file included from ../dxvk-1.6/src/d3d11/d3d11_context_imm.h:5,
                 from ../dxvk-1.6/src/d3d11/d3d11_interop.cpp:1:
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:77:19: error: ‘HANDLE’ has not been declared
   77 |     void setEvent(HANDLE event, uint64_t value) {
      |                   ^~~~~~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:92:25: error: ‘HANDLE’ was not declared in this scope; did you mean ‘E_HANDLE’?
   92 |     std::list<std::pair<HANDLE, uint64_t>> m_events;
      |                         ^~~~~~
      |                         E_HANDLE
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:92:33: error: template argument 1 is invalid
   92 |     std::list<std::pair<HANDLE, uint64_t>> m_events;
      |                                 ^~~~~~~~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:92:41: error: template argument 1 is invalid
   92 |     std::list<std::pair<HANDLE, uint64_t>> m_events;
      |                                         ^~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:92:41: error: template argument 2 is invalid
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h: In member function ‘virtual void dxvk::sync::Win32Fence::signal(uint64_t)’:
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:46:30: error: request for member ‘begin’ in ‘((dxvk::sync::Win32Fence*)this)->dxvk::sync::Win32Fence::m_events’, which is of non-class type ‘int’
   46 |       for (auto i = m_events.begin(); i != m_events.end(); ) {
      |                              ^~~~~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:46:53: error: request for member ‘end’ in ‘((dxvk::sync::Win32Fence*)this)->dxvk::sync::Win32Fence::m_events’, which is of non-class type ‘int’
   46 |       for (auto i = m_events.begin(); i != m_events.end(); ) {
      |                                                     ^~~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:48:11: error: ‘SetEvent’ was not declared in this scope; did you mean ‘setEvent’?
   48 |           SetEvent(i->first);
      |           ^~~~~~~~
      |           setEvent
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:49:24: error: request for member ‘erase’ in ‘((dxvk::sync::Win32Fence*)this)->dxvk::sync::Win32Fence::m_events’, which is of non-class type ‘int’
   49 |           i = m_events.erase(i);
      |                        ^~~~~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h: In member function ‘void dxvk::sync::Win32Fence::setEvent(int, uint64_t)’:
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:81:18: error: request for member ‘push_back’ in ‘((dxvk::sync::Win32Fence*)this)->dxvk::sync::Win32Fence::m_events’, which is of non-class type ‘int’
   81 |         m_events.push_back({ event, value });
      |                  ^~~~~~~~~
../dxvk-1.6/src/d3d11/../util/sync/sync_signal_win32.h:83:9: error: ‘SetEvent’ was not declared in this scope; did you mean ‘setEvent’?
   83 |         SetEvent(event);
      |         ^~~~~~~~
      |         setEvent
winegcc: /usr/bin/x86_64-pc-linux-gnu-g++ failed

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 17 (13 by maintainers)

Most upvoted comments

I added the missing include, but note that I’ll probably drop winelib support with the next release (-ish).

I mean they are Windows DLLs.

They are Windows builds, so they are always acceptable.

Precompiled binaries and / or binaries compiled on different distros often are not acceptable or usable.

Building via mingw as detailed in the readme.

I’ve been using that since I started with dxvk

What’s the prefered method?