bs_pi
Posts: 24
Joined: Tue May 16, 2017 9:26 am

Re: Multiple Frame buffer beta testers wanted

Thu Jun 06, 2019 1:09 pm

Hi Jamesh,

I join forces with aBUGS. It would be great to have an update on this as it really would be an amazing feature for many projects.

All the best!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23981
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Thu Jun 06, 2019 1:35 pm

bs_pi wrote:
Thu Jun 06, 2019 1:09 pm
Hi Jamesh,

I join forces with aBUGS. It would be great to have an update on this as it really would be an amazing feature for many projects.

All the best!
Ok, we are a bit delayed on this, and it's looking like we may be moving to a (F)KMS/DRM based system - ie the new MESA 3D driver. This combines with these changes to give a better overall system. AIUI, you would still be able to run a legacy mode, as described in this thread, but if FKMS is enabled, you get a rather more sophisticated system.

Not sure of timescales, a month or so I would think, but nothing is concrete.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

User avatar
davidcoton
Posts: 4212
Joined: Mon Sep 01, 2014 2:37 pm
Location: Cambridge, UK

Re: Multiple Frame buffer beta testers wanted

Thu Jun 06, 2019 4:37 pm

jamesh wrote:
Thu Jun 06, 2019 1:35 pm
nothing is concrete.
Have you tried a concrete frame buffer? :lol:
Signature retired

aBUGSworstnightmare
Posts: 1501
Joined: Tue Jun 30, 2015 1:35 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 10, 2019 8:50 am

jamesh wrote:
Thu Jun 06, 2019 1:35 pm
bs_pi wrote:
Thu Jun 06, 2019 1:09 pm
Hi Jamesh,

I join forces with aBUGS. It would be great to have an update on this as it really would be an amazing feature for many projects.

All the best!
Ok, we are a bit delayed on this, and it's looking like we may be moving to a (F)KMS/DRM based system - ie the new MESA 3D driver. This combines with these changes to give a better overall system. AIUI, you would still be able to run a legacy mode, as described in this thread, but if FKMS is enabled, you get a rather more sophisticated system.

Not sure of timescales, a month or so I would think, but nothing is concrete.
hi jamesh,
Will this latest MESA3D driver include support for DSI displays?

Looking forward to see what's next.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23981
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 10, 2019 9:13 am

aBUGSworstnightmare wrote:
Mon Jun 10, 2019 8:50 am
jamesh wrote:
Thu Jun 06, 2019 1:35 pm
bs_pi wrote:
Thu Jun 06, 2019 1:09 pm
Hi Jamesh,

I join forces with aBUGS. It would be great to have an update on this as it really would be an amazing feature for many projects.

All the best!
Ok, we are a bit delayed on this, and it's looking like we may be moving to a (F)KMS/DRM based system - ie the new MESA 3D driver. This combines with these changes to give a better overall system. AIUI, you would still be able to run a legacy mode, as described in this thread, but if FKMS is enabled, you get a rather more sophisticated system.

Not sure of timescales, a month or so I would think, but nothing is concrete.
hi jamesh,
Will this latest MESA3D driver include support for DSI displays?

Looking forward to see what's next.
Yes.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23981
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 9:58 am

OK, so it should be a bit clearer about why I've not posted much on this recently! A lot of the multi buffer support is now in the Buster image for the Pi4, and is also applicable to the Pi3 and earlier.

You can either use the Mesa V3D driver, or leave it off on older models, set max_framebuffers=2 in config.txt and hopefully the legacy graphics stack will create multiple FB's in /dev. When using the Mesa driver you can use the screen configuration utility to create extended desktops over the display and LCD.

Would be useful if people could test it and give me any problem reports.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7458
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 10:15 am

