Skip to content
  • 0 Votes
    6 Posts
    3k Views
    Sorry, yes, good points. # ./sgx_check.sh WSEGL settings [default] WindowSystem=libpvrDRMWSEGL.so DefaultPixelFormat=RGB888 #DefaultPixelFormat=RGB565 ------ ARM CPU information processor : 0 model name : ARMv7 Processor rev 2 (v7l) BogoMIPS : 597.60 Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x3 CPU part : 0xc08 CPU revision : 2 Hardware : Generic OMAP36xx (Flattened Device Tree) Revision : 0000 Serial : 0000000000000000 ------ SGX driver information Version SGX_DDK sgxddk 1.17@4948957 (release) dm37xx_linux System Version String: SGX revision = 125 ------ Framebuffer settings mode "1280x720" geometry 1280 720 1280 720 32 timings 0 0 0 0 0 0 0 accel true rgba 8/16,8/8,8/0,0/0 endmode Frame buffer device information: Name : omapdrmdrmfb Address : (nil) Size : 3686400 Type : PACKED PIXELS Visual : TRUECOLOR XPanStep : 1 YPanStep : 1 YWrapStep : 0 LineLength : 5120 Accelerator : No ------ Rotation settings 0 ------ PVR Module information Module Size Used by pvrsrvkm 393216 2 ------ Boot settings console=ttyO0,115200n8 rootwait=1 rw ubi.mtd=7,512 rootfstype=ubifs root=ubi0:compu-XXXX mtdoops.mtddev=omap2.nand earlyprintk=ttyO0,115200n8 nohlt omapfb.rotate=0 vram=40M omapfb.vram=20M,1:1M,2:1M omapfb.vrfb=y cma=64MB 5 ------ Linux Kernel version Linux compu-XXXX 5.10.168-1-ctx-g991c5ce91e #1 SMP PREEMPT Fri Apr 7 09:34:04 UTC 2023 armv7l GNU/Linux ------ Weston.ini [core] require-input=false idle-timeout=0 gbm-format=xrgb8888 #gbm-format=rgb565 [output] name=DPI-1 [libinput] touchscreen_calibrator=true calibration_helper=/bin/echo [shell] locking=false animation=none panel-position=none close-animation=none startup-animation=none focus-animation=none ------ /etc/profile.d/qt_env.sh #!/bin/sh ### QT Environment Variables ### # export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=180" export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt6/eglfs_kms_cfg.json #export QT_QPA_EGLFS_INTEGRATION=eglfs_kms export QT_QPA_EGLFS_ALWAYS_SET_MODE=1 export QT_WAYLAND_SHELL_INTEGRATION=xdg-shell # SECCOMP-BPF Sandbox does not work due to unexpected FUTEX_UNLOCK_PI call # from the pthread implementation. Disable this feature temporarily until # those issues are resolved. export QTWEBENGINE_CHROMIUM_FLAGS="--disable-seccomp-filter-sandbox" export QT_QPA_EGLFS_INTEGRATION=none export QSG_RHI_PREFER_SOFTWARE_RENDERER=0 export QT_WIDGETS_RHI_BACKEND=opengl export QT_WIDGETS_HIGHDPI_DOWNSCALE=1 export QT_WIDGETS_RHI=1 export QT_OPENGL_NO_SANITY_CHECK=1 export QT_QPA_PLATFORM="wayland-egl" export QT_WAYLAND_CLIENT_BUFFER_INTEGRATION="linux-dmabuf-unstable-v1" export QT_WAYLAND_HARDWARE_INTEGRATION="linux-dmabuf-unstable-v1" export QT_WAYLAND_SERVER_BUFFER_INTEGRATION="linux-dmabuf-unstable-v1" export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell" export QT_WAYLAND_TEXT_INPUT_PROTOCOL="zwp_text_input_v1" --- Version info: # weston --version weston 10.0.2 nsions string: EGL_EXT_client_extensions EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless GBM platform: MESA: info: Loaded libpvr_dri_support.so EGL API version: 1.4 EGL vendor string: Mesa Project EGL version string: 1.4 EGL client APIs: OpenGL_ES EGL extensions string: EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_yuv_surface EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_WL_bind_wayland_display EGL_IMG_cl_image Configurations: bf lv colorbuffer dp st ms vis cav bi renderable supported id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces --------------------------------------------------------------------- 0x01 32 0 8 8 8 8 0 0 0 0 0x34325241-- a y y win,pb 0x02 32 0 8 8 8 8 0 0 4 1 0x34325241-- a y y win,pb 0x03 32 0 8 8 8 8 24 8 0 0 0x34325241-- a y y win,pb 0x04 32 0 8 8 8 8 24 8 4 1 0x34325241-- a y y win,pb 0x05 24 0 8 8 8 0 0 0 0 0 0x34325258-- y y y win,pb 0x06 24 0 8 8 8 0 0 0 4 1 0x34325258-- y y y win,pb 0x07 24 0 8 8 8 0 24 8 0 0 0x34325258-- y y y win,pb 0x08 24 0 8 8 8 0 24 8 4 1 0x34325258-- y y y win,pb 0x09 16 0 5 6 5 0 0 0 0 0 0x36314752-- y y y win,pb 0x0a 16 0 5 6 5 0 0 0 4 1 0x36314752-- y y y win,pb 0x0b 16 0 5 6 5 0 24 8 0 0 0x36314752-- y y y win,pb 0x0c 16 0 5 6 5 0 24 8 4 1 0x36314752-- y y y win,pb MESA: info: Unloaded libpvr_dri_support.so Wayland platform: MESA: info: Loaded libpvr_dri_support.so EGL API version: 1.4 EGL vendor string: Mesa Project EGL version string: 1.4 EGL client APIs: OpenGL_ES EGL extensions string: EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_present_opaque EGL_EXT_swap_buffers_with_damage EGL_EXT_yuv_surface EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_WL_bind_wayland_display EGL_WL_create_wayland_buffer_from_image EGL_IMG_cl_image Configurations: bf lv colorbuffer dp st ms vis cav bi renderable supported id sz l r g b a th cl ns b id eat nd gl es es2 vg surfaces --------------------------------------------------------------------- 0x01 32 0 8 8 8 8 0 0 0 0 0x00-- a y y win,pb 0x02 32 0 8 8 8 8 0 0 4 1 0x00-- a y y win,pb 0x03 32 0 8 8 8 8 24 8 0 0 0x00-- a y y win,pb 0x04 32 0 8 8 8 8 24 8 4 1 0x00-- a y y win,pb 0x05 24 0 8 8 8 0 0 0 0 0 0x00-- y y y win,pb 0x06 24 0 8 8 8 0 0 0 4 1 0x00-- y y y win,pb 0x07 24 0 8 8 8 0 24 8 0 0 0x00-- y y y win,pb 0x08 24 0 8 8 8 0 24 8 4 1 0x00-- y y y win,pb MESA: info: Unloaded libpvr_dri_support.so --- QT Settings: export QT_QPA_PLATFORM="wayland-egl" export QT_WAYLAND_SHELL_INTEGRATION="xdg-shell" export QT_WIDGETS_RHI=1 export QT_WIDGETS_RHI_BACKEND=opengl Results (All taken with the PVRTune server running for looking at the results) Running (Qt 6.8.3): rhiwindow on Weston compositor: ~3.5 fps rhiwindow on QT Fancy compositor: ~3 fps rhiwindow in sway compositor : 0.5 fps. ~2.3 fps when pvrtune is not running rhiwindow without compositor, using EGLFS: 35 fps Note: Looks like GLES2 doesn't connect fully in Sway: 00:00:01.840 [wlr] [render/gles2/renderer.c:704] Failed to create GLES2 renderer calculator (maximized): Weston : ~1/4 second delay in reaction to touch. Quickly pressing a number 5 times takes 12 seconds to resolve all 5 presses (counting from end of the last touch). QT Fancy compositor: ~1/4 s delay in reaction, 5 numbers takes 5 seconds to resolve all presses. Note that maximization of the calculator fails, so this is not as large as the Weston example. Error: Can't configure xdg_toplevel with an invalid size QSize(-1, -1) Sway: Several seconds between press and response. Sway: Run WITHOUT any RHI components (unset the QT_RHI... variables): ~1/4 second delay in response, ~1 second to resolve all presses. Not utilizing GPU at all. When I turn off PVTune, no noticable delay in either case. I think this actually indicates to me that there is a problem in my EGL setup with QT, more than the compositor, because in the pure-GPU case of using sway without RHI, we are very fast. However, it should be noted that the weston-simple-egl application gets around 30 fps when fullscreened, and 60fps when about 1/2 size and does utilize the GPU. I will post this information in the PVR forum, as it could be a problem with my PowerVR EGL connection... but it's odd to me that the simple-egl test application in Weston works perfectly well. that QT with EGLFS (no compositor) is substantially faster, and I get ~35 FPS when running rhiwindow and see good GPU utilization. So it's not QT->EGL, and it's not Weston->EGL, it's QT-><any Compositor>->EGL which has a slowdown, even further in simple applications like the calculator than pure-cpu rendering. EDIT: I wrote up a post to debug the EGL/PowerVR side here: https://forums.imgtec.com/t/qt-slow-to-connect-to-pvr-using-weston/4167/2 What I noticed while writing it was that there is a big difference in performance between QT having to change the calculator number or not. (Pressing "clear" 5x was at least twice as fast as pressing a number 5x).