`--video` option does not work on a client without DMABUF support (only SHM and DRM support?)
I tried to use waypipe
from ChromeOS linux VM with their wayland implementation passed through as a client against Linux with AMD video card:
chromeos-nvidia $ waypipe --video=sw,h264 ssh nz
nz $ es2gears_wayland
The resulting performance is too low to be usable:
62 frames in 5.0 seconds = 12.356 FPS
66 frames in 5.0 seconds = 13.098 FPS
59 frames in 5.0 seconds = 11.697 FPS
The larger window I get the worse performance I see. Having added a bit of debugging into waypipe
I think it happens because ChromeOS
wayland implementation does not support DMABUFs:
$ wayland-info
interface: 'wl_compositor', version: 4, name: 1
interface: 'wl_shm', version: 1, name: 2
formats (fourcc):
0x36314752 = 'RG16'
1 = 'XR24'
0 = 'AR24'
0x34324258 = 'XB24'
0x34324241 = 'AB24'
0x3231564e = 'NV12'
interface: 'wl_drm', version: 2, name: 3
interface: 'wl_subcompositor', version: 1, name: 4
interface: 'wl_output', version: 3, name: 5
x: 0, y: 0, scale: 2,
physical_width: 280 mm, physical_height: 187 mm,
make: 'unknown', model: 'unknown',
subpixel_orientation: unknown, output_transform: normal,
mode:
width: 2560 px, height: 1706 px, refresh: 60.000 Hz,
flags: current preferred
interface: 'wl_data_device_manager', version: 3, name: 6
interface: 'wp_viewporter', version: 1, name: 7
interface: 'zwp_tablet_manager_v2', version: 1, name: 8
tablet_seat: default
tablet: Touchscreen
vendor: 0
product: 0
tablet_tool: eraser
capabilities: tilt pressure
tablet_tool: pen
capabilities: tilt pressure
interface: 'wl_seat', version: 5, name: 9
name: default
capabilities: pointer keyboard touch
keyboard repeat rate: 50
keyboard repeat delay: 200
interface: 'gtk_shell1', version: 1, name: 10
interface: 'wl_shell', version: 1, name: 11
interface: 'zwp_pointer_constraints_v1', version: 1, name: 12
interface: 'zwp_relative_pointer_manager_v1', version: 1, name: 13
interface: 'zwp_text_input_manager_v1', version: 1, name: 14
interface: 'zcr_text_input_x11_v1', version: 1, name: 15
interface: 'zcr_text_input_extension_v1', version: 11, name: 16
interface: 'xdg_wm_base', version: 3, name: 17
And as a result programs use SHM/DRM:
[3526492.422] -> wl_shm_pool@24.create_buffer(new id wl_buffer@25, 0, 348, 372, 1392, 0)
[3526492.698] -> wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 300, 24, 1200, 1)
[3526505.692] -> wl_drm@6.create_prime_buffer(new id wl_buffer@30, fd 13, 300, 300, 875713112, 0, 1216, 0, 0, 0, 0)
[3526505.919] -> wl_shm_pool@32.create_buffer(new id wl_buffer@33, 0, 696, 744, 2784, 0)
[3526725.818] -> wl_drm@6.create_prime_buffer(new id wl_buffer@28, fd 11, 300, 300, 875713112, 0, 1216, 0, 0, 0, 0)
[3526725.876] -> wl_shm_pool@26.create_buffer(new id wl_buffer@24, 0, 600, 48, 2400, 1)
[3526799.421] -> wl_drm@6.create_prime_buffer(new id wl_buffer@32, fd 11, 300, 300, 875713112, 0, 1216, 0, 0, 0, 0)
[3526799.690] -> wl_shm_pool@31.create_buffer(new id wl_buffer@34, 0, 696, 744, 2784, 0)
[3526800.654] -> wl_shm_pool@35.create_buffer(new id wl_buffer@36, 0, 600, 48, 2400, 1)
[3526863.924] -> wl_drm@6.create_prime_buffer(new id wl_buffer@26, fd 11, 300, 300, 875713112, 0, 1216, 0, 0, 0, 0)
[3529029.601] -> wl_drm@6.create_prime_buffer(new id wl_buffer@26, fd 11, 300, 300, 875713112, 0, 1216, 0, 0, 0, 0)
[3529397.841] -> wl_shm_pool@35.create_buffer(new id wl_buffer@24, 5632, 16, 15, 64, 0)
[3529671.796] -> wl_shm_pool@27.create_buffer(new id wl_buffer@31, 5632, 16, 15, 64, 0)
[3529788.327] -> wl_shm_pool@35.create_buffer(new id wl_buffer@24, 0, 696, 744, 2784, 0)
[3529789.331] -> wl_shm_pool@25.create_buffer(new id wl_buffer@38, 0, 600, 48, 2400, 1)
[3529806.057] -> wl_shm_pool@27.create_buffer(new id wl_buffer@39, 4032, 10, 16, 40, 0)
Is there a chance waypipe
could support video encoding for this case?