Banana Pi BPI-F3 RISC-V OpenGL problem

Hello!

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.

I’m on bianbu 2.2 is there any news regarding this issue?

So I booted bianbu ver. 2.2 from SD card but I am unable to get powervr drm to work. When running glxgears I get:

GL_RENDERER = softpipe

I noticed that the powervr drm is built in the kernel and not provided as separate modules.

When searching through dmesg I found the following message:

[drm] Initialized pvr 24.2.6603887 20170530 for cac00000.imggpu on minor 0

img-gpu-powervr seems to be installed version 24.2-6603887bb3

Also when trying to compile k1x-gpu-test I’m getting fatal error: GLES/gl3.h: No such file or directory

Am I doing something wrong?

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