[Nouveau] [Bug 89969] vaDriverInit fails with gallium/nouveau driver

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jul 17 16:08:26 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=89969

--- Comment #8 from Julien Isorce <julien.isorce at gmail.com> ---
Created attachment 117214
  --> https://bugs.freedesktop.org/attachment.cgi?id=117214&action=edit
WIP - nouveau: add support for chunk decoding


A: resize buffer in nvc0_decoder_bsp:
http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/nouveau/nvc0/nvc0_video_bsp.c#n73

B: memcpy of the data in nouveau_vp3_bsp:
http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/nouveau/nouveau_vp3_video_bsp.c#n294

For radeon driver it both happens in ruvd_decode_bitstream.

To compare radeon to nouveau:

struct ruvd_decoder.bs_buffers is an array of struct rvid_buffer that hold a
ref on struct r600_resource, aka pipe_resource.

struct nouveau_vp3_decoder.bsp_bo is an array of struct nouveau_bo (which comes
from libdrm/nouveau library)

So if I am right, in the function nvc0_decoder_decode_bitstream it should
resize the nouveau_bo buffers and store current data, i.e. A and B. 

So I made a patch that first splits nvc0_decoder_bsp to extract A and B into a
new function nvc0_decoder_bsp_next_chunk. The remaining part of
nvc0_decoder_bsp go to nvc0_decoder_bsp_end_frame.

I just realize the patch is missing the preserving part while resizing buffers
(equivalent of the memcpy in rvid_resize_buffer
http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon_video.c#n100)
that could explain why it is still not working.

But I wanted to know if I am on the right track or not ?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20150717/2e6e09c5/attachment.html>


More information about the Nouveau mailing list