LINUX.ORG.RU

Oblivion vulkan

 , ,


0

1

Пытаюсь запустить Oblivion через wine-staging 7.17 с вулканом, но оне не запускается и выдает

info:  Required Vulkan extension VK_KHR_surface not supported
terminate called after throwing an instance of 'dxvk::DxvkError'
При этом vulkaninfo показывается что
vulkaninfo | grep -i 'VK_KHR_surface'
WARNING: radv is not a conformant Vulkan implementation, testing use only.
        VK_KHR_surface                         : extension revision 25
        VK_KHR_surface_protected_capabilities  : extension revision 1
Использую DXVK 1.10.3

Ты уверен, что правильно поставил все? Пробовал запустить другую игру с дх11 например?

Я бы посоветовал взять вот отсюда протон: https://github.com/Kron4ek/Wine-Builds/releases

Версии не самой последней причем. Развернуть отдельно в новый префикс. Вручную установить туда дхвк вот отсюда: https://github.com/doitsujin/dxvk

Там есть инструкция. И запускать именно в префиксе.

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

[code] ./setup_dxvk.sh install wine: configuration in L"/home/oleg/.wine" has been updated. wine: configuration in L"/home/oleg/.wine" has been updated. removed ‘/home/oleg/.wine/dosdevices/c:/windows/system32/dxgi.dll’ ‘/home/oleg/Downloads/dxvk-1.10.3/x32/dxgi.dll’ -> ‘/home/oleg/.wine/dosdevices/c:/windows/system32/dxgi.dll’ removed ‘/home/oleg/.wine/dosdevices/c:/windows/system32/d3d9.dll’ ‘/home/oleg/Downloads/dxvk-1.10.3/x32/d3d9.dll’ -> ‘/home/oleg/.wine/dosdevices/c:/windows/system32/d3d9.dll’ removed ‘/home/oleg/.wine/dosdevices/c:/windows/system32/d3d10core.dll’ ‘/home/oleg/Downloads/dxvk-1.10.3/x32/d3d10core.dll’ -> ‘/home/oleg/.wine/dosdevices/c:/windows/system32/d3d10core.dll’ removed ‘/home/oleg/.wine/dosdevices/c:/windows/system32/d3d11.dll’ ‘/home/oleg/Downloads/dxvk-1.10.3/x32/d3d11.dll’ -> ‘/home/oleg/.wine/dosdevices/c:/windows/system32/d3d11.dll’ [/code]

  1. [code] 002c:fixme:winediag:LdrInitializeThunk wine-staging 7.17 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. 002c:err:winediag:getaddrinfo Failed to resolve your host name IP 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005 0108:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0. 0108:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION 0048:fixme:imm:ImeSetActiveContext (00010026, 0): stub 0048:fixme:imm:ImmReleaseContext (00010020, 00010026): stub 0108:fixme:imm:ImeSetActiveContext (0001006C, 1): stub 0108:fixme:imm:ImmReleaseContext (00020064, 0001006C): stub 0108:err:mmdevapi:DllGetClassObject Driver initialization failed 0108:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80004005 for dll L"C:\windows\system32\mmdevapi.dll" 0108:err:ole:com_get_class_object no class object {bcde0395-e52f-467c-8e3d-c4579291692e} could be created for context 0x1 0108:err:dsound:get_mmdevenum CoCreateInstance failed: 80004005 info: Game: Oblivion.exe info: DXVK: v1.10.3 info: Built-in extension providers: info: Win32 WSI info: OpenVR info: OpenXR info: OpenVR: could not open registry key, status 2 info: OpenVR: Failed to locate module 0108:err:vulkan:init_vulkan Failed to load Wine graphics driver supporting Vulkan. 0108:err:vulkan:init_vulkan Failed to load Wine graphics driver supporting Vulkan. info: Required Vulkan extension VK_KHR_surface not supported terminate called after throwing an instance of ‘dxvk::DxvkError’

[/code]

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

Mesa-32 у меня стоит

В ~/.bashrc

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json

Драйвер у меня собрался собственно

ls /usr/share/vulkan/icd.d/radeon_icd.i686.json 
/usr/share/vulkan/icd.d/radeon_icd.i686.json

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

Покажи вывод vulkaninfo --summary. И еще проверь, что у тебя библиотека, которая прописана в radeon_icd.i686.json, присутствует в системе.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Kron4ek
bash-5.1$ vulkaninfo --summary
WARNING: radv is not a conformant Vulkan implementation, testing use only.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.216


Instance Extensions: count = 19
-------------------------------
VK_EXT_acquire_drm_display             : extension revision 1
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_portability_enumeration         : extension revision 1
VK_KHR_surface                         : extension revision 25
VK_KHR_surface_protected_capabilities  : extension revision 1
VK_KHR_xcb_surface                     : extension revision 6
VK_KHR_xlib_surface                    : extension revision 6

