Hi world wide DirectFB community!

I have cross compiled DirectFB 1.4.3 for a Davinci DM365 platform, which has 
HDMI output to a TV.

I am testing using the simple application from the DirectFB tutorials
http://www.directfb.org/docs/DirectFB_Tutorials/simple.html

I am having some troubles configuring DirectFB together with the davinci OSD0

For example:
fbset -fb /dev/fb0 -xres 640 -yres 480 -depth 16 -nonstd 0
TV result:  http://www.meego.nu/pics/20100618_001.jpg

fbset -i and get the mode to use for a fb.modes file
# ./simple
TV result:  http://www.meego.nu/pics/20100618_002.jpg


I would like the filled rectangle to be drawn from top left corner to the 
bottom right corner.




Additional information:

./configure --host=arm-linux-gnu --build=i386-linux --target=arm-linux 
--prefix=/usr --disable-x11 --enable-debug --disable-voodoo --disable-mmx 
--disable-sse --disable-sdl --disable-jpeg --enable-zlib --enable-png 
--disable-gif --enable-freetype --disable-video4linux --disable-video4linux2 
--enable-fbdev --disable-devmem --disable-sysfs --with-gfxdrivers=davinci 
--with-inputdrivers=none

Kernel video boot parameter
video=davincifb:vid0=OFF:vid1=OFF:osd0=1280x720x32,7200K

I have used fbset utility to create modes to use in a /etc/fb.modes file

fbset -i
           will give additional information on the 'low-level details' about 
the driver. 


r...@localhost:/# fbset -i

mode "1280x720"
    geometry 1280 720 1280 720 16
    timings 0 121 0 16 0 0 0
    bcast true
    laced true
    rgba 5/11,6/5,5/0,0/0
endmode

Additional Frame buffer device information:
    Name        : dm_osd0_fb
    Address     : 0x84000000
    Size        : 7372800
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 16
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 2560
    Accelerator : No




Example output on console:
r...@localhost:/# simple 

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

(*) DirectFB/Core: Single Application Core. (2010-06-17 14:50) [ DEBUG ]
(*) Direct/Memcpy: Using armasm_memcpy()
(*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER 0/0] <838860
8>...
(*) Direct/Thread: Started 'VT Flusher' (-1) [DEFAULT OTHER/OTHER 0/0] <8388608>
...
(*) DirectFB/FBDev: Found 'dm_osd0_fb' (ID 0) with frame buffer at 0x84000000, 7
200k (MMIO 0x00000000, 0k)
(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(!) [Main Thread       0.000] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:855 in df
b_surface_pool_lock()]
(!) DirectFB/FBDev: yres 720, vyres 720, offset 720
 (!?!)  *** BUG [panning buffer out of range] *** [fbdev.c:1502 in dfb_fbdev_pan
()]
(!) [Main Thread       0.001] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:855 in df
b_surface_pool_lock()]
(!) [Main Thread       0.029] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:874 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.029] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:889 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.030] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:855 in df
b_surface_pool_lock()]
(!) [Main Thread       0.030] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:874 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.030] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:889 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.031] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:874 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.031] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:889 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.031] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:855 in df
b_surface_pool_lock()]
(!) DirectFB/FBDev: yres 720, vyres 720, offset 720
 (!?!)  *** BUG [panning buffer out of range] *** [fbdev.c:1502 in dfb_fbdev_pan
()]
simple.c <148>:
        (#) DirectFBError [primary->Flip (primary, NULL, 0)]: Internal bug!
 (!!!)  *** WARNING [Application exited without deinitialization of DirectFB!] *
** [core.c:862 in dfb_core_deinit_check()]
 (!!!)  *** WARNING [still objects in 'Layer Region Pool'] *** [object.c:241 in 
fusion_object_pool_destroy()]
(!) [Main Thread       0.033] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:874 in df
b_surface_pool_unlock()]
(!) [Main Thread       0.033] ( 2270) *** Assumption [(lock)->offset == (lock)->
allocation->offset || (lock)->offset == ~0] failed *** [surface_pool.c:889 in df
b_surface_pool_unlock()]
 (!!!)  *** WARNING [still objects in 'Layer Context Pool'] *** [object.c:241 in
 fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still objects in 'Surface Pool'] *** [object.c:241 in fusio
n_object_pool_destroy()]
Interface instances remaining (2): 
  - 'IDirectFB' at 0x16840 (dfb) allocated in DirectFBCreate (directfb.c: 197)
  - 'IDirectFBSurface' at 0x17f98 (iface) allocated in IDirectFB_CreateSurface (
idirectfb.c: 764)



Ok. So I searched the mailing list for (!?!)  *** BUG [panning buffer out of 
range
http://mail.directfb.org/pipermail/directfb-users/2009-May/001651.html
On Mon, May 25, 2009 at 10:07 AM, Niels Roest <niels at directfb.org> wrote: 
> the panning failing is due to the fact that it cannot reserve a
> sufficiently large buffer; check your FB driver in the kernel, or retry with
> a lower resolution first to see if that works (like VGA 640x480 is a good
> choice).


I restart the system and changes the framebuffer settings using fbset utility 
and create a new fb.modes file.

I then get the results shown in the picture above, and still the panning 
failure is there..
I have looked through the drivers/media/video/davinci/davinci_osd.c ~2500 
lines, but don't really know what I should look for or change.


Could it be I need to set some register on the dm365 to set up the framebuffer 
and set the drawing area and options?
I will investigate :)

When restarting the system and using fbset utility to change settings,
The black rectangle is drawn, but never from the top left corner to the bottom 
right corner. Only on a part of the screen. Sometimes the rectangle is written 
starting from the middle of the screen to the right and down, using only a 
quarter of the screen.
 

Thanks in advance for any feedback/ideas

Andreas
_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to