No output on display with Weston using fbdev backend

Pekka Paalanen ppaalanen at gmail.com
Wed Mar 21 14:54:02 UTC 2018


On Wed, 21 Mar 2018 19:45:36 +0530
nsolanki at codeaurora.org wrote:

> On 2018-03-21 19:42, nsolanki at codeaurora.org wrote:
> > On 2018-03-21 14:52, Pekka Paalanen wrote:  
> >> On Wed, 21 Mar 2018 14:40:13 +0530
> >> nsolanki at codeaurora.org wrote:
> >>   
> >>> Hi Wayland Team,
> >>> 
> >>> 
> >>> I am using weston 1.9.0-r0 version and compiled weston for fbdev
> >>> backend.
> >>> 
> >>> But I do not see any output on display. Basically I do not see call
> >>> reaching to "ioctl(fd, FBIOPUT_VSCREENINFO, &varinfo)" in function
> >>> fbdev_set_screen_info().
> >>> 
> >>> 
> >>> So, if I add a call "ioctl(fd,  FBIOPUT_VSCREENINFO, &varinfo)" in
> >>> function fbdev_output_repaint_pixman(), I can see output on display.
> >>> 
> >>> Should I add FBIOPUT_VSCREENINFO ioctl in function
> >>> fbdev_output_repaint_pixman() ?
> >>> Can you please help me regarding this?  
> >> 
> >> Hi,
> >> 
> >> it is unlikely to find help with such an old Weston, even more so with
> >> the fbdev backend which at least I would like to just delete already.
> >> 
> >> But the fbdev backend is still in Weston, so I'd recommend trying a
> >> more recent version. You can also check git to see if there are code
> >> changes in the fbdev-backend.
> >> 
> >> I don't think FBIOPUT_VSCREENINFO at every repaint is good in any 
> >> case.
> >> 
> >> You might be interested in reviewing this patch or the whole series:
> >> https://patchwork.freedesktop.org/patch/200333/
> >> 
> >> What I've occasionally tested the fbdev-backend, I've never needed a
> >> call to FBIOPUT_VSCREENINFO, so your use case must be somehow
> >> different. Explaining exactly how and in what kind of a system and
> >> environment you are running Weston could help. E.g. is it a secondary
> >> fbdev device, or using UDL driver.
> >> 
> >> 
> >> Thanks,
> >> pq  
> > 
> > Hi,
> > 
> > In our FB driver FBIOPUT_VSCREENINFO internally calls a commit() call,
> > which actually displays content on panel.
> > So, it is needed it seems. I am not sure how drawing in mmap() ed
> > memory by opening /dev/fb0 can display content on panel without a
> > commit() call as weston is currently doing.

Hi,

it works because the mmapped memory is already continuously and
repeatedly being scanned out. There is no per-frame "commit" in fbdev
ABI. The ABI implies that any change to the mmapped memory will be
immediately visible on screen, if you write to the on-screen memory
area. This is just how fbdev works.

There are some cases where the ioctl is needed to wake up the fbdev
device, but it is not needed on every frame.

If your fbdev driver needs an ioctl each frame, then your fbdev driver
is broken. I would recommend to *not* fix your fbdev driver, but write
a DRM driver instead. Then you can use Weston's DRM-backend which is
actually developed and maintained.

> One more query is when (on what events) function fbdev_output_reenable() 
> should be called?
> I am not seeing session_notify() fnction call .

There is a
	->session_listener.notify = session_notify;
assignment, which will get that function called on VT switch.

Mind, fbdev-backend's VT switching is probably broken - it was some
years ago when I last tried it.


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180321/6c4c9619/attachment-0001.sig>


More information about the wayland-devel mailing list