Page 1 of 2

Directfb/Pi

Posted: Thu Jul 19, 2012 3:24 pm
by alberich2k5
Hi again,

Anyone has been able to run directfb on a raspberry pi?
I'm able to compile, I'm trying to use the gfxdriver=gles (algo tried none) with fbdev or egl but no luck.
I'm getting this error with directfb 1.6.1

(*) DirectFB/Core: Single Application Core. (2010-06-29 16:09) [ DEBUG ]
(!) DirectFB/core/system: No system found!
(#) DirectFBError [DirectFBCreate() failed]: No (suitable) implementation found!

I checked my path to libs, set the modules=/lib/path in directfbrc,
but always the same error.

My configure line is like:

EGL_LIBS=$(ROOTFS)/lib EGL_CFLAGS=-L$(ROOTFS)/lib ./configure
--host=$(CROSS_COMPILE) --build=i386-linux \
--target=$(CROSS_COMPILE) --prefix=$(ROOTFS) --disable-png
--disable-gif --enable-fbdev=yes --disable-freetype --disable-x11 \
--with-sysroot=$(ROOTFS)/lib --with-gfxdrivers='gles2'
--with-inputdrivers='linuxinput' --enable-egl --disable-mesa \
--enable-debug --disable-fusion

CROSS_COMPILE points to the cross compilet found in the raspberrypi github repo.
ROOTFS points to the output fs, on which I copied the libEGL and so
from /op/vc/....

Anyone can help me? thank!!!

Re: Directfb/Pi

Posted: Fri Jul 20, 2012 9:09 am
by alberich2k5
bump!

Re: Directfb/Pi

Posted: Mon Jul 23, 2012 12:50 pm
by hetii
Hmm any success in this topic ?

We can try cath some plp from directfb on irc :)

Re: Directfb/Pi

Posted: Wed Jul 25, 2012 12:34 pm
by draconis
I've gotten directfb (1.6.0) to compile and compiled GTK with the directfb backend enabled. When I try launching the gtk-demo I get a black screen with a mouse pointer before it locks up. The black screen and mouse pointer never go away and I have to ssh in and reboot. Does anyone have a suggestion on how to troubleshoot this? Because I can't get back to the console I don't see any error messages (assuming there is one).

Re: Directfb/Pi

Posted: Wed Jul 25, 2012 7:48 pm
by Daverj
draconis wrote:I've gotten directfb (1.6.0) to compile and compiled GTK with the directfb backend enabled. When I try launching the gtk-demo I get a black screen with a mouse pointer before it locks up. The black screen and mouse pointer never go away and I have to ssh in and reboot. Does anyone have a suggestion on how to troubleshoot this? Because I can't get back to the console I don't see any error messages (assuming there is one).
Don't know if this would work, but could you run it from SSH? That way SSH would be your console and would show you the errors.

Re: Directfb/Pi

Posted: Thu Jul 26, 2012 12:11 am
by draconis
Running it from my ssh session allowed me to see the errors.

Code: Select all

