1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
SteamVR OpenXR vulkan failed to find VkPhysicalDevice matching deviceUUID
I've been able to run SteamVR successfully (tracking works fine and I get the default steamvr aurora skybox in the headset), but I'm unable to get any applications to actually submit frames successfully.
`hello_xr` with the vulkan backend somewhat gracefully exits.
```
[16:55:56.970][Info ] Available Layers: (0)
[16:55:57.124][Info ] Instance RuntimeName=SteamVR/OpenXR RuntimeVersion=2.4.1
[16:55:57.130][Info ] Available View Configuration Types: (1)
[16:55:57.134][Info ] Available Environment Blend Mode count : (1)
[16:55:57.134][Info ] Environment Blend Mode (XR_ENVIRONMENT_BLEND_MODE_OPAQUE) : (Selected)
[16:55:57.143][Warning] No validation layers found in the system, skipping
[gfxrecon] INFO - Initializing GFXReconstruct capture layer
[gfxrecon] INFO - GFXReconstruct Version 0.9.18-unknown (unknown-build-source)
[gfxrecon] INFO - Recording graphics API capture to gfxrecon_capture_20240211T165557.gfxr
[gfxrecon] INFO - Vulkan Header Version 1.3.239
[gfxrecon] INFO - Vulkan Header Version 1.3.239
[16:55:57.224][Info ] INFO: (INSTANCE 0x3ed87670) linux_read_sorted_physical_devices:
[16:55:57.225][Info ] INFO: (INSTANCE 0x3ed87670) Original order:
[16:55:57.225][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.225][Info ] INFO: (INSTANCE 0x3ed87670) Sorted order:
[16:55:57.226][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.226][Info ] INFO: (INSTANCE 0x3ed87670) linux_read_sorted_physical_devices:
[16:55:57.226][Info ] INFO: (INSTANCE 0x3ed87670) Original order:
[16:55:57.226][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.226][Info ] INFO: (INSTANCE 0x3ed87670) Sorted order:
[16:55:57.226][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) linux_read_sorted_physical_devices:
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) Original order:
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) Sorted order:
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) linux_read_sorted_physical_devices:
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) Original order:
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) Sorted order:
[16:55:57.229][Info ] INFO: (INSTANCE 0x3ed87670) [0] AMD Radeon RX 460 Graphics (RADV POLARIS11)
[16:55:57.288][Error ] XrResult failure [XR_ERROR_RUNTIME_FAILURE]
Origin: pfnGetVulkanGraphicsDeviceKHR(instance, getInfo->systemId, getInfo->vulkanInstance, vulkanPhysicalDevice)
Source: /home/ich/OpenXR-SDK-Source/src/tests/hello_xr/graphicsplugin_vulkan.cpp:1961
```
From the SteamVR xrclient log:
```
Sun Feb 11 2024 16:51:52.364802 [Info] - IVRSystem::GetOutputDevice: failed to find VkPhysicalDevice matching deviceUUID
Sun Feb 11 2024 16:51:52.364994 [Error] - CSxrCompositorOpenVRGetVulkanGRaphicsDevice error: failed to determine output device
```
The only three vulkan calls I found with `BOX64_LOG=2` after a lot of `vkGetInstanceProcAddr` calls were to calls to`vkEnumeratePhysicalDevices` and then `8785|0x3f030d9fcc: Calling vkGetPhysicalDeviceProperties2(0x55E186D0, 0x7FA4484720, 0x7FA44846B0, ...) => return 0x105C0` , directly after which the error message gets created and written to the log.
`hellovr_vulkan` looses its connection to the X server and then shuts down. This could also be down to library issues however, I'll have to see if I can get it to recompile in an environment with older libraries (especially an older libc).
`3975|0x100045375: Calling SDL_CreateWindow(0x100062B09, 0x2BC, 0x64, ...) =>X connection to :0 broken (explicit kill or server shutdown).`
OpenVR through wine64 produces some more interesting errors in the vrclient log
```
Sat Feb 10 2024 17:12:16.651804 [Error] - No GPU timing Vulkan device in CVRCompositorSharedTextures::BeginGPUTimingCommandBuffer!
Sat Feb 10 2024 17:12:16.653085 [Error] - No Vulkan command buffer open in CGpuTiming::MarkEvent!
Sat Feb 10 2024 17:12:16.653296 [Error] - Invalid command buffer in CVRCompositorSharedTextures::FinishOpenCommandBuffer!
Sat Feb 10 2024 17:13:01.998581 [Info] - Enable advanced image processing of scene textures.
Sat Feb 10 2024 17:13:02.005827 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:02.006174 [Info] - Failed to create shared vulkan semaphore
Sat Feb 10 2024 17:13:02.006631 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:02.006675 [Info] - Failed to create shared vulkan semaphore
Sat Feb 10 2024 17:13:02.007500 [Info] - Initializing CVulkanVRRenderer
Sat Feb 10 2024 17:13:02.007939 [Info] - Debug markers: enabled
Sat Feb 10 2024 17:13:02.774652 [Info] - Initialized Vulkan transfer ring buffer, mapped at offset 0x0x7ed8759000.
Sat Feb 10 2024 17:13:02.778714 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:02.778807 [Info] - Failed to create shared vulkan semaphore
Sat Feb 10 2024 17:13:02.779344 [Info] - CSharedResourceBaseLinux::CreateAssociatedResources failed to pre-allocate semaphore handle=0x1000018f6 slot=0
Sat Feb 10 2024 17:13:02.780963 [Error] - SharedCountingSemaphoreLinux::CreateVulkanCountingSemaphore: failed to create associated semaphores.
Sat Feb 10 2024 17:13:02.782279 [Error] - CVulkanVRRenderer::CreateGPUCountingSemaphore - Failed to allocate counting shared resource
Sat Feb 10 2024 17:13:02.786028 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:02.786122 [Info] - Failed to create shared vulkan semaphore
Sat Feb 10 2024 17:13:02.786157 [Info] - CSharedResourceBaseLinux::CreateAssociatedResources failed to pre-allocate semaphore handle=0x2000018f6 slot=0
Sat Feb 10 2024 17:13:02.786188 [Error] - SharedCountingSemaphoreLinux::CreateVulkanCountingSemaphore: failed to create associated semaphores.
Sat Feb 10 2024 17:13:02.786214 [Error] - CVulkanVRRenderer::CreateGPUCountingSemaphore - Failed to allocate counting shared resource
Sat Feb 10 2024 17:13:02.787858 [Info] - Failed to create shared vulkan buffer: size=2032 usage=0x13
Sat Feb 10 2024 17:13:02.788458 [Error] - Failed to create sync texture. Ensure application was built using DXGI 1.1 or later (i.e. Call CreateDXGIFactory1).
Sat Feb 10 2024 17:13:02.793165 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:02.793252 [Info] - Failed to create shared vulkan semaphore
Sat Feb 10 2024 17:13:02.793285 [Info] - CSharedResourceBaseLinux::CreateAssociatedResources failed to pre-allocate semaphore handle=0x3000018f6 slot=0
Sat Feb 10 2024 17:13:02.793315 [Error] - SharedCountingSemaphoreLinux::CreateVulkanCountingSemaphore: failed to create associated semaphores.
Sat Feb 10 2024 17:13:02.793337 [Error] - CVulkanVRRenderer::CreateGPUCountingSemaphore - Failed to allocate counting shared resource
Sat Feb 10 2024 17:13:02.794586 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:02.794658 [Info] - Failed to create shared vulkan semaphore
Sat Feb 10 2024 17:13:02.794687 [Info] - CSharedResourceBaseLinux::CreateAssociatedResources failed to pre-allocate semaphore handle=0x4000018f6 slot=0
Sat Feb 10 2024 17:13:02.794719 [Error] - SharedCountingSemaphoreLinux::CreateVulkanCountingSemaphore: failed to create associated semaphores.
Sat Feb 10 2024 17:13:02.794748 [Error] - CVulkanVRRenderer::CreateGPUCountingSemaphore - Failed to allocate counting shared resource
Sat Feb 10 2024 17:13:02.794856 [Info] - Failed to create shared vulkan buffer: size=2032 usage=0x13
Sat Feb 10 2024 17:13:03.065323 [Info] - Failed to ref VRCompositor resource 0x10000092a
Sat Feb 10 2024 17:13:03.065966 [Error] - VulkanVRRenderer::ImportConstantBufferFromSharedHandle - Failed to import remote constant buffer.
Sat Feb 10 2024 17:13:03.068647 [Error] - Failed to open frame info buffer (Vulkan)!
Sat Feb 10 2024 17:13:03.104364 [Info] - Failed to allocate new VRCompositor semaphore
Sat Feb 10 2024 17:13:03.104447 [Info] - Failed to create shared vulkan semaphore
```
in this case, the application runs and tracks correctly, but no frames get submitted to SteamVR (or at least they aren't visible in the headset, it's still showing the default skybox)
I didn't see any errors about missing vulkan extensions, so that's likely not the issue. Monado is also able to run fine fully in box64.
I haven't been able to run SteamVR with `BOX64_log=2` yet unfortunately.
|