protonscr

Arc 770 errors out with "Required Vulkan extension VK_KHR_surface not supported"

dxvkclosed
doitsujin/dxvk#3384 · opened 2023-04-30 by darix · updated 2023-04-30 · 15 comments · github
1 matching comments, n / p to jump
Ddarix 2023-04-30 github

I bought the card just for video encoding but thought i would give it a try for general desktop as well:

vulkaninfo says the extension is supported. vkmark works. vkdt (vulkan compute based image editor) works.

Software information

basic starting of a wine env fails

System information

  • GPU: Arc 770
  • Driver: Mesa 23.0.2 openSUSE Tumbleweed as underlying OS
  • Wine version: wine-lutris-GE-Proton7-43-x86_64
  • DXVK version: 2.1

Tested both set up via lutris as well as manually setup wine env

Log files

lutris-wrapper: Blizzard Battle.net
Started initial process 670 from gamemoderun ${HOME}/.local/share/lutris/runners/wine/lutris-GE-Proton7-43-x86_64/bin/wine ${HOME}/Games/battlenet-lutris/drive_c/games/Battle.net/Battle.net.exe
Start monitoring process.
fsync: up and running.
wine: Using setpriority to control niceness in the [-11,11] range
[0430/123335.580:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0430/123335.819:ERROR:network_change_notifier_win.cc(142)] WSALookupServiceBegin failed with: 0
[0430/123335.826:ERROR:dxva_video_decode_accelerator_win.cc(1405)] DXVAVDA fatal error: could not LoadLibrary: msvproc.dll: Module not found. (0x7E)
terminate called after throwing an instance of 'dxvk::DxvkError'
Leaked struct Blizzard::File::StreamRecord 09F31934 {"Battle.net.mpq"}
Leaked struct Blizzard::File::StreamRecord 00691C54 {"Battle.net.mpq"}
Initial process has exited (return code: 768)
Monitored process exited.
Exit with return code 768
info:  Game: Battle.net.exe
info:  DXVK: v2.1
info:  Found config file: c:/dxvk/dxvk.conf
info:  Effective configuration:
info:    dxgi.nvapiHack = False
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
info:  Vulkan: Found vkGetInstanceProcAddr in winevulkan.dll @ 0xa3b3930
info:  Required Vulkan extension VK_KHR_surface not supported
err:   DxvkInstance: Failed to create instance

vkmark

vkmark 
=======================================================
    vkmark 2017.08
=======================================================
    Vendor ID:      0x8086
    Device ID:      0x56A0
    Device Name:    Intel(R) Arc(tm) A770 Graphics (DG2)
    Driver Version: 96468994
    Device UUID:    8aa5ebd4f741e26ea185b0a4edb381cb
=======================================================
[vertex] device-local=true: FPS: 11267 FrameTime: 0.089 ms
[vertex] device-local=false: FPS: 9092 FrameTime: 0.110 ms
[texture] anisotropy=0: FPS: 10603 FrameTime: 0.094 ms
[texture] anisotropy=16: FPS: 10624 FrameTime: 0.094 ms
[shading] shading=gouraud: FPS: 11275 FrameTime: 0.089 ms
[shading] shading=blinn-phong-inf: FPS: 11161 FrameTime: 0.090 ms
[shading] shading=phong: FPS: 11037 FrameTime: 0.091 ms
[shading] shading=cel: FPS: 11006 FrameTime: 0.091 ms
[effect2d] kernel=edge: FPS: 12346 FrameTime: 0.081 ms
[effect2d] kernel=blur: FPS: 12344 FrameTime: 0.081 ms
[desktop] <default>: FPS: 10642 FrameTime: 0.094 ms
[cube] <default>: FPS: 11518 FrameTime: 0.087 ms
[clear] <default>: FPS: 13457 FrameTime: 0.074 ms
=======================================================
                                   vkmark Score: 11259
=======================================================

vulkaninfo attached

vulkaninfo.txt

Mmbriar 2023-04-30 github

Probably missing 32bit vulkan drivers.

Ddarix 2023-04-30 github

It should be there:

