Ha Nguyen
2012-05-15 00:49:26 UTC
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
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