Quoting Antonino Daplas ([EMAIL PROTECTED]): > Hi, > > I have added Overlay support the the i810 gfxdriver that I wrote. I > noticed that rendering to the backbuffer is not supported. Significant > 'tearing' effects can be seen when playing video using 'mplayer -vo > directfb'. Mplayer, by default, blits or memcopies to the frontbuffer > directly which causes the 'tearing' effects. > > I traced this to allocate_surface() which creates a surface with a > DSCAPS_FRONTONLY capability. Is is possible that it also passes a > DSCAPS_FLIPPING if config->buffermode == DLBM_BACKVIDEO aside from > writing a gfxdriver-specific xxxAllocateSurface?
The reallocate_surface() method is missing code that changes buffer modes of surfaces. Also the drivers' FlipBuffers methods are not yet implemented though there should be a default one like for surface allocation. > Because I wanted to eliminte this 'tearing' effect, I modified > allocate_surface() so it also passes DSCAPS_FLIPPING depending on the > buffermode. I also experimented with mplayer and modified it so it > renders to the backbuffer then calls layer->Flip() afterwards. The > tearing effects disappear this way. Also, flipping, instead of > blitting, effectively bypasses the YV12 blit problem. The default configuration is defined by the driver. All drivers use non-flipping as default. IDirectFBDisplayLayer::SetConfiguration() can be used to change the buffer mode. > Another thing I noticed is that all of the gfxdriver's > xxxTestConfiguration() will not fail if config->flags == > DLCONF_BUFFERMODE and config->buffermode == DLBM_BACKVIDEO. This might > confuse the client that buffer flipping is supported when it is actually > not. It's supported but not fully implemented... -- Best regards, Denis Oliver Kropp .------------------------------------------. | DirectFB - Hardware accelerated graphics | | http://www.directfb.org/ | "------------------------------------------" Convergence GmbH -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe directfb-dev" as subject.