Instance Layers: count = 8
--------------------------
VK_LAYER_INTEL_nullhw             INTEL NULL HW                1.1.73   version 1
VK_LAYER_KHRONOS_validation       Khronos Validation Layer     1.3.216  version 1
VK_LAYER_MESA_device_select       Linux device selection layer 1.3.211  version 1
VK_LAYER_MESA_overlay             Mesa Overlay layer           1.3.211  version 1
VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer 1.3.207  version 1
VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer 1.3.207  version 1
VK_LAYER_VALVE_steam_overlay_32   Steam Overlay Layer          1.3.207  version 1
VK_LAYER_VALVE_steam_overlay_64   Steam Overlay Layer          1.3.207  version 1

Devices:
========
GPU0:
        apiVersion         = 4206816 (1.3.224)
        driverVersion      = 92282880 (0x5802000)
        vendorID           = 0x1002
        deviceID           = 0x6798
        deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName         = AMD Radeon HD 7900 Series (RADV TAHITI)
        driverID           = DRIVER_ID_MESA_RADV
        driverName         = radv
        driverInfo         = Mesa 22.2.0
        conformanceVersion = 0.0.0.0
        deviceUUID         = 00000000-0300-0000-0000-000000000000
        driverUUID         = 414d442d-4d45-5341-2d44-525600000000

bash-5.1$ $VK_ICD_FILENAMES
bash: /usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json: No such file or directory
bash-5.1$ ls /usr/share/vulkan/icd.d/radeon_icd.i686.json
/usr/share/vulkan/icd.d/radeon_icd.i686.json
bash-5.1$

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

В выводе vulkaninfo все нормально, за исключением conformanceVersion, там должны быть цифры помимо нулей, но я думаю это некритично.

Насчет json я имею в виду не сам json файл, а то, что внутри него. Например, у меня там прописана /usr/lib32/libvulkan_radeon.so, и в системе она присутствует.

err:vulkan:init_vulkan Failed to load Wine graphics driver supporting Vulkan

Судя по этой ошибке, у тебя все же какая-то проблема не с Vulkan драйвером, а именно с 32-битным Vulkan-Loader. Ты уверен, что он у тебя установлен? И сам Wine у тебя скомпилирован с поддержкой Vulkan? На этапе компиляции если в системе не было Vulkan-Headers, то Wine в итоге собирается без поддержки Vulkan.

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

Уверен.

 
bash-5.1# cat /usr/share/vulkan/icd.d/radeon_icd.i686.json
 { «ICD»: { «api_version»: «1.3.224», «library_path»: «/usr/lib32/libvulkan_radeon.so» }, «file_format_version»: «1.0.0» }
bash-5.1# ls/usr/lib32/libvulkan_radeon.soo 
/usr/lib32/libvulkan_radeon.so 
bash-5.1# prt-get search vulkan mesa-vulkan mesa-vulkan-32 vulkan-headers vulkan-loader vulkan-loader-32 vulkan-tools vulkan-tools-32 vulkan-validation-layers vulkan-validation-layers-32 bash-5.1# prt-get install vulkan-loader-32 package vulkan-loader-32 is installed bash-5.1# 
У меня стоит wine-staging этого должно быть достаточно для поддержки вулкана.

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

Ок, понял.

У меня стоит wine-staging этого должно быть достаточно для поддержки вулкана.

Сам факт того, что это Staging, ни о чем не говорит. У Wine опциональная поддержка Vulkan, ее можно отключить на этапе компиляции или она сама могла отключиться при отсутствии нужных хедеров. У тебя есть файлы /usr/lib32/wine/i386-unix/winevulkan.so и /usr/lib32/wine/i386-windows/winevulkan.dll?

Kron4ek ★★★★★
()
Ответ на: комментарий от Kron4ek
bash-5.1$ ls /usr/lib32/wine/i386-unix/winevulkan.so 
/usr/lib32/wine/i386-unix/winevulkan.so 
bash-5.1$ ls /usr/lib32/wine/i386-windows/winevulkan.dll 
/usr/lib32/wine/i386-windows/winevulkan.dll 
bash-5.1$ 

Проверил ldd

bash-5.1$ ldd /usr/lib32/wine/i386-unix/winevulkan.so
        linux-gate.so.1 => linux-gate.so.1 (0xf7f18000)
        ntdll.so => not found
        win32u.so => not found
        libc.so.6 => /lib32/libc.so.6 (0xf7c9f000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xf7f1a000)
Походу проблема где-то здесь.

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

Тогда не знаю, у меня больше нет идей. Но если есть желание, можешь попробовать через мой контейнер игру запустить. Примерно так:

./conty_lite.sh wine Oblivion.exe

Походу проблема где-то здесь.

Не, ntdll.so и win32u.so там же в i386-unix лежат. Это нормально, что они как not found через ldd отображаются.

