Thankyou, To give a few more details on my system. We currently have a 12MB area of memory which is used by 2 framebuffers with some spare GFX memory in between for off screen surfaces. like this:
<- 12MB -> | FB0 | spare | FB1 | If I want to use a driver based on the davinci driver then I presume that the devmem system should be pointed at the middle spare area. So VideoPhysAddr should be end of FB0 and length should be the size of the spare area. Then surfaces for FB0 can be assigned from FB0 memory space and other surfaces will be assigned from the spare area. Is that correct? Cheers Dan -------------------------------------------------- From: "Denis Oliver Kropp" <[EMAIL PROTECTED]> Sent: Friday, January 04, 2008 4:58 PM To: "Daniel Laird" <[EMAIL PROTECTED]> Cc: <directfb-dev@directfb.org> Subject: Re: [directfb-dev] Writing a new GFX driver. > Daniel Laird wrote: >> I am writing a new GFX driver as indicated before. >> The System has more than one framebuffer and I want to be able to use >> both. >> >> I decided to look at how the davinci driver does this. >> It uses the 'devmem' system. However the driver provides functions for >> allocation / deallocation of surfaces, joining and leaving the surface >> pool >> etc. >> >> The problem is that it only seems to allow for allocation of surfaces on >> a >> layer and a layer id of 0. > > davinci_osd_pool.c allocates surfaces for the primary layer in fb0. > > davinci_video_pool.c allocated surfaces for the video layer in fb3(?). > >> I cannot see what it does when this is not the case. >> i.e What happens when you create an offscreen surface using the davinci >> driver? > > It's using the devmem pool for general purpose or window surfaces. > > That is the video-phys and video-length option. > >> I am new to this but i think that I need to extend the AllocateBuffer >> function in the davinci driver to cope with what to do when the surface >> type >> is not LAYER or layer id is not 0. > > No, it should work like said. > >> Am I correct. Where will an offscreen surface get allocated for the >> davinci >> driver i.e if you run df_andi where do the offscreen surfaces get >> allocated? >> I can't find where! > > "dfbdump -a" shows this: > > > =======================| DirectFB 1.1.0 |======================= > (c) 2001-2007 The DirectFB Organization (directfb.org) > (c) 2000-2004 Convergence (integrated media) GmbH > ------------------------------------------------------------ > > (*) DirectFB/Core: Multi Application Core. (2008-01-04 16:56) > (*) Fusion/SHM: NOT using MADV_REMOVE (2.6.10.0 < 2.6.19.2)! [0x02060a00] > (*) Direct/Thread: Running 'Fusion Dispatch' (MESSAGING, 582)... > (*) Davinci/Driver: Mapped fb0 with length 2488320 at 0x85800000 to > 0x41d29000 > (*) Davinci/Driver: Mapped fb1 with length 3760128 at 0x85400000 to > 0x41f89000 > (*) Davinci/Driver: Mapped fb2 with length 1658880 at 0x85e00000 to > 0x4231f000 > (*) Davinci/Driver: Mapped fb3 with length 3760128 at 0x85000000 to > 0x424b4000 > (*) Davinci/C64X: Low ARM 3897 / DSP 3811, High ARM 0 / DSP 0 > (*) DirectFB/Graphics: Texas Instruments Davinci 0.4 (Telio AG) > (*) SaWMan/Config: Parsing config file '/etc/sawmanrc'. > > DirectFB uptime: 00:00:24 > > -----------------------------[ > Surfaces ]------------------------------------- > Reference FID . Refs Width Height Format Video System > Capabilities > ------------------------------------------------------------------------------ > 0x0000000c [ 1] : 2 992 x 32 ARGB 0k 124k > premultiplied > 0x0000000b [ 1] : 2 118 x 98 RGB32 0k 45k > 0x0000000a [ 1] : 2 640 x 480 RGB16 600k 0k > 0x00000009 [ 1] : 3 400 x 240 RGB16 187k 0k > 0x00000008 [ 1] : 4 640 x 480 RGB16 2025k 0k video > only triple > 0x00000005 [ 1] : 1 640 x 480 ARGB 0k 0k video > only > ------ ------ > 2812k 169k -> 2981k > total > > ----------------------------------[ Contexts of Layer > 0 ]---------------------------------------- > Reference FID . Refs Width Height Format Location on screen Regions > Active Info Level > ------------------------------------------------------------------------------------------------- > 0x00000006 [ 1] : 2 640 x 480 RGB16 0.0, 0.0 -> 1.0, 1.0 1 > (*) PRIVATE N/A > 0x00000003 [ 1] : 3 640 x 480 ARGB 0.0, 0.0 -> 1.0, 1.0 1 > SHARED N/A > > > --------------------[ Surface Buffer Allocations in > /dev/mem ]------------------- > Offset Length Width Height Format Role Up nA ID Usage Type / > Storage / Caps > --------------------------------------------------------------------------------- > 16162752 614400 640 x 480 RGB16 front * 1 0 PRIVATE > 15970688 192000 400 x 240 RGB16 front * 1 0 PRIVATE > > --------------------[ Surface Buffer Allocations in OSD > Pool ]------------------- > Offset Length Width Height Format Role Up nA ID Usage Type / > Storage / Caps > --------------------------------------------------------------------------------- > 691200 691200 640 x 480 RGB16 back * 1 0 PRIVATE LAYER > EXTERNAL video only triple > 0 691200 640 x 480 RGB16 front * 1 0 PRIVATE LAYER > EXTERNAL video only triple > 1382400 691200 640 x 480 RGB16 idle * 1 0 PRIVATE LAYER > EXTERNAL video only triple > > --------------------[ Surface Buffer Allocations in Video > Pool ]------------------- > Offset Length Width Height Format Role Up nA ID Usage Type / > Storage / Caps > ----------------------------------------------------------------------------------- > > --------------------[ Surface Buffer Allocations in Shared > Memory ]------------------- > Offset Length Width Height Format Role Up nA ID Usage Type / > Storage / Caps > -------------------------------------------------------------------------------------- > > --------------------[ Surface Buffer Allocations in System > Memory ]------------------- > Offset Length Width Height Format Role Up nA ID Usage Type / > Storage / Caps > -------------------------------------------------------------------------------------- > 0 46256 118 x 98 RGB32 front * 1 0 PRIVATE > 0 126976 992 x 32 ARGB front * 1 0 PRIVATE FONT > premultiplied > > --------------------[ Surface Buffer Allocations in Preallocated > Memory ]------------------- > Offset Length Width Height Format Role Up nA ID Usage Type / > Storage / Caps > -------------------------------------------------------------------------------------------- > > > > -- > Best regards, > Denis Oliver Kropp > > .------------------------------------------. > | DirectFB - Hardware accelerated graphics | > | http://www.directfb.org/ | > "------------------------------------------" > > _______________________________________________ > directfb-dev mailing list > directfb-dev@directfb.org > http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev > _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev