Hello, I'm using directfb to display video from homemade frames, draw graphics and PiP on videolayer.
My hardware is Via cle266 chipset and I've install viafb framebuffer driver from directfb cvs. Drawing graphics on unichrome/cle266 graphics layer works well but I've had bad performances with videolayer ( and I try a lot of configuration). I can't use preallocated flag to create surface because our I420 frames have channels non contingous in memory so I need to perform at least some memcopy to adjust the data. I see that copy directly in video memory is slow,that blit from system to video memory is not support ( in Unichrome gfxdriver readme) . Can anyone tell me the best layer and surfaces configuration to reduce cpu usage. For now my solution code is : videolayer : config.flags=(DFBDisplayLayerConfigFlags)(DLCONF_PIXELFORMAT|DLCONF_WIDTH | DLCONF_HEIGHT|DLCONF_BUFFERMODE);//); config.pixelformat = DSPF_I420; config.width=screenWidth; config.height=screenHeight; config.buffermode=DLBM_TRIPLE; I get the surface attach on this layer with getSurface method. I create a new surface (framesurface) with this flags: dsc.flags=(DFBSurfaceDescriptionFlags)DSDESC_CAPS|DSDESC_WIDTH|DSDESC_HEIGHT|DSDESC_PIXELFORMAT; dsc.caps=DSCAPS_SYSTEMONLY; dsc.width=frameWidth; dsc.height=frameHeight; dsc.pixelformat = DSPF_I420; I lock this surface, write data on it, unlock, I blit my frame surface on the videosurface and I flip the videoSurface. Is there some configurations to increase the performance? My method take at least 30% of cpu time, Hardware acceleration is set (for example a top command of df_layer /mnt/video0 (v4l) report no cpu usage!! and df_dok show good results). Thanks in advance for every tips . Julien _______________________________________________ directfb-users mailing list [email protected] http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users
