[mythtv-users] Vaapi use on Sandy Bridge

William Otten williammotten at gmail.com
Wed Feb 8 14:17:41 UTC 2012


On 2/7/2012 5:53 AM, William Otten wrote:
> On 2/6/2012 2:23 PM, William Otten wrote:
>> On 2/6/2012 10:56 AM, william otten wrote:
>>>
>>>
>>> On Sat, Feb 4, 2012 at 8:58 AM, William Otten 
>>> <williammotten at gmail.com <mailto:williammotten at gmail.com>> wrote:
>>>
>>>     On 2/3/2012 9:59 PM, william otten wrote:
>>>>
>>>>
>>>>     On Fri, Feb 3, 2012 at 4:01 PM, Matt Garman
>>>>     <matthew.garman at gmail.com <mailto:matthew.garman at gmail.com>> wrote:
>>>>
>>>>         Hi William,
>>>>
>>>>         The only way I know to verify the patch is in place (other
>>>>         than by testing in myth using opengl) is to look at the
>>>>         source. Look at that function I mentioned in the earlier
>>>>         post, and see if it includes the additional null pointer
>>>>         check. Or, I suppose if you are already in contact with the
>>>>         xorg devs, just ask them directly.
>>>>
>>>>         I'm afraid I can't think of any other way to check. Hope
>>>>         that helps!
>>>>         Matt
>>>>
>>>>         On Feb 3, 2012 6:47 AM, "William Otten"
>>>>         <williammotten at gmail.com <mailto:williammotten at gmail.com>>
>>>>         wrote:
>>>>
>>>>             On 1/29/2012 7:34 PM, Matt Garman wrote:
>>>>
>>>>                 On Sat, Jan 28, 2012 at 01:55:31PM -0600, william
>>>>                 otten wrote:
>>>>
>>>>                     The patch is quite simple and involves one
>>>>                     function in
>>>>                     mesa/drivers/dri/intel/intel_screen.c
>>>>                     Another person on this list
>>>>                     reported that the patch solved an identical
>>>>                     crash for him.  Before
>>>>                     diving into much debugging, I suggest you apply
>>>>                     this patch to the mesa
>>>>                     7.11.2 code, recompile it, and give it a test.
>>>>
>>>>                 I may be the "other person" who has been referred
>>>>                 to several times
>>>>                 in this thread, as I did exactly that: I patched
>>>>                 the intel_screen.c
>>>>                 file and rebuilt mesa, and now have a nicely
>>>>                 working OpenGL-based
>>>>                 SNB frontend (which I'm proud to say is also quite
>>>>                 small and
>>>>                 low-power :).
>>>>
>>>>                 > From my skimming of this thread, it looks like
>>>>                 the individual with
>>>>                 the patching issues is running Ubuntu.  I'm running
>>>>                 CentOS plus
>>>>                 ATrpms (for MythTV) and elrepo for newer Intel
>>>>                 video drivers and
>>>>                 supporting packages (in particular, mesa).
>>>>
>>>>                 What I did was simply download the source RPM for
>>>>                 mesa from elrepo,
>>>>                 manually hack the intel_screen.c file according to
>>>>                 the patch, and
>>>>                 rebuild.  I don't know how to do this with
>>>>                 Ubuntu/debian packages,
>>>>                 but I can't imagine the process is dramatically
>>>>                 different from an
>>>>                 RPM-based distro.
>>>>
>>>>                 FWIW, the patch that has been mentioned doesn't
>>>>                 apply cleanly to the
>>>>                 mesa source from elrepo, because it's a slightly
>>>>                 older version:
>>>>                 looks like the mesa-20111103 snapshot.
>>>>
>>>>                 But the patch is super simple.  Just look for the
>>>>                 function
>>>>                 "intelDRI2Flush()" in the file mentioned above.  It
>>>>                 should be near
>>>>                 the top of the file.  Just replace that function
>>>>                 definition with
>>>>                 this one:
>>>>
>>>>                 static void
>>>>                 intelDRI2Flush(__DRIdrawable *drawable)
>>>>                 {
>>>>                    GET_CURRENT_CONTEXT(ctx);
>>>>                    struct intel_context *intel = intel_context(ctx);
>>>>
>>>>                    if (intel != NULL) { /* add this... */
>>>>                        if (intel->gen<  4)
>>>>                            INTEL_FIREVERTICES(intel);
>>>>
>>>>                        intel->need_throttle = GL_TRUE;
>>>>
>>>>                        if (intel->batch.used)
>>>>                            intel_batchbuffer_flush(intel);
>>>>                    } /* ...and this */
>>>>                 }
>>>>
>>>>                 As I commented above, the patch just adds two
>>>>                 lines, which just do a
>>>>                 NULL pointer safety check.
>>>>
>>>>                 So, generic instructions would be:
>>>>
>>>>                     - get your distro's newest mesa source package
>>>>                     - unpack it (e.g. RPMs are really cpio archives)
>>>>                     - track down the intel_screen.c file and patch
>>>>                 (or manually
>>>>                       edit) it as described above
>>>>                     - re-package the mesa source package
>>>>                     - use your distro's source package build tool
>>>>                 to build a binary
>>>>                       package (e.g. rpmrebuild for RPM-based distros)
>>>>
>>>>                 Working with your distro's source packages should
>>>>                 be well-documented
>>>>                 (at least for major distros like Ubuntu and Fedora).
>>>>
>>>>                 The other option is to wait: I also reported my
>>>>                 success with this on
>>>>                 the elrepo mailing list.  The elrepo mesa
>>>>                 maintainer said he didn't
>>>>                 want to update the package with a patch that wasn't
>>>>                 committed
>>>>                 (according to this thread, it is now, but wasn't
>>>>                 when I made the
>>>>                 comment).  So I would imagine that package
>>>>                 maintainers will probably
>>>>                 be open to incorporating this patch into their
>>>>                 builds now that it's
>>>>                 officially committed... I might request it for
>>>>                 elrepo if I get
>>>>                 around to it.
>>>>
>>>>                 In other words, with this patch officially
>>>>                 committed, it will
>>>>                 eventually make its way into different distro's
>>>>                 mesa builds.
>>>>
>>>>                 HTH,
>>>>                 Matt
>>>>
>>>>                 _______________________________________________
>>>>                 mythtv-users mailing list
>>>>                 mythtv-users at mythtv.org
>>>>                 <mailto:mythtv-users at mythtv.org>
>>>>                 http://www.mythtv.org/mailman/listinfo/mythtv-users
>>>>
>>>>             Matt
>>>>             I appreciate your input on this issue. Not being a
>>>>             programmer, I can't get my brain wrapped around all
>>>>             that needs to be considered or done to test this patch.
>>>>             With that said, I have setup with xorg-edgers in
>>>>             anticipation that the patch will work it's way down
>>>>             stream. I contacted one of the dev's at xorg-edgers and
>>>>             he replied that the patch should be available within a
>>>>             week or two ( that was about a week ago). I have since
>>>>             received a couple of updates from them but I'm not sure
>>>>             if the patch was included. Is there a way to check
>>>>             (other than just trying vaapi with mythtv) to see if
>>>>             the patch is included or has been received by me?
>>>>             Thanks
>>>>             William
>>>>
>>>>     I'm a fish out of water here. I tried to find the source on the
>>>>     xorg-edgers site for over an hour but no luck. The only thing I
>>>>     found was this:
>>>>
>>>>     http://bazaar.launchpad.net/~vcs-imports/mesa/master/revision/26908
>>>>     <http://bazaar.launchpad.net/%7Evcs-imports/mesa/master/revision/26908>
>>>>
>>>>     The other url doesn't work anymore. Also I sent an email to one
>>>>     of the dev's.
>>>>
>>>>
>>>>     _______________________________________________
>>>>     mythtv-users mailing list
>>>>     mythtv-users at mythtv.org  <mailto:mythtv-users at mythtv.org>
>>>>     http://www.mythtv.org/mailman/listinfo/mythtv-users
>>>     I tried the opengl option for render and osd render and it works
>>>     with ffmpeg. So the patch must be working. I will try to use
>>>     debug again with vaapi and see if i can get errors to post since
>>>     the vaapi decoder option still isn't working.
>>>
>>> This the latest debug using the latest master:
>>>
>>> gdb.txt
>>>
>>> http://dl.dropbox.com/u/17574275/gdb%202-6-12.txt
>>>
>>> myth.log
>>>
>>> http://dl.dropbox.com/u/17574275/myth%202-6-12.log
>>>
>>> terminal capture
>>>
>>> http://dl.dropbox.com/u/17574275/MythtvBacktrace%202-6-12
>>>
>>> I also changed from ubuntu 11.10 to 12.4. A side note, mythtv plays 
>>> without tearing using ffmpeg and opengl with unity.
>>>
>>>
>>> _______________________________________________
>>> mythtv-users mailing list
>>> mythtv-users at mythtv.org
>>> http://www.mythtv.org/mailman/listinfo/mythtv-users
>> This statement keeps repeating in the command line but not showing up in
>> gdb.txt or myth.log:
>> intel_do_flush_locked failed: Input/output error
>>
>>
>> _______________________________________________
>> mythtv-users mailing list
>> mythtv-users at mythtv.org
>> http://www.mythtv.org/mailman/listinfo/mythtv-users
> I ran debug on the latest master v0.25pre-4398-g7090d59 and got the 
> same result:
> intel_do_flush_locked failed: Input/output error
> The logs look the same so I'm not posting them.
>
>
> _______________________________________________
> mythtv-users mailing list
> mythtv-users at mythtv.org
> http://www.mythtv.org/mailman/listinfo/mythtv-users
I ran debug on the latest master v0.25pre-4422-g334f61f and ubuntu 12.4.
I basically got the same result except when the process was finished 
this time, it ended in mythtv and not the desktop but the keyboard 
seemed to work one time (ctrl-alt-backspace and then ctrl-alt-F1 to 
reboot) but not the last time. The gdb.txt and myth.log didn't show any 
different info. I'm allowing the debug to resolve itself the first time 
and using control-c the second time.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.mythtv.org/pipermail/mythtv-users/attachments/20120208/935e699d/attachment.html 


More information about the mythtv-users mailing list