~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.6.0 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2012  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2012-07-24 03:57) 
(*) Direct/Memcpy: Using libc memcpy()
(*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER 0/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (-1) [DEFAULT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/FBDev: Found 'BCM2708 FB' (ID 0) with frame buffer at 0x49385000, 1875k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Keyboard Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: IMPS/2 Mouse 1.0 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Logitech USB Receiver (1) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Logitech USB Receiver (2) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver 
(*) DirectFB/Input: Hot-plug detection enabled with Input Hub Driver 
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) FBDev/Mode: Setting 800x600 ARGB
(*) FBDev/Mode: Switched to 800x600 (virtual 800x600) at 32 bit (ARGB), pitch 3200
(*) FBDev/Mode: Setting 800x600 ARGB
(*) FBDev/Mode: Switched to 800x600 (virtual 800x600) at 32 bit (ARGB), pitch 3200
 (!!!)  *** UNIMPLEMENTED [fusion_get_fusionee_pid] *** [fusion.c:3124]

(gtk-demo:29339): Gdk-CRITICAL **: IA__gdk_drawable_get_colormap: assertion `GDK_IS_DRAWABLE (drawable)' failed
(*) Direct/Thread: Started 'EventBufferFeed' (-1) [MESSAGING OTHER/OTHER 0/0] <8388608>...
Segmentation fault
So, it's dying with a seg fault after a couple of errors that don't mean much to me. I don't understand error/warning about fusion.c. I didn't compile fusion because I was under the impression I didn't need it if I only planned on running one app at a time. Further up I see "Found 'BCM2708 FB" and that seems a little off to me as well.

Re: Directfb/Pi

Posted: Thu Jul 26, 2012 12:04 pm
by draconis
I've had some success getting this to work. I've compiled versions of cairo (1.12.0), pango (1.30.1), gdk-pixbuf (2.26.1), DirectFB (1.6.0) and GTK+ (2.22.1). I compiled and installed everything under /usr/gtkdfb to keep it separated from everything else. Here is my setup which was gleaned from a bunch of random places all over the internet (some taken from this very thread).

export PREFIX=/usr/gtkdfb
export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig
export C_INCLUDE_PATH=/opt/vc/include:/opt/vc/include/interface/vcos/pthreads

Here are my configure options.

cairo - --prefix=$PREFIX --enable-directfb --disable-xlib --disable-win32

pango - --prefix=$PREFIX --without-x

directfb - --disable-png --disable-gif --enable-fbdev=yes --disable-freetype --disable-x11 --with-gfxdrivers='gles2' --enable-egl --disable-mesa --enable-debug EGL_CFLAGS='-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads' EGL_LIBS='-L/opt/vc/lib/ -lGLESv2 -lEGL'

gdk-pixbuf - --prefix=$PREFIX --prefix=$PREFIX

gtk - --prefix=$PREFIX --with-gdktarget=directfb --without-x

After all of that you should be able to run gtk-demo in /usr/gtkdfb/bin. Although I'm not sure it really looks correct, it will at least run instead of seg faulting.

--prefix=$PREFIX

Re: Directfb/Pi

Posted: Sat Jul 28, 2012 3:35 pm
by draconis
I'm starting to feel like I'm talking to myself, but here is my latest progress :)
After my last build I realized that none of the hardware acceleration was actually working, so I had to go back and fix that. My configure line is pasted below. I had to disable debug because I kept getting assert errors from some debug macros and I simply wasn't going to be able to fix them.

./configure --prefix=$PREFIX CFLAGS='-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads' LDFLAGS='-L/opt/vc/lib' LIBS='-lEGL -lGLESv2' --disable-x11 --enable-egl --with-gfxdrivers='gles2' --disable-debug

When running the dfb examples I still get this error but the program loads and displays.

Code: Select all

(*) DirectFB/Graphics: GLES2 Acceleration - VideoCore IV HW 0.1 (Mark J Hood / Denis Oliver Kropp)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
2260024046: glGetError 0x502
(!) DirectFB/EGL: glGenTextures() failed! (error = 502)
(!) Core/SurfBuffer: Buffer allocation failed!
    --> A general or unknown error occured
The example df_andi (the one with the penguins) runs at a solid 60 fps at 720p resolution. I hope this will help anyone esle trying to get DirectFB running and maybe they can fix the last few errors.

Re: Directfb/Pi

Posted: Sun Jul 29, 2012 1:50 pm
by neufena
Hi,

I'm trying to have a god at compiling this too but get this error, can anyone help!

checking whether the C compiler works... no
configure: error: in `/root/src/DirectFB-1.6.1':
configure: error: C compiler cannot create executables

Re: Directfb/Pi

Posted: Sun Jul 29, 2012 10:02 pm
by neufena
I've traced it to these lines in the config.log but can't work out how to fix it:

/usr/bin/ld: warning: libvchiq_arm.so, needed by /opt/vc/lib/libEGL.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libvcos.so, needed by /opt/vc/lib/libEGL.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libbcm_host.so, needed by /opt/vc/lib/libEGL.so, not found (try using -rpath or -rpath-link)

Re: Directfb/Pi

Posted: Mon Jul 30, 2012 8:47 pm
by neufena
Final update, I tried again on the full Raspbian image rather than the minimal install I was using, it seems to configure now.

Re: Directfb/Pi

Posted: Mon Aug 06, 2012 8:59 am
by kulminaator
For those more familiar with directfb, as i understand it provides us with accelerated graphics and input abstraction layer ... sounds more than enough to create decent applications on the device (considering the memory and cpu power of raspberry pi) ?

Do we still have to compile the lib by hand or is there any hope to get this into the wheezy repo as a compiled package ? It would blow open the door for many interesting applications and release the power of the PI :)

Re: Directfb/Pi

Posted: Mon Aug 06, 2012 6:48 pm
by kulminaator
Seems like i'm hitting a first obstacle already while trying to compile directfb 1.6.1

