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.

Reply via email to