Discussion:
[directfb-users] different blitting speed for surfaces other than layer's primary surface?
Ha Nguyen
2012-05-15 00:49:26 UTC
Permalink
Hello,

I'm trying to use DirectFB 1.4 5 for Opera browser with a BCM7405 STB
and noticed different blitting speeds from an source surface created
with description.caps = DSCAPS_VIDEOONLY from the super interface's
CreateSurface():
+) to a layer's primary surface created by layer->GetSurface(),
no-software, and same pixel format.It takes about 0.1ms.
+) to any surface created with description.caps = DSCAPS_VIDEOONLY
from the super interface's CreateSurface(), no-software, and same
pixel format. It takes about 1ms.

If I use "no-hardware" configuration, above blitting cases takes about 10ms.

So, can I ask if DirectFB prioritize layers' primary surface over
others surfaces when blitting, even when using hw accel? If not, could
you suggest how to create a surface to achieve similar blitting
performance as the layer's primary surface, please?

I created the surfaces like this:
sdsc.flags = DSDESC_CAPS | DSDESC_PIXELFORMAT | DSDESC_WIDTH | DSDESC_HEIGHT;
sdsc.caps = DSCAPS_VIDEOONLY
sdsc.pixelformat = DSPF_ARGB;
sdsc.width = screen_width;
sdsc.height = screen_height;
DFBCHECK(dfb->CreateSurface( dfb, &sdsc, &blitsurf ));

My box has two layers and I was thinking to use the non-primary
layer's primary surface to feed to Opera but it's only 720x422 size
while I need 720p.

Another notice is that while blitting on the layer's primary surface
is fast, flipping with DSFLIP_BLIT takes like 30 times slower. Is it
expected or it depends on the application how it is using the surface?

Thank you so much for your help,
Ha Nguyen
Denis Oliver Kropp
2012-05-15 09:33:46 UTC
Permalink
Post by Ha Nguyen
Hello,
I'm trying to use DirectFB 1.4 5 for Opera browser with a BCM7405 STB
and noticed different blitting speeds from an source surface created
with description.caps = DSCAPS_VIDEOONLY from the super interface's
+) to a layer's primary surface created by layer->GetSurface(),
no-software, and same pixel format.It takes about 0.1ms.
+) to any surface created with description.caps = DSCAPS_VIDEOONLY
from the super interface's CreateSurface(), no-software, and same
pixel format. It takes about 1ms.
Did you call IDirectFB::WaitIdle() before taking the second time stamp?
--
Best regards,
Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/ |
"------------------------------------------"
Ha Nguyen
2012-05-15 18:08:46 UTC
Permalink
Post by Denis Oliver Kropp
Post by Ha Nguyen
Hello,
I'm trying to use DirectFB 1.4 5 for Opera browser with a BCM7405 STB
and noticed different blitting speeds from an source surface created
with description.caps = DSCAPS_VIDEOONLY from the super interface's
+) to a layer's primary surface created by layer->GetSurface(),
no-software, and same pixel format.It takes about 0.1ms.
+) to any surface created with description.caps = DSCAPS_VIDEOONLY
from the super interface's CreateSurface(), no-software, and same
pixel format. It takes about 1ms.
Did you call IDirectFB::WaitIdle() before taking the second time stamp?
No, I didn't. Now blitting times are about the same, 2 or 3 ms. Thanks
for the input and promptly response.

Take care,
Ha Nguyen

Loading...