Kron4ek ★★★★★
()

WARNING: radv is not a conformant Vulkan implementation, testing use only.

Это только в очень древней Mesa всплывает. Безотносительно не работающего khr surface в wine, стоит обновиться. Если wine staging такого же возраста, то неудивительно, что вулкан не вулканит.

Если всё же новее, то libvulkan-1 (или как-то так) должен обязательно в wine грузиться builtin, не native (native опирается на dxgi для перечисления устройств, который в dxvk опирается на libvulkan-1).

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

WARNING: radv is not a conformant Vulkan implementation, testing use only.

Это только в очень древней Mesa всплывает.
…стоит обновиться

Вопиющее 4.2!

Это всплывает, если используется встроенная в Mesa реализация Vulkan, и не установлена переменная окружения MESA_VK_IGNORE_CONFORMANCE_WARNING.

Если этой надписи нет — либо Vulkan от вендора (AMDVLK вместо RADV, например), либо поставщик дистрибутива молодец и заботится о психическом здоровье пользователей. ;)

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

Короче проблема была в том что для «wine(32on64) doesn’t support Vulkan» source - https://www.reddit.com/r/wine_gaming/comments/tz3f01/when_trying_to_launch_a_game_i_get_an_error_with/ А по умолчанию в CRUX именно такой. Пересобрал чтобы вайн был просто 32-битным и все заработало.

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

У 64-биного Wine с поддержкой 32-бит (Shared WoW64) нет проблем с Vulkan, я сам таким постоянно пользуюсь, в том числе и для запуска 32-битных игр с DXVK, и TES Oblivion запускал на нем.

А wine(32on64) - это чисто macOS’овская тема, это не то же самое, что используется в CRUX или любых других дистрибутвах Linux.

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

А wine(32on64) - это чисто macOS’овская темаА wine(32on64) - это чисто macOS’овская тема

Ты зря так думаешь. У меня был собран вайн именно так 32 бит и в конфиге ‘with-wine64’. Так что техническая возможность собрать есть и работать вулкан на таком не будет.

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

Ты ошибаешься. --with-wine64 в configure - это обычная Shared WoW64 сборка, коя используется в большинстве других дистрибутивов Linux, в том числе у меня Wine тоже собран с --with-wine64, и проблем с Vulkan у меня нет.

А wine(32on64), как я уже сказал, это чисто macOS’овская тема, не путай с Shared WoW64.

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

В CRUX его собирают именно так как я сказал по умолчанию. Вот глянь сюда

        cd ../wine32
        CFLAGS="${CFLAGS} -m32"
        CXXFLAGS="${CXXFLAGS} -m32"
        LDFLAGS="${LDFLAGS} -m32"
        export PKG_CONFIG_LIBDIR="/usr/lib32/pkgconfig"

        ../wine-${version:0:4}/configure \
                --prefix=/usr \
                --libdir=/usr/lib32 \
                --x-includes=/usr/include/X11 \
                --x-libraries=/usr/lib32 \
                --cache-file=config.cache \
                --with-wine64=../wine64

        make depend
        make
источник(wine-staging) - https://crux.nu/portdb/index.php?q=wine&a=search И вулкан в этом НЕ работает.

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

Так я и не спорю, что его так собирают в CRUX, я видел pkgfile. Его точно так же собирают и на Arch Linux, можешь глянуть в PKGBUILD, и на многих других дистрибутивах. И я себя Wine вручную собираю точно так же. Но это называется не 32on64, а Shared WoW64. 32on64 - Маковская тема.

И вулкан в этом НЕ работает.

Работает.

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

Я тебе дал ссылку на Арчевский PKGBUILD, где Wine собран с --with-wine64 и где Vulkan работает (что легко можно проверить, запустив Arch). И ссылку на официальный Wiki, где ни слова о неработающем Vulkan при сборке --with-wine64.

Впрочем, можешь не верить. Я это пишу на случай, если кто в будущем заглянет в эту тему, чтобы он не сделал неправильных выводов.

А то что тебе пересборка Wine помогла и что в этот раз ты собрал 32-битный Wine, не говорит о том, что проблема была в --with-wine64. Я понимаю, что из этого напрашивается именно такой вывод, но он не является верным.

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

Я не ставлю под сомнение, что твою проблему решила пересобрка Wine. Я только пытаюсь донести, что ты из этого сделал неправильный вывод, подкрепив каким-то постом с Reddit, который вообще касается macOS, о чем явно написано в заглавном посте.

У тебя есть еще соседняя тема про проблемы со звуком и пересборка Wine в 32-битном виде решила и их тоже. Следует ли из этого, что --with-wine64 ломает звук? Может да, а может и нет. Недостаточно данных, чтобы сделать такой вывод. Аналогично и с твои выводом насчет Vulkan.

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