alberich2k5
Posts: 11
Joined: Wed Jun 27, 2012 9:42 am

Directfb/Pi

Thu Jul 19, 2012 3:24 pm

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!!!

alberich2k5
Posts: 11
Joined: Wed Jun 27, 2012 9:42 am

Re: Directfb/Pi

Fri Jul 20, 2012 9:09 am

bump!

hetii
Posts: 2
Joined: Sat Jul 21, 2012 10:52 am

Re: Directfb/Pi

Mon Jul 23, 2012 12:50 pm

Hmm any success in this topic ?

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

draconis
Posts: 10
Joined: Wed Jul 18, 2012 10:34 pm

Re: Directfb/Pi

Wed Jul 25, 2012 12:34 pm

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).

Daverj
Posts: 28
Joined: Tue Mar 06, 2012 2:23 am
Contact: Website

Re: Directfb/Pi

Wed Jul 25, 2012 7:48 pm

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.

draconis
Posts: 10
Joined: Wed Jul 18, 2012 10:34 pm

Re: Directfb/Pi

Thu Jul 26, 2012 12:11 am

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.

draconis
Posts: 10
Joined: Wed Jul 18, 2012 10:34 pm

Re: Directfb/Pi

Thu Jul 26, 2012 12:04 pm

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

draconis
Posts: 10
Joined: Wed Jul 18, 2012 10:34 pm

Re: Directfb/Pi

Sat Jul 28, 2012 3:35 pm

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.

neufena
Posts: 24
Joined: Wed Apr 11, 2012 7:04 pm

Re: Directfb/Pi

Sun Jul 29, 2012 1:50 pm

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

neufena
Posts: 24
Joined: Wed Apr 11, 2012 7:04 pm

Re: Directfb/Pi

Sun Jul 29, 2012 10:02 pm

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)

neufena
Posts: 24
Joined: Wed Apr 11, 2012 7:04 pm

Re: Directfb/Pi

Mon Jul 30, 2012 8:47 pm

Final update, I tried again on the full Raspbian image rather than the minimal install I was using, it seems to configure now.

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Mon Aug 06, 2012 8:59 am

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 :)

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Mon Aug 06, 2012 6:48 pm

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 :(

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Mon Aug 06, 2012 9:33 pm

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 :) )

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Tue Aug 07, 2012 8:02 am

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 ? :)

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Tue Aug 07, 2012 8:45 am

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)


draconis
Posts: 10
Joined: Wed Jul 18, 2012 10:34 pm

Re: Directfb/Pi

Tue Aug 07, 2012 6:16 pm

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.

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Wed Aug 08, 2012 7:51 am

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.

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Wed Aug 08, 2012 8:17 pm

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 ?

Tweedledum
Posts: 6
Joined: Thu Aug 16, 2012 2:02 pm

Re: Directfb/Pi

Thu Aug 16, 2012 3:16 pm

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!

User avatar
kulminaator
Posts: 23
Joined: Mon Aug 06, 2012 8:55 am
Location: estonia

Re: Directfb/Pi

Sat Aug 18, 2012 6:33 am

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)

gregd72002
Posts: 31
Joined: Tue May 08, 2012 9:17 pm

Re: Directfb/Pi

Wed Aug 29, 2012 12:48 pm

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...

gregd72002
Posts: 31
Joined: Tue May 08, 2012 9:17 pm

Re: Directfb/Pi

Thu Aug 30, 2012 9:19 am

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 :)

rjordan
Posts: 1
Joined: Sat Sep 15, 2012 1:36 am

Re: Directfb/Pi

Sun Sep 16, 2012 3:48 am

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

gregd72002
Posts: 31
Joined: Tue May 08, 2012 9:17 pm

Re: Directfb/Pi

Thu Sep 20, 2012 2:57 pm

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

Return to “General programming discussion”