[Openchrome-users] XvMC PutSlice

Thomas Hellström thomas
Tue Oct 3 07:07:28 PDT 2006


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





More information about the Openchrome-users mailing list