Sorry for the late reply on this. Mailing lists are going to get more love 
now...

On 09/15/12 01:30, Poole, Bryce wrote:
>   d) When the window manager activates, it repaints, creating a surface and 
> flipping it. In my systems driver, this reactivates the layer so that the 
> layer isn't destroyed/released. There now exists a ghost/orphaned layer with 
> no interface.

You mean the primary (shared) layer context/region keeps active?

>   e) Call IDirectFB_Release, it hits dfb_core_shutdown and calls 
> fusion_object_pool_destroy( shared->layer_region_pool, core->world ) and this 
> releases the context, but this happens after fusion is stopped and other 
> cleanup gets missed.
> 
> So after calling IDirectFBLayer_Release, a context is activated that creates 
> an active layer with no way of releasing the final active context. I can't 
> seem to find where the final context is also released when the layer is 
> released.
> 
> Any ideas on where to go next?

I would need to investigate further and also want to optimise the layer context
management, so that we no longer have implicit contexts for example.

I think the evil function is dfb_layer_get_primary_context() that will create a
static local (in master) reference to the context in layer->contexts.primary.

-- 
Denis Oliver Kropp
DirectFB integrated media GmbH
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to