[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