GL: using vaapi and showing on glimagesink on wayland loads one core for 100% on 1.16
Using this pipeline
XDG_RUNTIME_DIR=/run/user/1002 gst-launch-1.0 filesrc location=file.mkv ! matroskademux ! "video/x-h264" ! queue ! vaapih264dec ! vaapipostproc ! glimagesink -v
On 1.14, the load is around a couple 6% on a single core, when using 1.16, this is 100% (full HD).
perf top on the process shows (on 1.16)
29.61% [kernel] [k] __indirect_thunk_end
19.57% [kernel] [k] __stop___bug_table+0xabecbe
11.30% [unknown] [k] 0xfffffe000003201b
3.86% [kernel] [k] __start___jump_table+0xa0bd60
3.48% libglib-2.0.so.0.5800.3 [.] g_mutex_unlock
3.30% libglib-2.0.so.0.5800.3 [.] g_mutex_lock
1.64% [kernel] [k] descriptor.55996+0xa02020
1.52% [unknown] [k] 0xfffffe000003201e
1.40% libpthread-2.28.so [.] __libc_write
1.33% libpthread-2.28.so [.] __pthread_enable_asynccancel
1.32% libpthread-2.28.so [.] __pthread_mutex_lock
1.26% [unknown] [k] 0xfffffe0000032025
1.20% libpthread-2.28.so [.] __pthread_mutex_unlock_usercnt
1.15% libpthread-2.28.so [.] __pthread_disable_asynccancel
1.07% libglib-2.0.so.0.5800.3 [.] g_main_context_check
1.06% [kernel] [k] descriptor.56037+0xa02028
0.86% libpthread-2.28.so [.] __libc_recvmsg
0.82% libc-2.28.so [.] __poll
0.81% [unknown] [k] 0xfffffe000003200c
0.80% [kernel] [k] descriptor.48124+0xa02003
0.76% libpthread-2.28.so [.] __libc_read
0.71% [kernel] [k] orc_lookup+0xa02548
0.69% [kernel] [k] ioctl_pointer+0xa021a5
0.49% libglib-2.0.so.0.5800.3 [.] g_main_context_dispatch
0.47% libglib-2.0.so.0.5800.3 [.] g_slice_free1
0.41% [kernel] [k] descriptor.48130+0xa02014
0.35% [kernel] [k] event_exit__msgget+0xa0207a
0.34% libglib-2.0.so.0.5800.3 [.] g_main_context_prepare
0.32% [kernel] [k] init_ipc_ns+0xa021a2
0.29% [kernel] [k] descriptor.22848+0xa02010
0.25% [kernel] [k] descriptor.69342+0xa02013
0.23% libc-2.28.so [.] 0x0000000000106764
0.23% libglib-2.0.so.0.5800.3 [.] g_slice_alloc
0.21% libglib-2.0.so.0.5800.3 [.] g_main_context_query
0.21% libwayland-client.so.0.3.0 [.] wl_display_read_events
0.19% libc-2.28.so [.] 0x00000000001067c7
for both 1.16 and 1.14, when glimagesink is not used, the load is about the same
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1589 vader 20 0 697636 35688 18404 S 1.3 0.6 0:02.31 gst-launch-1.0 filesrc location=../file.mkv ! matroskademux ! video/x-h264 ! queue ! vaapih264dec ! vaapipostproc ! fakesink sync=1
1566 vader 20 0 627088 28812 18000 S 1.0 0.4 0:01.94 gst-launch-1.0 filesrc location=file.mkv ! matroskademux ! video/x-h264 ! queue ! vaapih264dec ! vaapipostproc ! fakesink sync=1
Note, in order to get this done;
i965-va-driver (1.7.3) is used on 1.14 and i965-va-driver-shaders (2.3.0) on 1.16.
Edited by Marc Leeman