It looks like configure is calling pkg-config for the libEGL, to understand where it's installed, but there is no egl.pc in the /opt/vc folder tree or anywhere else in my system right now, hence my config.log contains stuff like

configure:18821: $PKG_CONFIG --exists --print-errors "gl egl"
Package gl was not found in the pkg-config search path.
Perhaps you should add the directory containing `gl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gl' found
Package egl was not found in the pkg-config search path.
Perhaps you should add the directory containing `egl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'egl' found


I take for granted that this is very wrong and the resulting directfb lib wouldn't be accelerated at all. Where did you guys get the egl.pc file from ? I'm running wheezy image over here, just verified that i have the update & upgrade done as well ... running out of ideas :(

Re: Directfb/Pi

Posted: Mon Aug 06, 2012 9:33 pm
by kulminaator
I tried to mimic the expected contents of the .pc files so that it would compile and run (and it did), but to me it seemed that the result in the end wasn't really accelerated at all. I was able to run the directfb demos, but it claimed to be drawn by some software rasterizer, so i think the hw acceleration was not present.

However, as i put aside the directfb i did have success with opengles demos and openvg demos, they ran nicely (and the performance was pretty nice for the price of a pi :) )

Re: Directfb/Pi

Posted: Tue Aug 07, 2012 8:02 am
by kulminaator
just to make sure we're on the same page, i'm building the lib again with your latest configure line, right now the output of configure looks like this: http://pastebin.com/u3PR0X2g

draconis, can you show your configure output and how did you overcome the pkg-config issue ? :)

Re: Directfb/Pi

Posted: Tue Aug 07, 2012 8:45 am
by kulminaator
and yet it seems that my output is not accelerated after this build
running sudo ./dfbinfo shows this :

Code: Select all


   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.6.1 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2012  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2012-08-07 08:11)
(*) Direct/Memcpy: Using libc memcpy()
(*) Direct/Thread: Started 'Fusion Dispatch' (-1) [MESSAGING OTHER/OTHER 0/0] <8388608>...
(*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER 0/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (-1) [DEFAULT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/FBDev: Found 'BCM2708 FB' (ID 0) with frame buffer at 0x4d385000, 533k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Keyboard Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: IMPS/2 Mouse 1.0 (directfb.org)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver
(*) DirectFB/Input: Hot-plug detection enabled with Input Hub Driver
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)


Re: Directfb/Pi

Posted: Tue Aug 07, 2012 6:16 pm
by draconis
I'm not sitting at my pi right now so I may be mistaken about this, but I believe I created a .directfbrc file in my home dir (actuall in /root because i run it as root due to the tty0 permissions) with system=egl. That should get EGL working. I think I set other options like the height and width in there too.

Here is the man page online with all the available options you can put in diretfbrc file.
http://directfb.org/docs/directfbrc.5.html

I haven't had a chance to play with this much lately, but my latest compile attempt did have some problems. One issue is that keyboard/mouse no longer seem to work and another is that some of the graphics in the demos don't seem to work properly either.

Let me know how you get on with adding the egl stuff to .directfbrc.

Re: Directfb/Pi

Posted: Wed Aug 08, 2012 7:51 am
by kulminaator
thanks for the help, seems that it helped a bit:

Code: Select all

$ sudo /opt/directfb/bin/dfbinfo


   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.6.1 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2012  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2012-08-07 08:11)
(*) Direct/Memcpy: Using libc memcpy()
(*) Direct/Thread: Started 'Fusion Dispatch' (-1) [MESSAGING OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Input Hub Driver
(*) DirectFB/Graphics: GLES2 Acceleration - VideoCore IV HW 0.1 (Mark J Hood / Denis Oliver Kropp)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
1465013987: glGetError 0x502
(!) DirectFB/EGL: glGenTextures() failed! (error = 502)
(!) Core/SurfBuffer: Buffer allocation failed!
    --> A general or unknown error occured
(!) Core/LayerRegion: Could not lock region surface for SetRegion()!
    --> A general or unknown error occured
(!) Core/LayerRegion: realize_region() in dfb_layer_region_flip_update() failed!
    --> A general or unknown error occured


Screen (00) EGL Primary Screen              (primary screen)
   Caps: OUTPUTS

   Output (0)
     Caps:       RESOLUTION
     Resolutions:
     Signals:


     Layer (00) EGL Primary Layer               (primary layer)
        Type:    GRAPHICS
        Caps:    SURFACE



did this over ssh and my raspberry is currently headless on a network cable only, so i have no idea how severe these error messages are, maybe they will change when i hook it up to my hdmi tv.

Re: Directfb/Pi

Posted: Wed Aug 08, 2012 8:17 pm
by kulminaator
so my current state is this ... .directfbrc is like this:

Code: Select all

system=egl
mode=1280x720
depth=16
some of the tests run, some of then "run" and some just crash

df_matrix - appears to work
df_dok - initially appears to work, but stuff seems to be rendered into a buffer offscreen and then blitted onto the screen
df_flip - reports a constant rate of 60 fps
df_andi - runs, but apparently behind the screens somewhere, nothing is rendered
df_knuckles - runs

i do get a lot of such errors when running tests:

Code: Select all

(!) DirectFB/EGL: glGenTextures() failed! (error = 502)
(!) Core/SurfBuffer: Buffer allocation failed!
    --> A general or unknown error occured
(!) DirectFB/Genefx: Could not lock destination!
    --> The requested operation or an argument is (currently) not supported
(!) DirectFB/EGL: glGenTextures() failed! (error = 506)
(!) DirectFB/EGL: glGenTextures() failed! (error = 505)
care to share your .directfbrc and perhaps memory split options ? do you get similar results ?

Re: Directfb/Pi

Posted: Thu Aug 16, 2012 3:16 pm
by Tweedledum
Hi,
I've been watching this thread for a couple of weeks as I am also trying to get DirectFB working on the Pi. I've managed to get it running without acceleration, at least I assume that’s what:

Code: Select all

(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
means.

Today I tried adding

Code: Select all

system=egl
to my ~/.directfbrc but this stops it from working at all. When I add that option all I get out of DFB is:

Code: Select all

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.6.1 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2012  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Multi Application Core. (2012-08-07 11:15)
(*) Direct/Memcpy: Using armasm_memcpy()
(*) Fusion/SHM: Using MADV_REMOVE (3.1.9.0 >= 2.6.19.2)
(*) Direct/Thread: Started 'Fusion Dispatch' (-1) [MESSAGING OTHER/OTHER 0/0] <8388608>...
(*) Direct/Thread: Started 'Fusion Deferred' (-1) [MESSAGING OTHER/OTHER 0/0] <8388608>...
2092588314: * failed to add service - already in use?
I configured DFB with the following:

Code: Select all

./configure --enable-fbdev=yes --disable-x11 --with-gfxdrivers='gles2' --enable-egl --disable-mesa --enable-debug EGL_CFLAGS='-I/opt/vc/include 
-I/opt/vc/include/interface/vcos/pthreads' EGL_LIBS='-L/opt/vc/lib/ -lGLESv2 -lEGL' --with-inputdrivers='none' --enable-multi
If anyone has any thoughts I would really appreciate it!

Re: Directfb/Pi

Posted: Sat Aug 18, 2012 6:33 am
by kulminaator
Maybe this thread should be moved to graphics topics ?

I doubt there will be many useful answers on the directfb&fusion for a while in the raspberry community, maybe you are better off asking these questions in directfb mailing lists ?

(it's such a shame that directfb seems complicated to get to work, it has great promise on paper)

Re: Directfb/Pi

Posted: Wed Aug 29, 2012 12:48 pm
by gregd72002
Is there any update on this? I'm just trying to get this working as well... and before I start digging around with the code would need to know what is the current state...

Re: Directfb/Pi

Posted: Thu Aug 30, 2012 9:19 am
by gregd72002
Right... looks like we are on track (early next month we should get it):
https://plus.google.com/u/0/109054407220184149542/posts

Though, got a few ideas I want to try to get this working now :)

Re: Directfb/Pi

Posted: Sun Sep 16, 2012 3:48 am
by rjordan
Hi Everyone,

I've been able to build directfb with egl and gles2 but I still can't get it to use the egl system. I've tried many combinations of the configs and .directfbrc settings in this thread and gleaned elsewhere on the web, but no matter what I do it seems to just use the software rasterizer (which works albeit slowly). I see some of you on this thread have gotten the egl system to at least initialize. What's the secret?

Thanks,
Robert

Re: Directfb/Pi

Posted: Thu Sep 20, 2012 2:57 pm
by gregd72002
to get EGL to work partially: http://git.directfb.org/?p=openwrt/pack ... d84a5d2863

You might also find this 'inspiring' for further work (section Caveats):
http://www.qnx.com/developers/docs/6.5. ... reate.html

This has been tried on directfb-1.7-git and egl initializes fine, but there is some issue with textures