Getting the following error when running build_proton.sh
Meson encountered an error in file meson.build, line 58, column 0:
Keyword argument fallback must exist and be a string.
The error doesn't really point to the problem and Google search doesn't have any relevant results, that I could find anyway.
Any ideas where to start?
Is this during the DXVK build? What meson version do you have? DXVK requires >=0.43, should be available from backports on Debian 9.
I'm assuming that is where it's failing, the error message is pretty vague and the oupt on the screen from the script is not helpful either.
I'm not finding any package with dxvk in its name, in backports, or anywhere else for that matter...
apt-cache -t stretch-backports search dxvk
apt-cache -t jessie-backports search dxvk
Both return no results.
Here are the last few lines of the script output when I run it...
$ ./build_proton.sh
The Meson build system
Version: 0.37.1
Source dir: /home/ctyler/proton/dxvk
Build dir: /home/ctyler/proton/build/dxvk.win32
Build type: cross build
Project name: dxvk
Native c compiler: cc (gcc 6.3.0)
Cross c compiler: i686-w64-mingw32-gcc (gcc 6.3.0)
Native cpp compiler: c++ (gcc 6.3.0)
Cross cpp compiler: i686-w64-mingw32-g++ (gcc 6.3.0)
Host machine cpu family: x86
Host machine cpu: x86
Target machine cpu family: x86
Target machine cpu: x86
Build machine cpu family: x86_64
Build machine cpu: x86_64
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 (/home/ctyler/proton/glslang/bin/glslangValidator)
Meson encountered an error in file meson.build, line 58, column 0:
Keyword argument fallback must exist and be a string.
It's meson version problem, so why not
apt-cache -t stretch-backports search meson
?
Well, that progressed it further, now it's throwing ninja errors...
Found ninja-1.7.2 at /usr/bin/ninja
[4/177] 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
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./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 ../../dxvk/src/util/log/log_debug.cpp
In file included from ../../dxvk/src/util/log/log_debug.h:5:0,
from ../../dxvk/src/util/log/log_debug.cpp:1:
../../dxvk/src/util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
[5/177] Generating 'src/dxvk/src@dxvk@@dxvk@sta/dxvk_clear_buffer_u.h'.
../../dxvk/src/dxvk/shaders/dxvk_clear_buffer_u.comp
[8/177] Compiling C++ object 'src/util/src@util@@util@sta/log_log.cpp.obj'.
FAILED: src/util/src@util@@util@sta/log_log.cpp.obj
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./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 ../../dxvk/src/util/log/log.cpp
In file included from ../../dxvk/src/util/log/log.cpp:1:0:
../../dxvk/src/util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
../../dxvk/src/util/log/log.cpp: In member function ‘void dxvk::Logger::emitMsg(dxvk::LogLevel, const string&)’:
../../dxvk/src/util/log/log.cpp:49:23: error: ‘mutex’ is not a member of ‘std’
std::lock_guard<std::mutex> lock(m_mutex);
^~~
../../dxvk/src/util/log/log.cpp:49:33: error: template argument 1 is invalid
std::lock_guard<std::mutex> lock(m_mutex);
^
../../dxvk/src/util/log/log.cpp:49:40: error: ‘m_mutex’ was not declared in this scope
std::lock_guard<std::mutex> lock(m_mutex);
^~~~~~~
../../dxvk/src/util/log/log.cpp:49:35: warning: unused variable ‘lock’ [-Wunused-variable]
std::lock_guard<std::mutex> lock(m_mutex);
^~~~
[10/177] Compiling C++ object 'src/util/src@util@@util@sta/config_config.cpp.obj'.
FAILED: src/util/src@util@@util@sta/config_config.cpp.obj
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./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 ../../dxvk/src/util/config/config.cpp
In file included from ../../dxvk/src/util/config/config.cpp:7:0:
../../dxvk/src/util/config/../log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
[11/177] 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
i686-w64-mingw32-g++ -Isrc/spirv/src@spirv@@spirv@sta -Isrc/spirv -I../../dxvk/src/spirv -I../../dxvk/./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 ../../dxvk/src/spirv/spirv_code_buffer.cpp
In file included from ../../dxvk/src/spirv/spirv_include.h:3:0,
from ../../dxvk/src/spirv/spirv_instruction.h:6,
from ../../dxvk/src/spirv/spirv_code_buffer.h:8,
from ../../dxvk/src/spirv/spirv_code_buffer.cpp:4:
../../dxvk/src/spirv/../util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
[12/177] Compiling C++ object 'src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj'.
FAILED: src/spirv/src@spirv@@spirv@sta/spirv_module.cpp.obj
i686-w64-mingw32-g++ -Isrc/spirv/src@spirv@@spirv@sta -Isrc/spirv -I../../dxvk/src/spirv -I../../dxvk/./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 ../../dxvk/src/spirv/spirv_module.cpp
In file included from ../../dxvk/src/spirv/spirv_include.h:3:0,
from ../../dxvk/src/spirv/spirv_instruction.h:6,
from ../../dxvk/src/spirv/spirv_code_buffer.h:8,
from ../../dxvk/src/spirv/spirv_module.h:3,
from ../../dxvk/src/spirv/spirv_module.cpp:3:
../../dxvk/src/spirv/../util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
[13/177] 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
i686-w64-mingw32-g++ -Isrc/util/src@util@@util@sta -Isrc/util -I../../dxvk/src/util -I../../dxvk/./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 ../../dxvk/src/util/com/com_guid.cpp
In file included from ../../dxvk/src/util/com/../../d3d11/../dxgi/dxgi_include.h:14:0,
from ../../dxvk/src/util/com/../../d3d11/d3d11_include.h:3,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:3,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxgi/../util/log/log.h:50:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_buffer_res.h:4:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_buffer.h:6,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:4,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_memory.h:259:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_framebuffer.h:4:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_constant_state.h:4,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:6,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_renderpass.h:206:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_query_pool.h:5:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_query_tracker.h:3,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_cmdlist.h:12,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_barrier.h:4,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:3,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_query.h:191:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_graphics.h:8:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context_state.h:7,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:6,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_pipecompiler.h:49:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_compilerLock;
^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_pipecompiler.h:50:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
std::condition_variable m_compilerCond;
^~~~~~~~~~~~~~~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:10:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_meta_mipgen.h:194:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:11:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_meta_resolve.h:105:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_context.h:13:0,
from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:7,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_pipemanager.h:104:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:16:0,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_queue.h:55:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_queue.h:56:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
std::condition_variable m_condOnAdd;
^~~~~~~~~~~~~~~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_queue.h:57:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type
std::condition_variable m_condOnTake;
^~~~~~~~~~~~~~~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:18:0,
from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:57:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_mutex;
^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h: In member function ‘dxvk::Rc<T> dxvk::DxvkRecycler<T, N>::retrieveObject()’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:32:23: error: ‘mutex’ is not a member of ‘std’
std::lock_guard<std::mutex> lock(m_mutex);
^~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:32:33: error: template argument 1 is invalid
std::lock_guard<std::mutex> lock(m_mutex);
^
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:32:40: error: ‘m_mutex’ was not declared in this scope
std::lock_guard<std::mutex> lock(m_mutex);
^~~~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h: In member function ‘void dxvk::DxvkRecycler<T, N>::returnObject(const dxvk::Rc<T>&)’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:49:23: error: ‘mutex’ is not a member of ‘std’
std::lock_guard<std::mutex> lock(m_mutex);
^~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:49:33: error: template argument 1 is invalid
std::lock_guard<std::mutex> lock(m_mutex);
^
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_recycler.h:49:40: error: ‘m_mutex’ was not declared in this scope
std::lock_guard<std::mutex> lock(m_mutex);
^~~~~~~
In file included from ../../dxvk/src/util/com/../../d3d11/d3d11_interfaces.h:7:0,
from ../../dxvk/src/util/com/com_guid.cpp:3:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h: At global scope:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:404:10: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex m_submissionLock;
^~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h: In member function ‘void dxvk::DxvkDevice::lockSubmission()’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:347:7: error: ‘m_submissionLock’ was not declared in this scope
m_submissionLock.lock();
^~~~~~~~~~~~~~~~
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h: In member function ‘void dxvk::DxvkDevice::unlockSubmission()’:
../../dxvk/src/util/com/../../d3d11/../dxvk/dxvk_device.h:357:7: error: ‘m_submissionLock’ was not declared in this scope
m_submissionLock.unlock();
^~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
That's also mentioned in the DXVK readme.
Thanks for the help, I never would have figured this all out without your assistance.
Just in case someone else runs into the same issue, I ran the following and changed them all from auto to the posix option (option 1)...
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++
And it now appears to be building.
Most helpful comment
Thanks for the help, I never would have figured this all out without your assistance.
Just in case someone else runs into the same issue, I ran the following and changed them all from auto to the posix option (option 1)...
And it now appears to be building.