Further to my previous postings I have made some more discoveries. The log file for dfb1.0 is as follows: (-) [Main Thread 1.904] ( 507) Core/WindowStack: dfb_windowstack_resize( 0x453ed8, 720x720 ) (-) [Main Thread 1.904] ( 507) Core/WindowStack: dfb_windowstack_repaint_all( 0x453ed8 ) (-) [Main Thread 1.905] ( 507) Core/GraphicsOps: dfb_gfxcard_fillrectangles( 0x7f92d588 [1], 0x44ef2c ) (-) [Main Thread 1.905] ( 507) Core/GraphicsOps: dfb_gfxcard_state_check( 0x44ef2c, 0x00000001 ) [0,0 - 719,719] (-) [Main Thread 1.908] ( 507) Core/GfxState: dfb_gfxcard_state_check( 0x44ef2c, 0x00000001 ) drawing -> 0x4549d8 (-) [Main Thread 1.908] ( 507) Core/GfxState: <- checked 0x00000000, accel 0x00000000, modified 0x00033fff, mod_hw 0x00000000 (-) [Main Thread 1.908] ( 507) Core/GfxState: -> checked 0x00000000, accel 0x00000000, modified 0x00033fff, mod_hw 0x00000000 (-) [Main Thread 1.908] ( 507) Core/GfxState: -> checked 0x00000001, accel 0x00000001, modified 0x00033fff, mod_hw 0x00000000 (-) [Main Thread 1.908] ( 507) Core/GfxState: => checked 0x00000001, accel 0x00000001, modified 0x00000000, mod_hw 0x00033fff (-) [Main Thread 2.274] ( 507) Core/GfxState: dfb_gfxcard_state_acquire( 0x44ef2c, 0x00000001 ) drawing -> 0x4549d8 (-) [Main Thread 2.274] ( 507) Core/SurfBuffer: dfb_surface_buffer_lock( 0x4542a8, 0x00000002, 0x44efd8 ) (-) [Main Thread 2.274] ( 507) Core/SurfBuffer: -> GPU WRITE (-) [Main Thread 2.275] ( 507) Core/SurfBuffer: allocate_buffer( 0x4542a8, 0x2 ) (-) [Main Thread 2.275] ( 507) Core/SurfBuffer: -> 720x720 ARGB - SHARED LAYER EXTERNAL (-) [Main Thread 2.275] ( 507) Core/SurfacePool: dfb_surface_pools_negotiate( 0x4542a8 [ARGB], 0x02 ) (-) [Main Thread 2.275] ( 507) Core/SurfacePool: -> 0x02 0x211 required (-) [Main Thread 2.275] ( 507) Core/SurfacePool: -> 0x1f 0x21f [/dev/mem] (-) [Main Thread 2.275] ( 507) Core/SurfacePool: 0 / -1 (-) [Main Thread 2.276] ( 507) DevMem/Surfaces: devmemTestConfig( 0x4542a8 ) (-) [Main Thread 2.276] ( 507) Core/SurfacePool: -> 0x1f 0x211 [GFX Pool] (-) [Main Thread 2.276] ( 507) Core/SurfacePool: 0 / 0 (>) [Main Thread 2.276] ( 507) NXP/STB22X/GSurf: Entering phStbDFB_GfxTestConfig buffer ( 0x4542a8 ) [phStbDFB_gfx_pool.c:302] (-) [Main Thread 2.276] ( 507) Core/SurfacePool: -> 0x1f 0x211 [Video Layers Pool] (-) [Main Thread 2.277] ( 507) Core/SurfacePool: 0 / 0 (>) [Main Thread 2.277] ( 507) NXP/STB22X/VSurf: Entering phStbDFB_VideoTestConfig buffer ( 0x4542a8 ) resource_id (0) [phStbDFB_video_pool.c:280] (-) [Main Thread 2.277] ( 507) NXP/STB22X/VSurf: -> surface->type=0x00000211 and surface->resource_id=0 (<) [Main Thread 2.277] ( 507) NXP/STB22X/VSurf: Returning from phStbDFB_VideoTestConfig Surface not allocated [phStbDFB_video_pool.c:305] (-) [Main Thread 2.277] ( 507) Core/SurfacePool: -> 0x1c 0x11f [Shared Memory] (-) [Main Thread 2.278] ( 507) Core/SurfacePool: -> 0x0c 0x108 [System Memory] (-) [Main Thread 2.278] ( 507) Core/SurfacePool: -> 0x0c 0x400 [Preallocated Memory] (-) [Main Thread 2.278] ( 507) Core/SurfacePool: => GFX Pool (-) [Main Thread 2.278] ( 507) Core/SurfacePool: dfb_surface_pool_allocate( 0x44f530 [1], 0x4542a8 ) (>) [Main Thread 2.278] ( 507) NXP/STB22X/GSurf: Entering phStbDFB_GfxAllocateBuffer buffer ( 0x4542a8 ) [phStbDFB_gfx_pool.c:342] (-) [Main Thread 2.279] ( 507) NXP/STB22X/GSurf: -> index is 0: offset 0, pitch 2880, size 2073600 (-) [Main Thread 2.279] ( 507) Core/SurfacePool: -> 0x4542e8 (-) [Main Thread 2.279] ( 507) Core/SurfBuffer: update_allocation() (-) [Main Thread 2.279] ( 507) Core/SurfBuffer: -> increasing serial... (-) [Main Thread 2.279] ( 507) Core/SurfacePool: dfb_surface_pool_lock( 0x44f530 [1], 0x4542e8 ) (>) [Main Thread 2.280] ( 507) NXP/STB22X/GLock: Entering phStbDFB_GfxLock lock->buffer ( 0x4542a8 ) alloc->fb_id=0 [phStbDFB_gfx_pool.c:438] (-) [Main Thread 2.280] ( 507) NXP/STB22X/GLock: -> offset 0, pitch 2880, addr 0x2c65a000, phys 0x02000000 (<) [Main Thread 2.280] ( 507) NXP/STB22X/GLock: Returning from phStbDFB_GfxLock [phStbDFB_gfx_pool.c:451] (-) [Main Thread 2.280] ( 507) Core/GfxState: -> switch from (nil) [0] to 0x44ef2c [1] (-) [Main Thread 2.646] ( 507) Core/GfxState: -> mod_hw 0x00033fff, modified 0x00000000 (-) [Main Thread 2.646] ( 507) Core/GfxState: -> mod_hw 0x00033fff, set 0x00000000 (-) [Main Thread 2.646] ( 507) Core/GfxState: => mod_hw 0x00000000, set 0x00000001 (-) [Main Thread 2.647] ( 507) Core/SurfBuffer: dfb_surface_buffer_unlock( 0x44efd8 )
However the same section in DirectFB 1.2.3 is: (-) [Main Thread 1.931] ( 507) Core/WindowStack: dfb_windowstack_resize( 0x44fed0, 720x720 ) (-) [Main Thread 1.931] ( 507) Core/WindowStack: dfb_windowstack_repaint_all( 0x44fed0 ) (-) [Main Thread 1.932] ( 507) Core/GraphicsOps: dfb_gfxcard_fillrectangles( 0x7ffc43a0 [1], 0x44b254 ) (-) [Main Thread 1.937] ( 507) Core/GraphicsOps: dfb_gfxcard_state_check( 0x44b254, 0x00000001 ) [0,0 - 719,719] (-) [Main Thread 1.938] ( 507) Core/GfxState: dfb_gfxcard_state_check( 0x44b254, 0x00000001 ) drawing -> 0x4509d0 (-) [Main Thread 1.938] ( 507) Core/GfxState: <- checked 0x00000000, accel 0x00000000, modified 0x00033fff, mod_hw 0x00000000 (-) [Main Thread 2.303] ( 507) Core/GfxState: -> checked 0x00000000, accel 0x00000000, modified 0x00033fff, mod_hw 0x00000000 (-) [Main Thread 2.304] ( 507) Core/GfxState: -> checked 0x00000001, accel 0x00000001, modified 0x00033fff, mod_hw 0x00000000 (-) [Main Thread 2.304] ( 507) Core/GfxState: => checked 0x00000001, accel 0x00000001, modified 0x00000000, mod_hw 0x00033fff (-) [Main Thread 2.304] ( 507) Core/GfxState: dfb_gfxcard_state_acquire( 0x44b254, 0x00000001 ) drawing -> 0x4509d0 (-) [Main Thread 2.304] ( 507) Core/SurfBuffer: dfb_surface_buffer_lock( 0x4502a8, 0x00000002, 0x44b300 ) (-) [Main Thread 2.305] ( 507) Core/SurfBuffer: -> GPU WRITE (-) [Main Thread 2.305] ( 507) Core/SurfBuffer: -> no suitable allocation (yet)! (-) [Main Thread 2.305] ( 507) Core/SurfacePool: dfb_surface_pools_allocate( 0x4502a8, 0x2 ) (-) [Main Thread 2.305] ( 507) Core/SurfacePool: -> 720x720 ARGB - SHARED LAYER EXTERNAL (-) [Main Thread 2.306] ( 507) Core/SurfacePool: dfb_surface_pools_negotiate( 0x4502a8 [ARGB], 0x02, max 6 ) (-) [Main Thread 2.306] ( 507) Core/SurfacePool: -> 0x02 0x211 required (-) [Main Thread 2.306] ( 507) Core/SurfacePool: -> [3] 0x1f 0x21f (0) [/dev/mem] (-) [Main Thread 2.306] ( 507) DevMem/Surfaces: devmemTestConfig( 0x4502a8 ) (-) [Main Thread 2.306] ( 507) Core/SurfacePool: => OK (-) [Main Thread 2.307] ( 507) Core/SurfacePool: -> [4] 0x1f 0x211 (0) [GFX Pool] (>) [Main Thread 2.307] ( 507) NXP/STB22X/GSurf: Entering phStbDFB_GfxTestConfig buffer ( 0x4502a8 ) [phStbDFB_gfx_pool.c:302] (-) [Main Thread 2.307] ( 507) Core/SurfacePool: => OK (-) [Main Thread 2.307] ( 507) Core/SurfacePool: -> [5] 0x1f 0x211 (0) [Video Layers Pool] (>) [Main Thread 2.307] ( 507) NXP/STB22X/VSurf: Entering phStbDFB_VideoTestConfig buffer ( 0x4502a8 ) resource_id (0) [phStbDFB_video_pool.c:280] (-) [Main Thread 2.308] ( 507) NXP/STB22X/VSurf: -> surface->type=0x00000211 and surface->resource_id=0 (<) [Main Thread 2.308] ( 507) NXP/STB22X/VSurf: Returning from phStbDFB_VideoTestConfig Surface not allocated [phStbDFB_video_pool.c:305] (-) [Main Thread 2.308] ( 507) Core/SurfacePool: => 2 pools available (-) [Main Thread 2.308] ( 507) Core/SurfacePool: => 0 pools out of memory (-) [Main Thread 2.309] ( 507) Core/SurfacePool: dfb_surface_pool_allocate( 0x4487d8 [3], 0x4502a8 ) (-) [Main Thread 2.309] ( 507) DevMem/Surfaces: devmemAllocateBuffer( 0x4502a8 ) (-) [Main Thread 2.309] ( 507) DevMem/Surfaces: -> offset 2165744, pitch 2880, size 2073600 (-) [Main Thread 2.309] ( 507) Core/SurfacePool: -> 0x4502e8 (-) [Main Thread 2.310] ( 507) Core/SurfacePool: -> 0x4502e8 (-) [Main Thread 2.310] ( 507) Core/SurfBuffer: dfb_surface_allocation_update() (-) [Main Thread 2.310] ( 507) Core/SurfBuffer: -> increasing serial... (-) [Main Thread 2.310] ( 507) Core/SurfPoolLock: dfb_surface_pool_lock( 0x4487d8 [3], 0x4502e8 ) (-) [Main Thread 2.310] ( 507) DevMem/SurfLock: devmemLock( 0x4502a8 ) (-) [Main Thread 2.311] ( 507) DevMem/SurfLock: -> offset 2165744, pitch 2880, addr 0x2b1f6bf0, phys 0x02a05bf0 (-) [Main Thread 2.311] ( 507) Core/SurfBuffer: -> locked 1x now (-) [Main Thread 2.311] ( 507) Core/GfxState: -> switch from (nil) [0] to 0x44b254 [1] (-) [Main Thread 2.677] ( 507) Core/GfxState: -> mod_hw 0x00033fff, modified 0x00000000 (-) [Main Thread 2.677] ( 507) Core/GfxState: -> mod_hw 0x00033fff, set 0x00000000 (-) [Main Thread 2.677] ( 507) Core/GfxState: => mod_hw 0x00000000, set 0x00000001 (-) [Main Thread 2.678] ( 507) Core/SurfBuffer: dfb_surface_buffer_unlock( 0x44b300 ) (-) [Main Thread 2.678] ( 507) Core/SurfPoolLock: dfb_surface_pool_unlock( 0x4487d8 [3], 0x4502e8 ) As you can see DirectFB has 2 choices of where to allocate its surface, 1 is my gfx_pool and the other is devmem. It seems that in DirectfB 1.2.0 it tried gfx_pool first and then devMem However this search order seems to have reversed in DirectFB 1.2.3 so it will assign GFX layers in devmem. I think this will have broken davinci as well. I can make this problem go away by setting the priority of my gfx_pool to ret_desc->priority = CSPP_PREFERED; However I was wondering why devmem was the first tested now and not the last? Anyway hope this helps to show the issue Many thanks Daniel Laird _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev