I tried to add the remoting-plugin, but it didn't work when Weston started.
Here is the configuration in weston.ini file:
[remote-output]
name=remote-output
mode=1280x800
host=192.168.1.103
port=5000
To figure out why it wasn't working,I added logging to the relevant processes in the remoting-plugin.
In the end, I traced the issue to an exception occurring in the third call to the gl_renderer_repaint_output() function, after two repaint processes. This exception occurs on the here
if (gr->swap_buffers_with_damage && !gr->fan_debug) {
...
ret = gr->swap_buffers_with_damage(gr->egl_display,
go->egl_surface,
egl_rects, n_egl_rects);
free(egl_rects);
...
Here is the code statement for the logging I added.
if (gr->swap_buffers_with_damage && !gr->fan_debug) {
...
pixman_region_to_egl_y_invert(output, output_damage,
&egl_rects, &n_egl_rects);
weston_log("Debug Info: [%s] %s.\n", __func__, output->name);
weston_log("Debug Info: [%s] start swap buffer.\n", __func__);
ret = gr->swap_buffers_with_damage(gr->egl_display,
go->egl_surface,
egl_rects, n_egl_rects);
weston_log("Debug Info: [%s] end swap buffer.\n", __func__);
free(egl_rects);
...
Then, when I run Weston, the weston.log file will have the following content:
Date: 2023-05-19 CST
[09:14:46.736] weston 10.0.0
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: lf-5.15.32-2.0.0+
[09:14:46.736] Command line: /usr/bin/weston --log=/run/user/0/weston.log --modules=systemd-notify.so --no-clients-resize --rdp-tls-cert=/etc/freerdp/keys/server.crt --rdp-tls-key=/etc/freerdp/keys/server.key
[09:14:46.736] OS: Linux, 5.4.70, #4 SMP PREEMPT Wed Apr 12 10:50:17 CST 2023, aarch64
[09:14:46.736] Flight recorder: enabled
[09:14:46.737] Using config file '/etc/xdg/weston/weston.ini'
[09:14:46.737] Output repaint window is 16 ms maximum.
[09:14:46.737] Loading module '/usr/lib/libweston-10/drm-backend.so'
[09:14:46.794] using FreeRDP version 2.10.0
[09:14:46.794] Trying logind launcher...
[09:14:46.818] logind: session control granted
[09:14:46.824] using /dev/dri/card1
[09:14:46.824] DRM: supports atomic modesetting
[09:14:46.824] DRM: supports GBM modifiers
[09:14:46.824] DRM: supports picture aspect ratio
[09:14:46.824] Loading module '/usr/lib/libweston-10/gl-renderer.so'
[09:14:46.829] EGL client extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_platform_wayland
EGL_EXT_platform_wayland EGL_EXT_device_query
EGL_EXT_device_drm EGL_EXT_device_drm_render_node
EGL_KHR_platform_gbm
[09:14:46.833] EGL device extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_platform_wayland
EGL_EXT_platform_wayland EGL_EXT_device_query
EGL_EXT_device_drm EGL_EXT_device_drm_render_node
EGL_KHR_platform_gbm
[09:14:46.834] EGL version: 1.5
[09:14:46.834] EGL vendor: Vivante Corporation
[09:14:46.834] EGL client APIs: OpenGL_ES OpenVG
[09:14:46.834] EGL extensions: EGL_KHR_fence_sync EGL_KHR_reusable_sync
EGL_KHR_wait_sync EGL_KHR_image EGL_KHR_image_base
EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image
EGL_EXT_image_dma_buf_import
EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_lock_surface
EGL_KHR_create_context EGL_KHR_no_config_context
EGL_KHR_surfaceless_context EGL_KHR_get_all_proc_addresses
EGL_EXT_create_context_robustness EGL_EXT_protected_surface
EGL_EXT_protected_content EGL_EXT_buffer_age
EGL_ANDROID_native_fence_sync EGL_WL_bind_wayland_display
EGL_WL_create_wayland_buffer_from_image EGL_KHR_partial_update
EGL_EXT_swap_buffers_with_damage
EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float
[09:14:46.834] EGL_KHR_surfaceless_context available
[09:14:46.841] GL version: OpenGL ES 3.1 V6.4.3.p4.398061
[09:14:46.841] GLSL version: OpenGL ES GLSL ES 3.10
[09:14:46.841] GL vendor: Vivante Corporation
[09:14:46.841] GL renderer: Vivante GC7000L
[09:14:46.841] GL extensions: GL_OES_vertex_type_10_10_10_2
GL_OES_vertex_half_float GL_OES_element_index_uint
GL_OES_mapbuffer GL_OES_vertex_array_object
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_compressed_paletted_texture GL_OES_texture_npot
GL_OES_rgb8_rgba8 GL_OES_depth_texture
GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_depth32
GL_OES_packed_depth_stencil GL_OES_fbo_render_mipmap
GL_OES_get_program_binary GL_OES_fragment_precision_high
GL_OES_standard_derivatives GL_OES_EGL_image
GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3
GL_OES_EGL_sync GL_OES_texture_stencil8
GL_OES_shader_image_atomic
GL_OES_texture_storage_multisample_2d_array
GL_OES_required_internalformat GL_OES_surfaceless_context
GL_OES_copy_image GL_OES_draw_buffers_indexed
GL_OES_texture_border_clamp GL_OES_texture_buffer
GL_OES_texture_cube_map_array GL_OES_draw_elements_base_vertex
GL_OES_texture_half_float GL_OES_texture_float
GL_KHR_blend_equation_advanced GL_KHR_debug GL_KHR_robustness
GL_KHR_robust_buffer_access_behavior
GL_EXT_texture_type_2_10_10_10_REV
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_compression_dxt1 GL_EXT_texture_format_BGRA8888
GL_EXT_texture_compression_s3tc GL_EXT_read_format_bgra
GL_EXT_multi_draw_arrays GL_EXT_frag_depth
GL_EXT_discard_framebuffer GL_EXT_blend_minmax
GL_EXT_multisampled_render_to_texture
GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float
GL_EXT_robustness GL_EXT_texture_sRGB_decode
GL_EXT_draw_buffers_indexed GL_EXT_texture_border_clamp
GL_EXT_texture_buffer GL_EXT_copy_image
GL_EXT_texture_cube_map_array GL_EXT_multi_draw_indirect
GL_EXT_draw_elements_base_vertex GL_EXT_texture_rg
GL_EXT_protected_textures GL_EXT_sRGB GL_EXT_unpack_subimage
GL_VIV_direct_texture
[09:14:46.921] GL ES 3.1 - renderer features:
read-back format: BGRA
EGL Wayland extension: yes
[09:14:46.968] event3 - SIGMACHIP USB Keyboard: is tagged by udev as: Keyboard
[09:14:46.968] event3 - SIGMACHIP USB Keyboard: device is a keyboard
[09:14:46.987] event4 - SIGMACHIP USB Keyboard Consumer Control: is tagged by udev as: Keyboard
[09:14:46.987] event4 - SIGMACHIP USB Keyboard Consumer Control: device is a keyboard
[09:14:47.005] event5 - SIGMACHIP USB Keyboard System Control: is tagged by udev as: Keyboard
[09:14:47.005] event5 - SIGMACHIP USB Keyboard System Control: device is a keyboard
[09:14:47.084] event6 - Lenovo Lenovo OpticalMouse: is tagged by udev as: Mouse
[09:14:47.085] event6 - Lenovo Lenovo OpticalMouse: device is a pointer
[09:14:47.103] event7 - Lenovo Lenovo OpticalMouse Keyboard: is tagged by udev as: Keyboard
[09:14:47.104] event7 - Lenovo Lenovo OpticalMouse Keyboard: device is a keyboard
[09:14:47.122] event8 - Lenovo Lenovo OpticalMouse Consumer Control: is tagged by udev as: Keyboard
[09:14:47.122] event8 - Lenovo Lenovo OpticalMouse Consumer Control: device is a keyboard
[09:14:47.132] event2 - gpio-keys: is tagged by udev as: Keyboard
[09:14:47.132] event2 - gpio-keys: device is a keyboard
[09:14:47.142] event0 - sc-powerkey: is tagged by udev as: Keyboard
[09:14:47.142] event0 - sc-powerkey: device is a keyboard
[09:14:47.151] event1 - eGalax_Touch_Screen: is tagged by udev as: Touchscreen
[09:14:47.152] event1 - eGalax_Touch_Screen: device is a touch device
[09:14:47.160] event9 - ltrf216a_als: not tagged as supported input device
[09:14:47.161] event9 - not using input device '/dev/input/event9'
[09:14:47.202] libinput: configuring device "SIGMACHIP USB Keyboard".
[09:14:47.202] libinput: configuring device "SIGMACHIP USB Keyboard Consumer Control".
[09:14:47.202] libinput: configuring device "SIGMACHIP USB Keyboard System Control".
[09:14:47.202] libinput: configuring device "Lenovo Lenovo OpticalMouse".
[09:14:47.202] libinput: configuring device "Lenovo Lenovo OpticalMouse Keyboard".
[09:14:47.202] libinput: configuring device "Lenovo Lenovo OpticalMouse Consumer Control".
[09:14:47.203] libinput: configuring device "gpio-keys".
[09:14:47.203] libinput: configuring device "sc-powerkey".
[09:14:47.203] Touchscreen - eGalax_Touch_Screen - /sys/devices/virtual/input/input1/event1
[09:14:47.203] libinput: configuring device "eGalax_Touch_Screen".
[09:14:47.203] input device event1 has no enabled output associated (none named), skipping calibration for now.
[09:14:47.203] DRM: head 'LVDS-1' updated, connector 91 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[09:14:47.203] DRM: head 'LVDS-1' found, connector 91 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[09:14:47.204] TLS support activated
[09:14:47.205] Registered plugin API 'weston_drm_output_api_v1' of size 32
[09:14:47.205] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
[09:14:47.205] Registered plugin API 'weston_rdp_api_v1' of size 40
[09:14:47.205] Color manager: no-op
[09:14:47.205] Output 'rdp_output' using color profile: built-in default sRGB SDR profile
[09:14:47.209] Chosen EGL config details: id: 21 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-60 type: win|pix|pbf|swap_preserved vis_id: XRGB8888 (0x34325258)
[09:14:47.209] associating input device event3 with output rdp_output (none by udev)
[09:14:47.209] associating input device event4 with output rdp_output (none by udev)
[09:14:47.209] associating input device event5 with output rdp_output (none by udev)
[09:14:47.209] associating input device event6 with output rdp_output (none by udev)
[09:14:47.209] associating input device event7 with output rdp_output (none by udev)
[09:14:47.209] associating input device event8 with output rdp_output (none by udev)
[09:14:47.209] associating input device event2 with output rdp_output (none by udev)
[09:14:47.209] associating input device event0 with output rdp_output (none by udev)
[09:14:47.210] associating input device event1 with output rdp_output (none by udev)
[09:14:47.210] Output 'rdp_output' enabled with head(s) rdp-rdp_output
[09:14:47.211] rdp output 'rdp_output' enabled
[09:14:47.211] Module '/usr/lib/libgbm.so' already loaded
[09:14:47.211] Output 'LVDS-1' using color profile: built-in default sRGB SDR profile
[09:14:47.214] Chosen EGL config details: id: 21 rgba: 8 8 8 0 buf: 24 dep: 0 stcl: 0 int: 1-60 type: win|pix|pbf|swap_preserved vis_id: XRGB8888 (0x34325258)
[09:14:47.215] Output LVDS-1 (crtc 38) video modes:
1280x800@60.0, preferred, current, 71.1 MHz
[09:14:47.215] Output 'LVDS-1' enabled with head(s) LVDS-1
[09:14:47.215] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: yes
view mask clipping: yes
explicit sync: yes
color operations: no
presentation clock: CLOCK_MONOTONIC_RAW, id 4
presentation clock resolution: 0.000000001 s
[09:14:47.215] Loading module '/usr/lib/weston/desktop-shell.so'
[09:14:47.217] launching '/usr/libexec/weston-keyboard'
[09:14:47.225] Warning: support for deprecated wl_shell interface is enabled. Please migrate legacy clients to xdg-shell.
[09:14:47.226] Loading module '/usr/lib/weston/systemd-notify.so'
[09:14:47.227] info: add 1 socket(s) provided by systemd
[09:14:47.228] Loading module '/usr/lib/libweston-10/xwayland.so'
[09:14:47.255] Registered plugin API 'weston_xwayland_v1' of size 32
[09:14:47.255] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[09:14:47.255] unlinking stale lock file /tmp/.X0-lock
[09:14:47.256] xserver listening on display :0
[09:14:47.256] launching '/usr/libexec/weston-desktop-shell'
[09:14:47.324] Debug Info: [gl_renderer_repaint_output] rdp_output.
[09:14:47.325] Debug Info: [gl_renderer_repaint_output] start swap buffer.
[09:14:47.325] Debug Info: [gl_renderer_repaint_output] end swap buffer.
[09:14:47.326] Debug Info: [gl_renderer_repaint_output] LVDS-1.
[09:14:47.326] Debug Info: [gl_renderer_repaint_output] start swap buffer.
[09:14:47.327] Debug Info: [gl_renderer_repaint_output] end swap buffer.
[09:14:48.328] Debug Info: [gl_renderer_repaint_output] rdp_output.
[09:14:48.328] Debug Info: [gl_renderer_repaint_output] start swap buffer.
[09:14:48.329] Debug Info: [gl_renderer_repaint_output] end swap buffer.
[09:14:48.335] Debug Info: [gl_renderer_repaint_output] LVDS-1.
[09:14:48.335] Debug Info: [gl_renderer_repaint_output] start swap buffer.
[09:14:48.336] Debug Info: [gl_renderer_repaint_output] end swap buffer.
[09:14:48.956] Debug Info: [gl_renderer_repaint_output] rdp_output.
[09:14:48.956] Debug Info: [gl_renderer_repaint_output] start swap buffer.
Have you tried RDP plugin?