View Issue Details

IDProjectCategoryView StatusLast Update
0002513fsvybrid_LinuxDisplaypublic2015-02-04 17:12
ReporterKeller Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Versionfsvybrid-V2.1 
Target Versionfsvybrid-V2.2Fixed in Versionfsvybrid-V2.2 
Summary0002513: Fix layer mapping and alpha blending on Vybrid DCU
DescriptionFreescale DCU driver code does provide four different framebuffers /dev/fb0 to /dev/fb3 and also provides some code to do alpha blending and positioning for overlay windows, but this simply does not work. For example when a framebuffer different to /dev/fb0 is opened, the content and settings of /dev/fb0 are lost. In addition these extra windows in /dev/fb1 to /dev/fb3 are invisible, because /dev/fb0 spans the whole display and has the highest priority, and therefore hides all other layers.

This must be fixed.
Steps To ReproduceShow some arbitrary content on /dev/fb0, for example the X desktop after booting. Now show some content on /dev/fb1, for example

  export FRAMEBUFFER=/dev/fb1
  fbv /usr/share/directfb-examples/gnome-gimp.png

Now the whole display is black and the X desktop is gone.

Correct would be that a window pops up for a really short time, disappears again, and then the old desktop content should be visible again.

(The reason why the overlay window disappears so quickly, is because fbv closes the /dev/fb1 immediately after having drawn the image. And when there is no user holding an open handle to the framebuffer, then the overlay window is disabled again. This means an application that wants to use an overlay window, has to hold a file handle to the appropriate framebuffer for the overlay window open all the time.)
Additional InformationThe timing information for ET070 display (800x480) is also wrong. And sync polarity does not change when the .sync entry of the display DB is modified. So there are further things to fix.
Forum Link

Activities

There are no notes attached to this issue.