PVR modesetting driver buglist

This is technically a response to the “Mesa/Plasma on Arch Linux” thread, but I feel that a complete list of bugs with the PVR driver should warrant its own topic. This way, everyone can easily consult the status of the graphical support. Note that one should recommend setting at least MESA_LOADER_DRIVER_OVERRIDE to ‘pvr’ before testing.

This is the state of the PVR driver as far as things goes as of v3.8.2, at least on Chaiwat Suttipongsakul’s redistribution of Arch Linux (archlinux-image-vf2) which has prebuilt packages for Wayland:

  • Vulkan is supported but is currently not enabled due to remaining CTS test bugs.
  • Framerate issues when playing H.264 in various resolutions. This is known.
  • Xorg and Wayland both have cursor artifacts outside of GNOME.
  • Xorg fails to properly detect the modesetting driver. You have to force the default driver to ‘modesetting’ by creating a custom configuration file.
  • Xorg has BGR colors when the color depth is set to 24 bits.
  • GLES on Xorg only works correctly when the color depth is 16 bits. When using 24-bit colors, rendering appears to switch to softpipe(?) and the framerate drops significantly, despite the benchmark numbers in es2gears_x11 saying otherwise.
  • When using the Weston compositor, even when GLES is correctly working, the screen is half the refresh rate it should be. es2gears_wayland, weston-simple-egl, etc. can successfully use GLES and utilize the 3D engine, but Weston appears to handle VSync incorrectly. The GNOME compositor in the official Debian image does not suffer from this issue.
  • When KWin is using KWIN_COMPOSE=O2ES under X11 (assuming we are using a 16-bit color depth), it fails to create the GL context due to the lack of a proper framebuffer. KWin then crashes with a segmentation fault. This may either be because we have no proper framebuffer it needs, or more likely, it needs to create a GLX context before creating an EGL context (which can’t be done since OpenGL is not supported).
  • When KWin is using KWIN_COMPOSE=O2ES under Wayland, the output buffer is created and a cursor is present, but it is not hardware accelerated since KWin fails to actually create an EGL interface (error code 0x3005).
  • Xorg experiences a significant lag trying to display bitmap fonts. Xorg also fails to display bitmap fonts at all. This means that fallback window managers like TWM, legacy libraries like Motif, and generic applications like xterm will all fail to work correctly.

Are there any other bugs that I’ve missed that are still present as of the current version? Thanks to the VisionFive team from China for being open and listening to the community.


I feel very thankful that my Arch Linux image, which started as a text-only image for networking, has attracted so many people who are trying to turn it into a full-fledged desktop environment. I’m not a GUI user on VF2, but I’m willing to help make it better in the future releases.


Combing through release logs, here are bugs from previous versions that were fixed:

  • Blurry output from the video decoder when using 1080p (v3.8.2)
  • The v4l2 driver would stagnate when playing mp4 files (v3.7.5)
  • HDMI hotplugging fails with Weston in dual display mode (v3.7.5)
  • HDMI hotplugging fails with Weston (v3.4.5)
  • HDMI hotplugging issues (v3.0.4)
  • Limited HDMI resolution support (v3.0.4)
  • Kernel panic when powering up the GPU (v2.11.5)
  • HDMI times out after restoring from hibernation (v2.11.5)
  • Hibernation issues in GPU (v2.10.4)
  • Video color issues when running stf_isp_ctrl (v2.5.0)
  • ffmpeg shows black for the first 20 frames when decoding (v2.5.0)
  • gstreamer gets stuck when playing video on HDMI (v2.5.0)

If these bugs are still happening as of the latest firmware, reply here and let the team know.


I’m not sure whether it’s a PVR hardware limitation or the driver does not support the circumstances needed yet, but GLAMOR acceleration in X11, which relies on GLES, does not start because at “depth 30” it expects a pixel format of 0x1908/0x8368 (RGBA/UNSIGNED_INT_2_10_10_10_REV) whereas the PVR driver returns a pixel format of 0x1908/0x1401 (RGBA/UNSIGNED_BYTE). This happens regardless of whether DefaultDepth is set to 16 or 24.

I will also be recording HDMI videos of any bugs I can demonstrate if necessary. I’m trying to reproduce two bugs happening in GNOME where icons can get corrupted and the background shows up as white after messing around in some apps.