As an extension to what James has posted, whilst the legacy driver creates /dev/fb0 and /dev/fb1, DRM/KMS creates a combined framebuffer under /dev/fb0.
You can then control what proportion of that framebuffer shows on each display either via libdrm, or under X you'll find xrandr allows easy control (the Screen Configuration app under Preferences within Raspbian is a slightly cleaned up version of arandr which sits on top of that).

One Pi0-3 the one main restriction is going to be that the 3D hardware (which is used for all the composition) can only render to an output buffer that is up to 2048x2048. So you could do dual XGA side by side, or 1920x1024 top/bottom, but not 720p side by side.
(Raspberry Pi 4 can go up to 7680x7680, so 4k side by side is possible)

DSI and DPI screens will show up as additional displays. The screen geometry will be passed up from the firmware as it is defined in config.txt or the DSI display config.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 1501
Joined: Tue Jun 30, 2015 1:35 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 1:18 pm

He guys! First of all a big THANK YOU for this!
Can't wait to test the new features on my CM3 hardware.

How many display can be connected to a RPi4?
It has DSI + 2x HDMI + DPI

I assume DSI + DPI is still a no go or are the hardware restrictions gone now? Speaking of an RPi 4 is it possible now to use both HDMI outputs + DSI + DPI?
Sorry, but as I don't have a RPi4 on hands (as I will wait for the 4GB version to hit the shelves) I need to ask a question which I could easily answer myself with the board on hands.

And ... looking forward to see a Compute Module 4 which exposed dual HDMI! Sure, I assume you want to be backwards compatile to CM1/CM3 but changing to another standard might solve the problem with lack of I/O pins on the DDR2 footprint. Personally thinking of Q7 size with MXM connector. Anyhow, will stay tuned to see next generation of Rpi Compute Module

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7458
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 1:32 pm

aBUGSworstnightmare wrote:
Mon Jun 24, 2019 1:18 pm
How many display can be conencted to a RPi4?
It has DSI + 2x HDMI + DPI

I assume DSI + DPI is still a now go or are the hardware restrictions gone now? Speaking of an RPi 4 is it possible now to use both HDMI outputs + DSI?
Sorry, but as I don't have a RPi4 on hands (as I will wait for the 4GB vesrion to hit the shelves) I ned to ask a question which I could easily answer myself with the board on hands.
I've posted this answer in a couple of places now, but anyway.
The hardware (HVS) has 3 composition channels, however the third one has always been reserved for offscreen composition to memory (potentially with transpose) rather than onscreen composition. Removing that assumption would be a significant amount of work in the firmware, so is likely to be left until we have the fullly open KMS driver sorted (and I’m not sure how easy it is to do there either).

On Pi4 the routing between HVS channels and pixelvalves/outputs has been relaxed.
- DSI0 and DPI have to be run off HVS channel 0.
- VEC has to be off HVS channel 1.
- Transposer has to be off channels 0 or 2.
- DSI1 and the two HDMIs can be routed off any HVS channel, however we are defaulting to HDMI0 off channel 1, and DSI1/HDMI1 off channel 0.
So in theory DPI + DSI1 is possible on Pi4, but it needs a change in the assignments.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

sergio_m
Posts: 1
Joined: Sat Apr 06, 2019 3:23 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 3:48 pm

6by9 wrote:
Mon Jun 24, 2019 10:15 am
As an extension to what James has posted, whilst the legacy driver creates /dev/fb0 and /dev/fb1, DRM/KMS creates a combined framebuffer under /dev/fb0.
You can then control what proportion of that framebuffer shows on each display either via libdrm, or under X you'll find xrandr allows easy control (the Screen Configuration app under Preferences within Raspbian is a slightly cleaned up version of arandr which sits on top of that).

One Pi0-3 the one main restriction is going to be that the 3D hardware (which is used for all the composition) can only render to an output buffer that is up to 2048x2048. So you could do dual XGA side by side, or 1920x1024 top/bottom, but not 720p side by side.
(Raspberry Pi 4 can go up to 7680x7680, so 4k side by side is possible)

