Hi, Denis
Thanks for your comments.

On Sat, Oct 18, 2008 at 12:23 PM, Denis Oliver Kropp <[EMAIL PROTECTED]>wrote:

> 冯要文 wrote:
>
>> Hi, All
>>
>> I'm developing applications based on directfb with HW acceleration.
>>
>
> Which hardware and DirectFB version?


The hardware is in FPGA and not released to the market yet.
I use DirectFB-1.2.6.

>
>
>  I'm using a single buffer.
>>
>
> I assume that you do this because you're not rendering directly into the
> displayed memory portion anyhow and require a Flip() even with a single
> buffer (exclusive layer).


I use examples from DirectFB site to test the driver.

I'm really a newbie to DirectFB.
I render on the display memory directly. From your comments, I think the
Flip is redundant.


>
> What's your way of setting up the output surface (primary)?
>
>  My application look like this:
>>
>> ...
>> CreateSurface
>> Drawing/Blitting
>> Flip
>> WaitIdle
>>
>
> Why not first WaitIdle() and then Flip()?


Sorry. The Filp is after the WaitIdle in the fact. I made a mistake.

>
>
> Maybe in your case the Flip() is performed asynchronously, a bit later?
>
> I guess that's why you wait afterwards, but it's most likely a coincidence
> that the WaitIdle() is about the right time to wait...
>
> I assume, but are you running this in a loop? Otherwise it would be even
> more
> strange, like some commands not being flushed...
>
> Are you missing the last pieces that were drawn, or do you see the the
> first
> piece overwriting the rendered frame already?


No. I miss some portion of a single drawing/blitting primitive. e.g. I lost
a corner when I fill a rectangle.
I know it is the cache data not flushed by hardware. So I need to flush the
cache and wait the hardware for idle.


>  My questions are:
>> 1. Is WaitIdle the synchronization primitive for directfb?
>> I use WaitIdle to make sure the HW has been finished the drawing/blitting.
>> Otherwise the pictures on the screen are incomplete - lost a corner, etc.
>>
>
> Yes, WaitIdle() is the global synchronization method for the one
> accelerator.
>
>  2. Are the synchronizations automatically done by Flip if I use
>> double/triple buffer?
>>
>
> Yes, but they are also done with single buffering.
>
> Have a look at dfb_layer_region_flip_update() in src/core/layer_region.c.
>
> --
> Best regards,
>  Denis Oliver Kropp
>
> .------------------------------------------.
> | DirectFB - Hardware accelerated graphics |
> | http://www.directfb.org/                 |
> "------------------------------------------"
>



-- 
Thanks,
Yaowen.Feng
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to