LINUX.ORG.RU
решено ФорумGames

проблема при сборке dxvk

 , , , ,


0

1

Kron4ek, помоги. Там ( https://github.com/doitsujin/dxvk/issues/2300#issuecomment-925718100 ) ты пишеш, что откат устраняет проблему.
Откатываю патч, пытаюсь пересобрать dxvk и... error: ‘cv_status’ in namespace ‘std’ does not name a type:

$ ./package-release.sh master /tmp/111/dxvk-1.9.2-fix --no-package
The Meson build system
Version: 0.53.2
Source dir: /tmp/111/dxvk-1.9.2
Build dir: /tmp/111/dxvk-1.9.2-fix/dxvk-master/build.64
Build type: cross build
Project name: dxvk
Project version: v1.9.2
C compiler for the build machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C linker for the build machine: cc ld.bfd 2.34
C++ compiler for the build machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C++ linker for the build machine: c++ ld.bfd 2.34
C compiler for the host machine: x86_64-w64-mingw32-gcc (gcc 9.3.0 "x86_64-w64-mingw32-gcc (GCC) 9.3-win32 20200320")
C linker for the host machine: x86_64-w64-mingw32-gcc ld.bfd 2.34
C++ compiler for the host machine: x86_64-w64-mingw32-g++ (gcc 9.3.0 "x86_64-w64-mingw32-g++ (GCC) 9.3-win32 20200320")
C++ linker for the host machine: x86_64-w64-mingw32-g++ ld.bfd 2.34
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Compiler for C++ supports link arguments -Wl,--file-alignment=4096: YES 
Compiler for C++ supports arguments -msse3: YES 
Library vulkan-1 found: YES
Library d3d9 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)
Run-time dependency threads found: YES
Dependency threads found: YES unknown (cached)
Build targets in project: 13

Found ninja-1.10.0 at /usr/bin/ninja
[1/273] Generating version.h with a custom command.
fatal: не найден git репозиторий (или один из его каталогов вплоть до точки монтирования /)
Останавливаю поиск на границе файловой системы (так как GIT_DISCOVERY_ACROSS_FILESYSTEM не установлен).
[5/273] Compiling C++ object 'src/util/ed6d25d@@util@sta/util_gdi.cpp.obj'.
FAILED: src/util/ed6d25d@@util@sta/util_gdi.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/ed6d25d@@util@sta -Isrc/util -I../../../dxvk-1.9.2/src/util -I../../../dxvk-1.9.2/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++17 -O3 -DNOMINMAX -D_WIN32_WINNT=0xa00 -msse3 -MD -MQ 'src/util/ed6d25d@@util@sta/util_gdi.cpp.obj' -MF 'src/util/ed6d25d@@util@sta/util_gdi.cpp.obj.d' -o 'src/util/ed6d25d@@util@sta/util_gdi.cpp.obj' -c ../../../dxvk-1.9.2/src/util/util_gdi.cpp
In file included from ../../../dxvk-1.9.2/src/util/log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/util_gdi.cpp:2:
../../../dxvk-1.9.2/src/util/log/../thread.h:279:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  279 |     std::cv_status wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time) {
      |          ^~~~~~~~~
In file included from ../../../dxvk-1.9.2/src/util/log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/util_gdi.cpp:2:
../../../dxvk-1.9.2/src/util/log/../thread.h:297:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  297 |     std::cv_status wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout) {
      |          ^~~~~~~~~
../../../dxvk-1.9.2/src/util/log/../thread.h: In member function ‘bool dxvk::condition_variable::wait_for(std::unique_lock<dxvk::mutex>&, const std::chrono::duration<_Rep1, _Period1>&, Predicate)’:
../../../dxvk-1.9.2/src/util/log/../thread.h:310:54: error: ‘std::cv_status’ has not been declared
  310 |       if (!result && wait_for(lock, timeout) == std::cv_status::no_timeout)
      |                                                      ^~~~~~~~~
[6/273] Compiling C++ object 'src/util/ed6d25d@@util@sta/util_fps_limiter.cpp.obj'.
FAILED: src/util/ed6d25d@@util@sta/util_fps_limiter.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/ed6d25d@@util@sta -Isrc/util -I../../../dxvk-1.9.2/src/util -I../../../dxvk-1.9.2/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++17 -O3 -DNOMINMAX -D_WIN32_WINNT=0xa00 -msse3 -MD -MQ 'src/util/ed6d25d@@util@sta/util_fps_limiter.cpp.obj' -MF 'src/util/ed6d25d@@util@sta/util_fps_limiter.cpp.obj.d' -o 'src/util/ed6d25d@@util@sta/util_fps_limiter.cpp.obj' -c ../../../dxvk-1.9.2/src/util/util_fps_limiter.cpp
In file included from ../../../dxvk-1.9.2/src/util/util_fps_limiter.cpp:3:
../../../dxvk-1.9.2/src/util/thread.h:279:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  279 |     std::cv_status wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time) {
      |          ^~~~~~~~~
In file included from ../../../dxvk-1.9.2/src/util/util_fps_limiter.cpp:3:
../../../dxvk-1.9.2/src/util/thread.h:297:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  297 |     std::cv_status wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout) {
      |          ^~~~~~~~~
../../../dxvk-1.9.2/src/util/thread.h: In member function ‘bool dxvk::condition_variable::wait_for(std::unique_lock<dxvk::mutex>&, const std::chrono::duration<_Rep1, _Period1>&, Predicate)’:
../../../dxvk-1.9.2/src/util/thread.h:310:54: error: ‘std::cv_status’ has not been declared
  310 |       if (!result && wait_for(lock, timeout) == std::cv_status::no_timeout)
      |                                                      ^~~~~~~~~
../../../dxvk-1.9.2/src/util/util_fps_limiter.cpp: In member function ‘dxvk::FpsLimiter::TimePoint dxvk::FpsLimiter::sleep(dxvk::FpsLimiter::TimePoint, dxvk::FpsLimiter::NtTimerDuration)’:
../../../dxvk-1.9.2/src/util/util_fps_limiter.cpp:120:14: error: ‘std::this_thread’ has not been declared
  120 |         std::this_thread::sleep_for(sleepDuration);
      |              ^~~~~~~~~~~
[7/273] Compiling C++ object 'src/util/ed6d25d@@util@sta/util_luid.cpp.obj'.
FAILED: src/util/ed6d25d@@util@sta/util_luid.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/ed6d25d@@util@sta -Isrc/util -I../../../dxvk-1.9.2/src/util -I../../../dxvk-1.9.2/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++17 -O3 -DNOMINMAX -D_WIN32_WINNT=0xa00 -msse3 -MD -MQ 'src/util/ed6d25d@@util@sta/util_luid.cpp.obj' -MF 'src/util/ed6d25d@@util@sta/util_luid.cpp.obj.d' -o 'src/util/ed6d25d@@util@sta/util_luid.cpp.obj' -c ../../../dxvk-1.9.2/src/util/util_luid.cpp
In file included from ../../../dxvk-1.9.2/src/util/./log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/util_luid.cpp:4:
../../../dxvk-1.9.2/src/util/./log/../thread.h:279:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  279 |     std::cv_status wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time) {
      |          ^~~~~~~~~
In file included from ../../../dxvk-1.9.2/src/util/./log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/util_luid.cpp:4:
../../../dxvk-1.9.2/src/util/./log/../thread.h:297:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  297 |     std::cv_status wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout) {
      |          ^~~~~~~~~
../../../dxvk-1.9.2/src/util/./log/../thread.h: In member function ‘bool dxvk::condition_variable::wait_for(std::unique_lock<dxvk::mutex>&, const std::chrono::duration<_Rep1, _Period1>&, Predicate)’:
../../../dxvk-1.9.2/src/util/./log/../thread.h:310:54: error: ‘std::cv_status’ has not been declared
  310 |       if (!result && wait_for(lock, timeout) == std::cv_status::no_timeout)
      |                                                      ^~~~~~~~~
[9/273] Compiling C++ object 'src/util/ed6d25d@@util@sta/util_monitor.cpp.obj'.
FAILED: src/util/ed6d25d@@util@sta/util_monitor.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/ed6d25d@@util@sta -Isrc/util -I../../../dxvk-1.9.2/src/util -I../../../dxvk-1.9.2/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++17 -O3 -DNOMINMAX -D_WIN32_WINNT=0xa00 -msse3 -MD -MQ 'src/util/ed6d25d@@util@sta/util_monitor.cpp.obj' -MF 'src/util/ed6d25d@@util@sta/util_monitor.cpp.obj.d' -o 'src/util/ed6d25d@@util@sta/util_monitor.cpp.obj' -c ../../../dxvk-1.9.2/src/util/util_monitor.cpp
In file included from ../../../dxvk-1.9.2/src/util/./log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/util_monitor.cpp:4:
../../../dxvk-1.9.2/src/util/./log/../thread.h:279:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  279 |     std::cv_status wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time) {
      |          ^~~~~~~~~
In file included from ../../../dxvk-1.9.2/src/util/./log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/util_monitor.cpp:4:
../../../dxvk-1.9.2/src/util/./log/../thread.h:297:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  297 |     std::cv_status wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout) {
      |          ^~~~~~~~~
../../../dxvk-1.9.2/src/util/./log/../thread.h: In member function ‘bool dxvk::condition_variable::wait_for(std::unique_lock<dxvk::mutex>&, const std::chrono::duration<_Rep1, _Period1>&, Predicate)’:
../../../dxvk-1.9.2/src/util/./log/../thread.h:310:54: error: ‘std::cv_status’ has not been declared
  310 |       if (!result && wait_for(lock, timeout) == std::cv_status::no_timeout)
      |                                                      ^~~~~~~~~
[10/273] Compiling C++ object 'src/util/ed6d25d@@util@sta/com_com_guid.cpp.obj'.
FAILED: src/util/ed6d25d@@util@sta/com_com_guid.cpp.obj 
x86_64-w64-mingw32-g++ -Isrc/util/ed6d25d@@util@sta -Isrc/util -I../../../dxvk-1.9.2/src/util -I../../../dxvk-1.9.2/./include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++17 -O3 -DNOMINMAX -D_WIN32_WINNT=0xa00 -msse3 -MD -MQ 'src/util/ed6d25d@@util@sta/com_com_guid.cpp.obj' -MF 'src/util/ed6d25d@@util@sta/com_com_guid.cpp.obj.d' -o 'src/util/ed6d25d@@util@sta/com_com_guid.cpp.obj' -c ../../../dxvk-1.9.2/src/util/com/com_guid.cpp
In file included from ../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/../util/log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/dxvk_include.h:3,
                 from ../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/dxgi_interfaces.h:3,
                 from ../../../dxvk-1.9.2/src/util/com/../../d3d11/d3d11_interfaces.h:3,
                 from ../../../dxvk-1.9.2/src/util/com/com_guid.cpp:3:
../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/../util/log/../thread.h:279:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  279 |     std::cv_status wait_until(std::unique_lock<dxvk::mutex>& lock, const std::chrono::time_point<Clock, Duration>& time) {
      |          ^~~~~~~~~
In file included from ../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/../util/log/log.h:8,
                 from ../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/dxvk_include.h:3,
                 from ../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/dxgi_interfaces.h:3,
                 from ../../../dxvk-1.9.2/src/util/com/../../d3d11/d3d11_interfaces.h:3,
                 from ../../../dxvk-1.9.2/src/util/com/com_guid.cpp:3:
../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/../util/log/../thread.h:297:10: error: ‘cv_status’ in namespace ‘std’ does not name a type
  297 |     std::cv_status wait_for(std::unique_lock<dxvk::mutex>& lock, const std::chrono::duration<Rep, Period>& timeout) {
      |          ^~~~~~~~~
../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/../util/log/../thread.h: In member function ‘bool dxvk::condition_variable::wait_for(std::unique_lock<dxvk::mutex>&, const std::chrono::duration<_Rep1, _Period1>&, Predicate)’:
../../../dxvk-1.9.2/src/util/com/../../d3d11/../dxgi/../dxvk/../util/log/../thread.h:310:54: error: ‘std::cv_status’ has not been declared
  310 |       if (!result && wait_for(lock, timeout) == std::cv_status::no_timeout)
      |                                                      ^~~~~~~~~
ninja: build stopped: subcommand failed.
Что не так?

★★★★★

Последнее исправление: superuser (всего исправлений: 1)

Не умеешь откатывать коммиты - внеси изменения руками. Там две строчки всего в патче.

ox55ff ★★★★★
()
Ответ на: комментарий от LamerOk

Fedora, Gnome, GTK+ все как любят местные фанбои RedHat, даже юзлес жирный заголовок окна на месте.

bhfq ★★★★★
()
Ответ на: комментарий от annulen

Без патча тоже не собирается, с теми же ошибками

superuser ★★★★★
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от ox55ff

а что м.б. не так?

cd dxvk-1.9.2
wget https://github.com/doitsujin/dxvk/commit/78d22cc7a5e03817ed06002f50120bfe77efcdd3.patch -O bad1.patch
yes | patch -R -p1 < bad1.patch

superuser ★★★★★
() автор топика

Не знаю, с чем связана ошибка компиляции, но вот сборка без того коммита, который у меня проблему вызывает. Проверь, решает это твою проблему или нет.

Также там есть готовые сборки на почти любой коммит, можешь попробовать среди них найти последнюю сборку, с которой у тебя нет проблемы. Это если моя сборка тебе не поможет.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от superuser

Ок, значит у тебя этот же коммит проблему вызывает.

А не компилируется у тебя, скорее всего, из-за этого (там же и решение написано). Если вдруг в будущем понадобится вручную DXVK собрать.

Kron4ek ★★★★★
()
Ответ на: комментарий от Kron4ek

Ок, значит у тебя этот же коммит проблему вызывает

посмотри на автора коммита, что-то у него подозрително бурная деятельность

superuser ★★★★★
() автор топика
Ответ на: комментарий от superuser

посмотри на автора коммита, что-то у него подозрително бурная деятельность

Оно и понятно, он же является одним из основных разработчиков dxvk (точнее, d3d9 части). Это автор d9vk, который теперь является частью dxvk. Он в Mesa и в vkd3d-proton иногда коммитит.

да, эту ошибку исправило, теперь другие полезли

А это из-за того, что у тебя mingw недостаточно новый.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 2)
Ответ на: комментарий от Kron4ek

А это из-за того, что у тебя mingw недостаточно новый

вроде бы новый

$ dpkg -l g++-mingw-w64
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя            Версия                        Архитектура  Описание
+++-==============-=============================-============-=================================
ii  g++-mingw-w64  9.3.0-7ubuntu1+22~exp1ubuntu4 all          GNU C++ compiler for MinGW-w64

superuser ★★★★★
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

Собрал.
На Ubuntu 20.04 пришлось подключить репозиторий https://launchpad.net/~noasakurajin/ archive/ubuntu/sid-ubuntu-ports
и согласно https://github.com/doitsujin/dxvk#troubleshooting выбрать posix:

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

superuser ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.