DSI and DPI screens will show up as additional displays. The screen geometry will be passed up from the firmware as it is defined in config.txt or the DSI display config.
Hi, i have tried updating the kernel but after all the pi 3 B doesn't start anymore. Any suggestion?

bs_pi
Posts: 24
Joined: Tue May 16, 2017 9:26 am

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 4:33 pm

Hi,
Great to see the new RPi 4 and the upgrades on Raspbian to support multi screens.
It has been mentioned that multiscreen will be compatible with RPi 3, however I have just now do a dist-upgrade and I do not see Screen Configuration app under Preferences. Is there anything I am missing? Any advice on how to use the new multiscreen features on a RPi 3+?
Thank you.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7458
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Multiple Frame buffer beta testers wanted

Mon Jun 24, 2019 5:32 pm

bs_pi wrote:
Mon Jun 24, 2019 4:33 pm
Hi,
Great to see the new RPi 4 and the upgrades on Raspbian to support multi screens.
It has been mentioned that multiscreen will be compatible with RPi 3, however I have just now do a dist-upgrade and I do not see Screen Configuration app under Preferences. Is there anything I am missing? Any advice on how to use the new multiscreen features on a RPi 3+?
Thank you.
Have you installed Buster? Screen Configuration is part of the Buster release, not an upgrade to Stretch.
You also need to enable the vc4-fkms-v3d driver.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

bs_pi
Posts: 24
Joined: Tue May 16, 2017 9:26 am

Re: Multiple Frame buffer beta testers wanted

Tue Jun 25, 2019 12:43 pm

Thank you '6by9', I did not realise that together with the RPi 4 you also released the new version of Raspbian...a lot of hard work at the Raspberry Pi headquarters.
I will give a try to the new version.
Thank you!

yunjang
Posts: 1
Joined: Wed Jun 26, 2019 8:25 pm

Re: Multiple Frame buffer beta testers wanted

Wed Jun 26, 2019 8:31 pm

Hi,
I'm looking for a way to use a raspberry official touch lcd (via DSI) as well as the HDMI screen, and finally the Raspbian Buster seems making things much easier. However, when I fresh installed the Buster image and enabled vc4-fkms-v3d (I think this is through the raspi-config > advanced option ?), I could see the Screen configuration tool under Preferences, but could not find a way to enable DSI touch screen.
Can you help me how to enable the DSI touch screen?
Under the screen configuration tool, I could only see Composite and HDMI connections.
DSI screen is on and displays all white screen.

Thanks!
Yun

aBUGSworstnightmare
Posts: 1501
Joined: Tue Jun 30, 2015 1:35 pm

Re: Multiple Frame buffer beta testers wanted

Thu Jun 27, 2019 7:22 am

6by9 wrote:
Mon Jun 24, 2019 1:32 pm
...
On Pi4 the routing between HVS channels and pixelvalves/outputs has been relaxed.
- DSI0 and DPI have to be run off HVS channel 0.
- VEC has to be off HVS channel 1.
- Transposer has to be off channels 0 or 2.
- DSI1 and the two HDMIs can be routed off any HVS channel, however we are defaulting to HDMI0 off channel 1, and DSI1/HDMI1 off channel 0.
So in theory DPI + DSI1 is possible on Pi4, but it needs a change in the assignments.
Hi 6by6 and jamesh,

started to test BUSTER on my CM3L based hardware with dual display support (HDMI + DPI).

