[Libdlo] DirectFB support?

Tim Stowell stowellt at gmail.com
Mon Dec 20 13:17:12 PST 2010


Hi,

Thanks so much for the helpful response! I tried using the fb_defio
option with kernel 2.6.31 and had bad results, so I upgraded to kernel
2.6.36 and now XFbdev and DirectFB work perfectly.

My main use case at this point is trying to find the fastest way to
get an image on the udlfb screen. I've tried the following (this is on
a very slow Soekris net4801 266mhz processor attempting to display a
jpeg)

X (including Xorg and XFbdev)
 - feh: 5 seconds of processing then image almost immediately appears
- imagemagick's display command: 37 seconds before appearance
- xv: 18 seconds

DirectFB
- sample image display program: 4 seconds of processing then a very
slow line by line display of the image, this is the slowest of all the
options I tried, but uses the lease memory)

Oddly enough DirectFB is the slowest to display the image, I'm
assuming because of all the page faults it's generating instead of
just a single damage event to flush the data? I'm wondering if I
didn't immediately display it but read it into memory then "blitted"
it if it would be faster.

My next question is assuming I have access to the image data, what is
the fastest way to display it with udlfb, mmap? If this is common
knowledge any links or info would be greatly appreciated, thanks!
-Tim

On Thu, Dec 16, 2010 at 8:06 PM, Bernie Thompson <bernie at plugable.com> wrote:
> Hi Tim,
>
> On Thu, Dec 16, 2010 at 6:39 PM, Tim Stowell <stowellt at gmail.com> wrote:
>> I have successfully compiled Directfb, and whenever I try to run an
>> example program, it says everything is working but all I see is a
>> green screen.
>
> Because DirectFB doesn't send down the custom damage notification
> ioctl that udlfb needs to know what parts of the framebuffer are being
> touched, nothing would get pushed over USB (even if everything is
> working), so the screen would stay as it was originally painted at
> initialization (green).
>
> What you'll want to do is turn on udlfb's optional "defio" feature.
> This enables using page faults for detecting framebuffer accesses, so
> that udlfb can work with any framebuffer client (like DirectFB or the
> stock xf86-video-fbdev driver) without any patches.
>
> This defio feature is working much better now with the fixes in recent
> versions of udlfb (from git.plugable.com or in kernel 2.6.37), in
> combination with any kernel after 2.6.35 (for some critical defio
> fixes).  It also works on older kernels, but with horizontal lines of
> dead pixels that accumulate.
>
> Documentation of the defio option is in the kernel tree:
> http://www.linuxhq.com/kernel/v2.6/37-rc1/drivers/staging/udlfb/udlfb.txt
>
> Please let us know how things go.
>
> Best wishes,
> Bernie
>


More information about the Libdlo mailing list