[Mesa-dev] [PATCH v4 0/6] nouveau: add support for vaapi

Ilia Mirkin imirkin at alum.mit.edu
Fri Sep 18 13:34:59 PDT 2015


On Fri, Sep 18, 2015 at 4:29 PM, Julien Isorce <julien.isorce at gmail.com> wrote:
>
>
> On 17 September 2015 at 17:52, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>
>> On Wed, Sep 16, 2015 at 8:22 AM, Julien Isorce <j.isorce at samsung.com>
>> wrote:
>> > I added below version4 updates. It works for all codecs expect h264.
>> > Video is visible but lot of blockiness.
>> > Can someone with a Radeon confirm that "LIBVA_DRIVER_NAME=gallium mpv
>> > --hwdec=vaapi"
>> > is working on h264 videos ?
>> > I want to make sure it is not a bug in st/va.
>>
>> The sad reality is that h264 is the only thing that matters (at least
>> from this list of supported codecs). My concern is that this series
>> will regress the situation for people who want to use VA-API -- right
>> now they can use the vdpau <-> vaapi adapter, whereas with this patch
>> series, they will end up with a va-api driver that doesn't work. So I
>> can't merge this as-is.
>
>
> Make perfectly sense.
>
>>
>>
>> Are the various lengths (for inter-bo size/etc) being computed
>> properly
>
>
> In the past I compared the final content of the nouveau_bo buffer at each
> endFrame step , with the content using vdpau. There were the same.
> I will re-check.
> Does it make sense to do that actually ?
> Is there anything else I could compare with vdpau ?

If you're feeding the exact same stuff and everything is exactly the
same, then the results would also be the same. Clearly there's SOME
difference SOMEWHERE :)

>
>>
>> Are you writing stuff to the correct inter bo? IIRC we flip
>> between two of them, perhaps that logic got upset?
>
>
> Probably I missed something. Does the flip happen at each endFrame ?
> Could you point out where this flip is in the current upstream code exactly
> ?

I mean stuff like this:

   struct nouveau_bo *bsp_bo = dec->bsp_bo[comm_seq % NOUVEAU_VP3_VIDEO_QDEPTH];

src/gallium/drivers/nouveau/nvc0/nvc0_video_bsp.c:      bo_refs[1].bo
= dec->inter_bo[comm_seq & 1] = inter_bo = tmp_bo;

and so on. Make sure that comm_seq is incremented once per frame, not
once per chunk :)

  -ilia


More information about the mesa-dev mailing list