Zou, Nanhai wrote:
>> -----Original Message-----
>> From: stephane.marche...@gmail.com [mailto:stephane.marche...@gmail.com] On
>> Behalf Of Stephane Marchesin
>> Sent: 2009年4月9日 15:20
>> To: Zou, Nanhai
>> Cc: Corbin Simpson; Denis Martinez; mesa3d-dev@lists.sourceforge.net
>> Subject: Re: [Mesa3d-dev] Google Summer of Code
>>
>> On Thu, Apr 9, 2009 at 08:49, Zou, Nanhai <nanhai....@intel.com> wrote:
>>>
>>> I have not been looking into gallium support yet.
>>> Are you working on software fallback or on some real hardware?
>> We have xvmc on top of g3dvl working on nv40-class hardware (and more
>> generically, it should work any card which has a gallium driver).
>> We've had this since last year's summer of code. Our main purpose is
>> to avoid reinventing the wheel with each driver...
>>
>>> I am now working on HW accelerated media support for our chip(XVMC etc), 
>>> next
>> plan is to support VAAPI.
>>> The code is now in our 2D dirver, in freedesktop.org xf86-video-driver . The
>> master branch has MC only implement,
>>> There is a branch xvmc-vld which support offload mpeg2 decode to GPU from 
>>> VLD
>> entry.
>>> Media kernels running on GPU will do MC and IDCT and IQ, fix function unit
>> HW will do VLD decode.
>> Well, we don't have hw video decoding specs for nvidia/ati (and on
>> some hardware we don't even have any video decoding hw), so we use the
>> shaders for everything anyway.
>> As far as VAAPI goes, someone could add a lib for it on top of g3dvl,
>> that's probably the nicest solution. But as I said in the other email,
>> the number of VAAPI entry points makes it difficult to implement. In
>> reality we don't need all these entry points, only old/embedded
>> hardware needs them, and that type of hardware has no gallium support
>> anyway.
> 
>  You can choose to implement 1 single entry point e.g. VLD.
>  What I think VAAPI is missing is post processing,However  I can talk to 
> VAAPI people to improve the API, anyway VAAPI is only at version 0.30.

VAAPI is currently "unplanned," which IME typically translates to
"patches welcome." Ditto for XvBA. :3

In all honesty, VDPAU is simple, straightforward, and (for once) we're
in a position where implementing the nVidia
screw-the-standards-let's-write-our-own-standard system actually is
possible and full of win, so that's our first target.

(Oh, and embedded hardware support could always be added. Gallium pipes
for NEON, anybody?)

>>> I think merge the VAAPI support into mesa might be a good idea.
>> If you don't have gallium for your chip, you have a specific
>> implementation then? In which case it doesn't make much sense to merge
>> it into mesa...
>>
> 
> 
>  Our current XVMC-vld implementation is in the 2D driver. 
> 
>  I am planning to implement to support VAAPI in a stand alone liberary.
>  However I am thinking implement VAAPI in mesa may help us to have less 
> duplicated code,   That means support for dri stuff, rendering, multi stream 
> blending , scaling, subpicture easier.

Well, Gallium code's generic, so it does lead to less duplication.
Rather than write Intel-specific code, you write Gallium code which all
drivers can use, and then beef up the Intel drivers to be able to handle it.

>>> However currently we program media kernel with very low level assembly code.
>>> I fell it is better we can have some higher level shading language for later
>> complex H.264 support and video post processing.
>>> But I don't think GLSL like language can generate efficient enough media
>> processing code.
>>> So I am wondering which kind of programming language are you using for GPU
>> media decoding.
>> Well we already use a GLSL-like language for that (intermediate
>> gallium representation) and we already have a working xvmc
>> implementation, so I don't think these concerns hold.
> 
> 
> Does the XVMC implementation support MC only flag or MC + IDCT?
> Is it efficient enough to decode high rate HD content? 

Yes, yes.

> Is it a high level language or you mean you do MC and IDCT with mesa internal 
> op?
> I think a high level language is most useful for performance tuning and 
> debuging, consider the complexity of H.264 and post processing.
> 
> I have considered using GLSL, but for our media pipeline, 
> hardware usually  run instruction in 16 ways or wider.
> So if the language can provide data element like vec16 or even vec32 vec64 
> that would be nice.

The internal representation used in Gallium is TGSI and it should be
sufficient for nearly all your needs. Check out
http://www.tungstengraphics.co/wiki/files/tgsi.pdf for the formal
specification, or if you'd like more concrete examples, look at
src/gallium/auxiliary/tgsi for Gallium's TGSI utilities, or most of the
drivers in src/gallium/drivers/* for card-specific TGSI decoders.

~ C.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to