libvulkan1
libvulkan1-32bit
libvulkan_intel
libvulkan_intel-32bit
libvulkan_radeon
libvulkan_radeon-32bit
Mesa
Mesa-32bit
Mesa-demo
Mesa-demo-egl
Mesa-demo-es
Mesa-demo-x
Mesa-dri
Mesa-dri-32bit
Mesa-gallium
Mesa-gallium-32bit
Mesa-libd3d
Mesa-libEGL1
Mesa-libGL1
Mesa-libGL1-32bit
Mesa-libglapi0
Mesa-libglapi0-32bit
Mesa-libRusticlOpenCL
Mesa-libva
Mesa-vulkan-device-select
Mesa-vulkan-device-select-32bit
vulkan-tools
vulkan-validationlayers
Mmbriar 2023-04-30 github

Not sure what's going wrong then, but

Required Vulkan extension VK_KHR_surface not supported

pretty much always means missing drivers and is never a DXVK issue.

Ddarix 2023-04-30 github

Can we get dxvk to printout which driver/card it found?

Mmbriar 2023-04-30 github

It already did print out that it found nothing.

Ddarix 2023-04-30 github

well it found a card where it says extension is not supported. but it doesnt print the device name.

Mmbriar 2023-04-30 github

No, VK_KHR_surface is an instance extension, not a device extension. It fails before even creating a device.

Ddarix 2023-04-30 github

that makes even less sense if we look at vulkaninfo.

Mmbriar 2023-04-30 github

Well, vulkaninfo will only check 64bit vulkan drivers and loader. That's why i'm pretty sure this is an issue of 32bit drivers missing. If the 32bit intel vulkan drivers are present, then maybe the 32bit vulkan loader is missing. You'd have to compile a 32bit version of vulkaninfo to check 32bit drivers.

Mmbriar 2023-04-30 github

Anyways, this is 100% a set-up issue and not a dxvk bug. I'd ask either in lutris or opensuse support communities for help with this.

Ddarix 2023-04-30 github

32bit vulkaninfo looks fine too.

(file ./vulkaninfo ; ./vulkaninfo) 2>&1 | tee vulkaninfo-32bit.txt

vulkaninfo-32bit.txt

diff is

diff -urN vulkaninfo.txt  vulkaninfo-32bit.txt 
--- vulkaninfo.txt	2023-04-30 12:37:46.197178605 +0200
+++ vulkaninfo-32bit.txt	2023-04-30 13:31:55.624386772 +0200
@@ -1,3 +1,4 @@
+./vulkaninfo: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=71ed5a1e1d501c6868632d71f7a867f9d1b81456, for GNU/Linux 3.2.0, stripped
 ==========
 VULKANINFO
 ==========
@@ -156,7 +157,7 @@
 	deviceID          = 0x56a0
 	deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
 	deviceName        = Intel(R) Arc(tm) A770 Graphics (DG2)
-	pipelineCacheUUID = 8aa5ebd4-f741-e26e-a185-b0a4edb381cb
+	pipelineCacheUUID = d38a7787-76fc-e93f-6ea6-4ef85c5ea3b4
 
 VkPhysicalDeviceLimits:
 -----------------------
@@ -996,14 +997,14 @@
 =================================
 memoryHeaps: count = 2
 	memoryHeaps[0]:
-		size   = 17079205888 (0x3fa000000) (15.91 GiB)
-		budget = 15371075584 (0x394300000) (14.32 GiB)
+		size   = 17079205888 (0x3fa000000) (3.91 GiB)
+		budget = 15371075584 (0x394300000) (2.32 GiB)
 		usage  = 0 (0x00000000) (0.00 B)
 		flags: count = 1
 			MEMORY_HEAP_DEVICE_LOCAL_BIT
 	memoryHeaps[1]:
-		size   = 24535366656 (0x5b66bfc00) (22.85 GiB)
-		budget = 22538092544 (0x53f600000) (20.99 GiB)
+		size   = 24535366656 (0x5b66bfc00) (2.85 GiB)
+		budget = 22802333696 (0x54f200000) (1.24 GiB)
 		usage  = 0 (0x00000000) (0.00 B)
 		flags:
 			None
Mmbriar 2023-04-30 github

Can you try with NODEVICE_SELECT=1 as environment variable to disable Mesa's device select layer? Otherwise I don't know what the problem is, but I'm still sure that it is nothing that can be fixed in DXVK.

Ddarix 2023-04-30 github

tested. no change.

BBlisto91 2023-04-30 github

You don't have DXVK_FILTER_DEVICE_NAME set some where in your environment right?

Ddarix 2023-04-30 github

VK_ICD_FILENAMES still pointed to the nvidia icd file which of course does not work. for lutris it was hidden in system.yml and the manual shell script was based on some old lutris env.

Proton versions

Launch options

DLLs