We recently bought a Banana Pi BPI-F3 RISC-V board with the intention of using it as a platform for running a graphics application written in Qt6.
However, both on Minimal (with X11 installed) and on Desktop versions of Bianbu 2.0.1, even the simplest graphics in FullHD work with 40-42 FPS maximum. At the same time, when using OpenGL, the FPS drops to 1 frame every 5-10 seconds.
The glmark2 tests showed 7 FPS, and also that softpipe is used as the GL_renderer. Although when running WebGL Aquarium, the web browser gives 30 FPS.
Can someone tell me what we did wrong? Because when opening several windows with graphics, everything works much faster than in one large one.
➜ ~ glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
glmark2 2023.01
=======================================================
OpenGL Information
GL_VENDOR: Mesa/X.org
GL_RENDERER: softpipe
GL_VERSION: 3.3 (Compatibility Profile) Mesa 22.3.5
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
Surface Size: 800x600 windowed
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 7 FrameTime: 160.755 ms
Just got the board and used the Bianbu 2.0.4 image and same here. No HW accelerated OpenGL or Vulkan (vulkainfo just segfaults), only softpipe. Are the graphic drivers missing from the image or are there no proper GPU drivers at all?
Hi, same issue here:
A Qt6 application, even without OpenGL, renders so slowly that it freezes and causes one CPU core to stay at 100% usage continuously.
I managed to run OpenGL programs and games, but they only work with softpipe and run at very low FPS.
However, the WebGL Aquarium on Chromium runs smoothly at 30 FPS, so there must be some drivers available, but it seems like there’s a missing porting or something similar for OpenGL.
So I talked to the SpacemiT guys and they told me to install the following:
cmake, debhelper-compat (= 12), libegl1-mesa-dev, libgles2-mesa-dev, libwayland-dev, libwayland-egl1-mesa, libwayland-cursor0, libc6-dev, ocl-icd-opencl-dev, img-gpu-powervr, libgbm-dev, libdrm-dev
After that the k1x-gpu-test compiles fine and the cube demo renders @60fps.
When compiling glmark2 from sources I noticed that the executables are packaged separately so I run sudo apt install glmark2-drm glmark2-es2-drm. The SpacemiT guys told me that the actual situation is that OpenGL rendering is used instead of OpenGL ES rendering when running glmark2-drm, which causes the error.
The current driver implements the OpenGL API using software rendering, and GPU hardware rendering is not enabled. They are actively trying to use zink+vulkan method to implement the rendering path of the opengl api to solve the problem.
You can run glmark2-es2-drm using e.g. sudo chvt 5