Sorry to say, but can't get dual display running with Buster! HDMI and DPI on its own were working, but as soon as I enable both of them the HDMI screen will start to show the splash screen for the second display and then going nuts.
I will post a video later but my first guess is that your comment above('DSI1 and the two HDMIs can be routed off any HVS channel, however we are defaulting to HDMI0 off channel 1, and DSI1/HDMI1 off channel 0') is not correct. To me it looks like DPI and HDMI (let's call it 0 for consitency as the RPi 3 only has one) both use channel 0.

Can you please check and also let me know how to change the 'default routing'?

Here is my simple config.txt for your reference

Code: Select all

disable_overscan=1
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
hdmi_drive=1
dtparam=audio=on

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
framebuffer_priority=2

gpu_mem=208

# ---------------------------------------------
# DPI timing definitions Nexus 7in
# ---------------------------------------------
dtoverlay=dpi24
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=494631
dpi_timings=800 1 14 16 32 1280 1 1 1 1 0 0 0 60 0 66800000 5

# ---------------------------------------------
# HDMI timing definitions Nexus 7in
# ---------------------------------------------
hdmi_group=2
hdmi_mode=87
hdmi_timings=800 1 14 16 32 1280 1 1 1 1 0 0 0 60 0 66800000 5
edit: my Pi4 should arrive today so I can test the same (HDMI + DPI) for it as well. Will check the DSI1 later ... as I need to pull the screen from the housing first.

This is what it looks like in vnc viewer
Bildschirmfoto 2019-06-27 um 10.45.34.png
Bildschirmfoto 2019-06-27 um 10.45.34.png (227.51 KiB) Viewed 1470 times

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 7458
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Multiple Frame buffer beta testers wanted

Thu Jun 27, 2019 9:41 am

aBUGSworstnightmare wrote:
Thu Jun 27, 2019 7:22 am
Sorry to say, but can't get dual display running with Buster! HDMI and DPI on its own were working, but as soon as I enable both of them the HDMI screen will start to show the splash screen for the second display and then going nuts.
I will post a video later but my first guess is that your comment above('DSI1 and the two HDMIs can be routed off any HVS channel, however we are defaulting to HDMI0 off channel 1, and DSI1/HDMI1 off channel 0') is not correct. To me it looks like DPI and HDMI (let's call it 0 for consitency as the RPi 3 only has one) both use channel 0.

Can you please check and also let me know how to change the 'default routing'?
My comment started with "On Pi4".
Earlier Pis are different with HDMI or VEC going through HVS channel 1 to pixelvalve 2. DSI and DPI go through HVS channel 0 to pixelvalve 0 for DPI or 1 for DSI1.
aBUGSworstnightmare wrote:Here is my simple config.txt for your reference

Code: Select all

disable_overscan=1
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
hdmi_drive=1
dtparam=audio=on

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
dtoverlay=vc4-fkms-v3d
max_framebuffers=2
framebuffer_priority=2

gpu_mem=208

# ---------------------------------------------
# DPI timing definitions Nexus 7in
# ---------------------------------------------
dtoverlay=dpi24
enable_dpi_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=494631
dpi_timings=800 1 14 16 32 1280 1 1 1 1 0 0 0 60 0 66800000 5

# ---------------------------------------------
# HDMI timing definitions Nexus 7in
# ---------------------------------------------
hdmi_group=2
hdmi_mode=87
hdmi_timings=800 1 14 16 32 1280 1 1 1 1 0 0 0 60 0 66800000 5
edit: my Pi4 should arrive today so I can test the same (HDMI + DPI) for it as well. Will check the DSI1 later ... as I need to pull the screen from the housing first.

This is what it looks like in vnc viewer
Bildschirmfoto 2019-06-27 um 10.45.34.png
hdmi_timings is going to be the issue with FKMS. We've done our best with backwards compatibility, but DRM/KMS work in a slightly different way.

For HDMI displays, KMS is taking the EDID and parsing it to generate the modes list. It knows nothing about hdmi_timings except that the firmware is going to have stuck a "video=HDMI-A-1=800x1280" on the command line.
"xrandr --verbose" when in X will give you the full rundown of the modes it has enumerated.

If you're in X, then adding modes is done through xrandr, and is common for all mainline Linux platforms. I haven't checked it out, but https://askubuntu.com/questions/377937/ ... resolution would be the route I would expect to go.

When in the console life is a little more tricky. You can either provide the firmware an EDID file that provides the correct detailed timings, or you should be able to add your own line of "video=HDMI-A-1:[email protected]" to the end of /boot/cmdline.txt, and the kernel will then use the standard VESA Generic Timing Formula (GTF) to generate a matching mode. This should be same as you'd get from using the gtf command, but these are slightly different from the CVT. Google may pull up some other alternatives for you.
It may be possible to add an additional firmware request for HDMI monitors to see if hdmi_timings has been set up, and copy the values across, but it won't be a huge priority.

And VNC will always see the complete framebuffer under KMS, same as it would on a dual-head x86 box. DRM creates a single framebuffer the size of the overall display, and then tells each display which bit of that to render.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

matias
Posts: 10
Joined: Mon Jun 11, 2012 1:08 pm

Re: Multiple Frame buffer beta testers wanted

Fri Jun 28, 2019 12:08 pm

Seems to me that Pi4 owners all are beta testers now ;)
I have two devices (HDMI multiviewers, totally different brands and internals) that make the Pi4 fail on boot when both HDMI cables are connected. The kernel loads and starts doing something (four small raspberries visible), but then stops on a blank console. With a single cable connected it boots fine, with two ports connected to the same TV also boots fine. Any clues? :)
OS - stock Raspbian along with apt update && apt upgrade

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23981
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Fri Jun 28, 2019 1:32 pm

