[Openchrome-users] XvMC PutSlice

Michael Weber mtweber
Tue Oct 3 08:12:03 PDT 2006


On 10/3/06, Thomas Hellstr?m <thomas at tungstengraphics.com> wrote:
> Michael Weber wrote:
>
> > On 10/3/06, Thomas Hellstr?m <thomas at tungstengraphics.com> wrote:
> >
> >> Michael Weber wrote:
> >>
> >> >   I am looking into a decoding problem with XvMC, does the XvMC
> >> >PutSlice decode the slice immediately or does it delay until the
> >> >SyncSurface?
> >> >
> >> >mike
> >> >
> >> >_______________________________________________
> >> >openchrome-users mailing list
> >> >openchrome-users at openchrome.org
> >> >http://wiki.openchrome.org/mailman/listinfo/openchrome-users
> >> >Main page:
> >> >http://www.openchrome.org
> >> >Wiki:
> >> >http://wiki.openchrome.org
> >> >User Forum:
> >> >http://wiki.openchrome.org/tikiwiki/tiki-view_forum.php?forumId=1
> >> >
> >> >
> >> >
> >> >
> >> It's a bit complicated.
> >>
> >> The slice is queued up in an internal buffer.
> >> If you are not using AGP DMA, that buffer is flushed at the end of
> >> PutSlice and the decoding starts.
> >> SyncSurface polls the engine to make sure it is completed.
> >>
> >> If you are using AGP DMA, the buffer is not flushed until it's full, or
> >> a call to FlushSurface(), and then it is flushed to the kernel AGP
> >> command queue, which might have other tasks to do before tending to the
> >> Slice data.
> >>
> >> To debug, I think you'd best turn off AGP DMA if you have it enabled.
> >>
> >> /Thomas
> >>
> >>
> >
> > Right -- I saw the buffer for the AGP interface.  So for AGP mode,
> > does the last flush happen at the SyncSurface?  And for PCI mode
> > SyncSurface is basically a nop?
> >
> > mike
>
> No, In agpmode, the last flush is in XvMCFlushSurface, which is
> basically a noop in PCI mode.
> XvMCSyncSurface waits for mpeg engine idle in PCI mode, and for AGP
> command interpretion complete and the following mpeg engine idle in AGP
> mode.
>
> /Thomas
>

I guess what I'm asking is what process occurs after the last slice is
sent and before the mpeg engine goes idle?  Is it still processing the
slices?  If so, how does it know that you have sent the last slice to
begin final processing?

mike




More information about the Openchrome-users mailing list