[mythtv-users] Openchrome XvMC problems in mythfrontend

Robin Gilks g8ecj at gilks.org
Sat Jun 13 00:28:39 UTC 2009


>> Ronald Pijnacker wrote:
>>>>> Peter Holmes wrote:
>>>>>>> Ronald Pijnacker wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> This week I tried to upgrade my mythfrontend to mythbuntu jaunty.
>>>>>>>> Running mythfrontend gives an error about not being able to create
>>>>>>>> an XvMC Surface.
>>>>>>>> The hardware I'm running on is a VIA EPIA M1000, the bug report
>>>>>>>> can be found here:
>>>>>>>>
>>>>>>>> https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-openchrome/+bug/371512
>>>>>>>>
>>>>>>>> Initially I filed a bug report under the openchrome video driver,
>>>>>>>> but after
>>>>>>>> a suggestion from the openchrome irc group, I ran xine with XvMC
>>>>>>>> enabled.
>>>>>>>> This worked without any problems.
>>>>>>>> So the question now is, why I'm running into problems with mythtv.
>>>>>>>> Any ideas?
>>>>>>>>
>>>>>>> As a quick hack, I modified the udev rules so that udev renames
>>>>>>> /dev/dri/card0 to /dev/dri/card1, which causes MythTV ot not
>>>>>>> use DRM vblank. Instead it uses usleep with busy wait. After
>>>>>>> that, no more stutter.
>>>>>>>
>>>>>>> Therefore, it appears that the problem is with DRM vblank.
>>>>>>> However, I do not know whether this is a bug in DRM or in
>>>>>>> MythTV.
>>>>>> Could you provide information about the change you made. I would
>>>>>> like to try this to see if it fixes my problem (see
>>>>>> [mythtv-users] Video Jerky on a Epic Via Sp8000 board)
>>>>>>
>>>>> You will need to find your where the udev rules are located on your
>>>>> system. Newer systems will likely have the rules in
>>>>> /lib/udev/rules.d/. If not, they will likely be in
>>>>> /etc/udev/rules.d/.
>>>>>
>>>>> Next you will want to create a udev rules file 99-user.rules in the
>>>>> rules directory with the line
>>>>> KERNEL=="card*", NAME="dri/card1%n"
>>>>> The reason for naming the file 99-user.rules is to ensure that it
>>>>> runs after the rules file the normally puts card* devices in the
>>>>> dri directory.
>>>>>
>>>>> Finally, you will want to trigger the udev rules. On some systems,
>>>>> you will use the command
>>>>> udevtrigger
>>>>> on other systems you will use
>>>>> udevadm trigger
>>>>>
>>>>> After that, the /dev/dri/ should not contain any card0 entries.
>>>>> Since MythTV's DRM sync looks for /dev/dri/card0, it will fail and
>>>>> move on to the next sync method.
>>>> Well I tried all that but I still had /dev/dri/card0, so I modified
>>>> the mythcode and told it not to use dri.
>>>> Retested it and now it works fine.
>>>
>>> I still have /dev/dri/card0 too. What did you change in mythtv to
>>> disable DRI?
>>
>> Have a look at <http://svn.mythtv.org/trac/ticket/6561>.
>>
>> Specifically, I commented out the line
>> TESTVIDEOSYNC(DRMVideoSync);
>> in
>> libs/libmythtv/vsync.cpp
>
> Hi Paul,
>
> I tried this, but unfortunately with no change. The CPU is still at 100%.
>
> Thanks,
>
> Ronald

I had to go back to 2.6.25 kernel to get mine working again. Appears that
2.6.26 broke DRI for Openchrome and even 2.6.28 (the last I tried) hasn't
fixed it.

-- 
Robin Gilks




More information about the mythtv-users mailing list