On Mon, Jan 19, 2009 at 23:25, Younes Manton <youne...@gmail.com> wrote:
> On Mon, Jan 19, 2009 at 4:08 PM, Corbin Simpson
> <mostawesomed...@gmail.com> wrote:
>> - Drivers have one hook for taking in video frames, maybe in a context,
>> maybe in a video_context.
>> - Drivers are responsible for all steps of decoding frames, but are free
>> to use methods in Util or Video or whatever auxiliary module we decide
>> to put them in. Things like, say, video_do_idct() or video_do_huffman()
>> might be possible.
>> - Drivers probably shouldn't mix'n'match hardware and software steps,
>> although this is a driver preference, e.g.
>>
>> video_do_foo();
>> nouveau_do_bar();
>> video_do_baz();
>>
>> I would guess that the migration setup would take longer than just doing
>> video_do_bar() instead, but that's just my opinion. I'm sure that not
>> all chipsets are quite like that.
>
> I doubt this will be a problem, I can't think of any reason to fall
> back to software for a stage if the preceding stage was handled in
> hardware or shaders. There may be such an oddball case, but yeah no
> point in mixing hardware, software, and shaders if we have to read
> back from the GPU.

Yeah, there is no existing hardware that would require such a
combination. Actually, from what I can see, the existing fixed pipe
hardware for video decoding that exists today falls within one of
these categories :
- no fixed pipe acceleration at all -> sw CA{BAC,VLC} + shader iDCT +
shader MC + shader CSC
- fixed pipe MC -> sw CA{BAC,VLC} + shader iDCT + fixed MC + shader CSC
- fixed pipe iDCT + MC -> sw CA{BAC,VLC} + fixed iDCT + fixed MC + shader CSC
- fixed pipe CA{BAC,VLC} + iDCT + MC -> fixed CA{BAC,VLC} + fixed iDCT
+ fixed MC + shader CSC

So basically we only need sw CA{BAC,VLC}, all other software stages
can be avoided (and incidently that's the philosophy of gallium).
There is also no way we're going to be able to do efficient
CA{BAC,VLC} using shaders today, and I don't see that happening soon.

>
>> - I think that once a frame's decompressed, we can use the normal
>> methods for putting the frame to a buffer, although I'm sure that people
>> are going to reply and tell me why that's not a good idea. :3
>>
>> So from this perspective, support for new formats needs to be explicitly
>> added per-driver. PIPE_FORMAT_MPEG2, PIPE_FORMAT_THEORA,
>> PIPE_FORMAT_XVID, PIPE_FORMAT_H264, etc.
>
> There are also profile variations to consider, but yeah that's the jist of it.
>

Yes indeed, we discussed this on irc already, and you know I'm afraid
that the number of combinations for fixed pipe stuff could explode
(the 4 combinations * the number of formats). The problem is that this
will have to be duplicated in each driver. Not sure if there's a way
out of this though, and also maybe it doesn't matter because we won't
support too many formats...

Stephane

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to