Meumeu / WiVRn

An OpenXR streaming application to a standalone headset
GNU General Public License v3.0
134 stars 22 forks source link

ERROR [comp_wivrn_create_images] Failed to create video encoder: Cannot open video encoder codec: Function not implemented #73

Closed makenb closed 2 weeks ago

makenb commented 3 weeks ago

When I connect The server core dumps:

WiVRn v0.15 starting Removing stale socket file /run/user/1001/wivrn_comp_ipc Service published: OptiPlex-5060 Server started, PID 19497 INFO [ipc_server_main] 'v21.0.0-4402-gffb71af2' starting up... DEBUG [comp_main_create_system_compositor] Doing init 0x5bcda53518e0 WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice INFO [create_device] Created device and COMPUTE queue with QUEUE_GLOBAL_PRIORITY_MEDIUM. INFO [vk_print_device_info] Device info: name: Intel(R) UHD Graphics 630 (CFL GT2) vendor: 0x8086 product: 0x3e92 deviceType: VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU apiVersion: 1.3.255 driverVersion: 0x05c02001 INFO [vk_print_features_info] Features: timestamp_compute_and_graphics: true timestamp_period: 83.333336 timestamp_valid_bits: 36 timeline_semaphore: true INFO [vk_print_external_handles_info] Supported images: VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: color import=true export=true depth import=true export=true INFO [vk_print_external_handles_info] Supported fences: VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: true VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: true INFO [vk_print_external_handles_info] Supported semaphores: VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(binary): true VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(binary): true VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(timeline): false VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(timeline): true [hevc_vaapi @ 0x5bcda54ecd40] No usable encoding entrypoint found for profile VAProfileHEVCMain (17). ERROR [comp_wivrn_create_images] Failed to create video encoder: Cannot open video encoder codec: Function not implemented Server exited, exit status 0, received signal ABRT (Aborted), core dumped pulseaudio module 68 unloaded pulseaudio module 69 unloaded

makenb commented 3 weeks ago

This may or may not be relevant:

libva info: VA-API version 1.14.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_14 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.14 (libva 2.12.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 () vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD

xytovl commented 3 weeks ago

Your GPU does not support HEVC encode, which is the default.

See in https://github.com/Meumeu/WiVRn/blob/master/docs/configuration.md#encoders how to configure for h264. However, don't expect reasonable performance with such a GPU.

makenb commented 2 weeks ago

Oh bummer, Im not going to play games, just wanted to maybe have a xterm or something,,

I tried with h264 as well, but get the same error and crash:

Service published: OptiPlex-5060 Server started, PID 34685 INFO [ipc_server_main] 'v21.0.0-4402-gffb71af2' starting up... DEBUG [comp_main_create_system_compositor] Doing init 0x62936d097160 WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice INFO [create_device] Created device and COMPUTE queue with QUEUE_GLOBAL_PRIORITY_MEDIUM. INFO [vk_print_device_info] Device info: name: Intel(R) UHD Graphics 630 (CFL GT2) vendor: 0x8086 product: 0x3e92 deviceType: VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU apiVersion: 1.3.255 driverVersion: 0x05c02001 INFO [vk_print_features_info] Features: timestamp_compute_and_graphics: true timestamp_period: 83.333336 timestamp_valid_bits: 36 timeline_semaphore: true INFO [vk_print_external_handles_info] Supported images: VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: color import=true export=true depth import=true export=true INFO [vk_print_external_handles_info] Supported fences: VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: true VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: true INFO [vk_print_external_handles_info] Supported semaphores: VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(binary): true VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(binary): true VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(timeline): false VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(timeline): true ERROR [comp_wivrn_create_images] Failed to create video encoder: Failed to create encoder h264 Server exited, exit status 0, received signal ABRT (Aborted), core dumped pulseaudio module 164 unloaded pulseaudio module 165 unloaded Service published: OptiPlex-5060 ^Cmaken@optiplex-5060:~/WiVRn$

xytovl commented 2 weeks ago

You have to change the codec, not encoder:

{
    "bitrate": 50000000,
    "encoders": [
        {
            "encoder": "vaapi",
            "codec": "h264"
        }
    ]
}
makenb commented 2 weeks ago

Thank you for your help! Now I am getting a different crash:

Server started, PID 43749 INFO [ipc_server_main] 'v21.0.0-4402-gffb71af2' starting up... DEBUG [comp_main_create_system_compositor] Doing init 0x641dd2894b40 WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice WARN [build_device_extensions] Duplicate device extension VK_KHR_external_memory_fd not added twice INFO [create_device] Created device and COMPUTE queue with QUEUE_GLOBAL_PRIORITY_MEDIUM. INFO [vk_print_device_info] Device info: name: Intel(R) UHD Graphics 630 (CFL GT2) vendor: 0x8086 product: 0x3e92 deviceType: VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU apiVersion: 1.3.255 driverVersion: 0x05c02001 INFO [vk_print_features_info] Features: timestamp_compute_and_graphics: true timestamp_period: 83.333336 timestamp_valid_bits: 36 timeline_semaphore: true INFO [vk_print_external_handles_info] Supported images: VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: color import=true export=true depth import=true export=true INFO [vk_print_external_handles_info] Supported fences: VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: true VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: true INFO [vk_print_external_handles_info] Supported semaphores: VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(binary): true VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(binary): true VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(timeline): false VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(timeline): true [h264_vaapi @ 0x641dd2a2dc80] Driver does not support any RC mode compatible with selected options (supported modes: CQP). ERROR [comp_wivrn_create_images] Failed to create video encoder: Cannot open video encoder codec: Invalid argument Server exited, exit status 0, received signal ABRT (Aborted), core dumped pulseaudio module 168 unloaded pulseaudio module 169 unloaded

xytovl commented 2 weeks ago

UHD Graphics 630 is supposed to have hevc encode, and support the required features (constant bitrate for latest error).

Your vaapi setup may be incomplete.

I do not plan to add support for hardware that doesn't have CBR.

makenb commented 2 weeks ago

You were right I am running ubuntu and I needed to install some more packages:

intel-opencl-icd intel-media-va-driver intel-media-va-driver-non-free

Maybe some others... Now it is running vaapi h265! I was able to run xrgears to check.

Thank You

f17cce772ada85557ae82c5f201a9d38 png