matias wrote:
Fri Jun 28, 2019 12:08 pm
Seems to me that Pi4 owners all are beta testers now ;)
I have two devices (HDMI multiviewers, totally different brands and internals) that make the Pi4 fail on boot when both HDMI cables are connected. The kernel loads and starts doing something (four small raspberries visible), but then stops on a blank console. With a single cable connected it boots fine, with two ports connected to the same TV also boots fine. Any clues? :)
OS - stock Raspbian along with apt update && apt upgrade
Wrong place to ask this question.. Probably best to start a new thread.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

matias
Posts: 10
Joined: Mon Jun 11, 2012 1:08 pm

Re: Multiple Frame buffer beta testers wanted

Mon Jul 01, 2019 9:08 am

Sorry for not being too specific about describing the issue - I thought it was KMS/FKMS V3D-connected, so I posted here. The right place to go is obviously https://www.raspberrypi.org/forums/view ... 8&t=243886

KaraokeAmerica
Posts: 4
Joined: Wed Jul 10, 2019 2:52 pm

Re: Multiple Frame buffer beta testers wanted

Tue Aug 27, 2019 3:13 pm

yunjang wrote:
Wed Jun 26, 2019 8:31 pm
I could see the Screen configuration tool under Preferences, but could not find a way to enable DSI touch screen.
Can you help me how to enable the DSI touch screen?
Under the screen configuration tool, I could only see Composite and HDMI connections.
DSI screen is on and displays all white screen.
Yun, did you find a solution for this? I am having precisely the same issue on a Pi3B+.

Thanks!

aBUGSworstnightmare
Posts: 1501
Joined: Tue Jun 30, 2015 1:35 pm

Re: Multiple Frame buffer beta testers wanted

Tue Aug 27, 2019 3:34 pm

Ypu can have only two displays connected. Not all combinations are possible (find more indo from this thread).

aBUGSworstnightmare
Posts: 1501
Joined: Tue Jun 30, 2015 1:35 pm

Re: Multiple Frame buffer beta testers wanted

Tue Aug 27, 2019 3:41 pm

This post shows how to enable dual display support with legacy driver on Buster (basically result from this beta testings)
https://www.raspberrypi.org/forums/view ... 3&t=246384

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23981
Joined: Sat Jul 30, 2011 7:41 pm

Re: Multiple Frame buffer beta testers wanted

Tue Aug 27, 2019 5:24 pm

I think since this code was released with the Pi4, this thread can now close.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

Return to “General discussion”