Fbturbo and vc4-kms-v3d-pi4

It is my understanding that one should use vc4-kms-v3d-pi4 or vc4-fkms-v3d with xf86-video-fbturbo-git. However, when I attempt this, as X loads, the “Default Screen Section” sets a depth/fbbpp of 16/16. And the result of this is kwin_decorations fails due to the depth set to 16. No window decorations. If I remove the vc4-kms-v3d-pi4 overlay, the depth/fbbpp is set to 24/32 and window decorations work. I have attempted to force 24/32 and 32/32 but then loading fbturbo fails.

[    26.462] (II) FBTURBO(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 16/16
[    26.462] (==) FBTURBO(0): Depth 16, (==) framebuffer bpp 16
[    26.757] (II) FBTURBO(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[    26.757] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32

So, how to get fbturbo loaded as 24/32 with a fkms/kms overlay?

It is not mandatory. It all depends on your use case. Sometimes even depending on what monitor you are using. There is only one time here that I have fbturbo enabled is when I have occasional problematic issues with my Vizio tv monitor. This makes the system boot with llvmpipe instead of V3D renderer.

In this instance, I do want the llvmpipe to load. However, it loads as 16/16 with a fkms/kms overlay in place. Without an overlay, it loads 24/32, which is what I need for kwin_decorations to work properly. This to me this is counter-intuitive. I would think that with the vc4 active, it would favor the greater depth or no difference… not less.

Edit: And I have tried setting framebuffer_depth=24 but that does not seem to have an effect that I noticed. And I think this only pertains to the initial framebuffer, not the fbturbo framebuffer.

Have you tried using a different monitor to see what it does.

I have tried with both 4k and 1080p monitors, no change in behavior.

I have never seen the graphics load up with 16/16 here.

But do you load either the kms or fkms overlay? Or do you run without one of them? Without loading either one, I get 24/32.

I very seldom run with out one of them enabled. Only when all else fails trying to diagnose an issue I try all modes like with the new 5.13 kernel yesterday. In my case either everything loads ok or I get a black screen when it goes into graphics mode. Nothing in between.

It looks like it is not acquiring the right EDID info from your monitor when it goes into graphics mode. That can be a result of several things, monitor & mesa being at the top of the list. Then there is the rpi firmware and the kernel firmware.

What does tvservice -s report?
Does adding “hdmi_group=2” (forcing DMT mode) in /boot/config.txt help?

Setting the initial boot but when it goes into graphics mode then other forces take over setting up your graphics like X and mesa.

Thank you for this clarification. I mistakenly believed that the settings would carry over (via the chain X → [fbdev / fbturbo] → kms / fkms).

@Darksky is somewhat correct, I can “force” the fbturbo to go into 24/32, however there does not seem to be any “Modes” that work. All tests for various modes fail. There is no reading of the EDID in the xorg log. If I change my settings to “force” 16/16, it of course works. So I am pretty sure my attempt to force the configuration is “correct”, just not supported.

The Mali GPU works at 24/32, or so my google-foo finds. However, all references that I find for a working fbturbo on the RPi4 are all 16/16.

So I tried something different. I installed xf86-video-fbdev… and it works at 24/32, but it lags moving windows.

So it would seem that fbturbo (llvmpipe) can not run Plasma, if the RPi4 is configured “properly”… that being having either fkms or kms overlay loaded. However, currently it will run Plasma if you do not load either overlay… but then other things change… like no VC4 control of sound, input, etc. Those fallback to using the old bcm2835 drivers.

Adding modprobe.blacklist=vc4,v3d to the kernel parameters, and the current rpi firmware, mainline kernel and vc4-kms/fkms-v3d-pi4 overlay, fbturbo will create a 24/32 framebuffer. With the vc4 module loaded, fbturbo will only create a 16/16 framebuffer.

Plasma displays properly now, problem solved.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.