[mythtv-users] Openchrome XvMC problems in mythfrontend

Ronald Pijnacker pijnacker at dse.nl
Fri Jun 12 21:08:00 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


More information about the mythtv-users mailing list