[mythtv-users] XVMC-VLD on VIA CN700 not working with .21

R. G. Newbury newbury at mandamus.org
Wed Mar 19 19:17:46 UTC 2008


David Shay wrote:
> I've read the numerous other threads on XvMC-vld not working with .21
> and I'm not having *that* problem, but I think a different one.
> 
> For background, I'm using a VIA EN12000EG board which uses the CN700
> Northbridge chipset for video.  I know it's not capable of HDTV, but
> it can still run at up to 1024x1024 with vld, or at least it used
> to...
> 
> I'm running the openchrome drivers from SVN updated as of last night,
> kernel 2.6.22 on Gentoo and also just updated to SVN 16692 last night
> as well (so I have the configure patch for the *other* XvMC vld
> problem already).
> 
> Here's the mythfrontend log:
> 
> 2008-03-19 10:58:18.971 AFD: Opened codec 0x8bd22c0, id(MPEG2VIDEO_XVMC_VLD) typ
> e(Video)
> 2008-03-19 10:58:18.971 AFD: codec MP2 has 2 channels
> 2008-03-19 10:58:18.971 AFD: Opened codec 0x8b88470, id(MP2) type(Audio)
> 2008-03-19 10:58:19.000 Opening audio device '/dev/dsp'. ch 2(2) sr 48000
> 2008-03-19 10:58:19.000 Opening OSS audio device '/dev/dsp'.
> 2008-03-19 10:58:20.522 VideoOutputXv: XvMC Adaptor Name: 'XV_SWOV'
> Unable to create XvMC Surface.
> 
> I don't have the timing down exactly, but there are messages in
> Xorg.0.log that indicate the "too many surfaces" is a problem as well:
> 
> Fulfilled via DRI at 27382528
> Fulfilled via DRI at 27912480
> Fulfilled via DRI at 28442432
> Fulfilled via DRI at 28972384
> (EE) CHROME(0): [XvMC] ViaXvMCCreateSurface: Too many surfaces !
> Freed 28972384 (pool 2)
> 
> I'm guessing this may have crept in with the -vid merge, but I'm not
> sure.  Any additional debugging info needed?

This *may* be problem specific to the Via chipsets. I used to run an 
SP13000 and it exhibited the same problem because myth was attempting to 
create too many XZvMC surfaces and failing. For I while I had my own 
patch which reduced xvmc_buf_attr(Set_NumSurf) from 16 to 14, in 
libs/libmythv/videoout_xv.cpp.

A quick grep shows that that structure is no longer used... (I pointed 
this out to DanielK and it may have been changed as a result).

Try looking at the code around this line...(you will have to grep for it)..

libs/libmythtv/videoout_xv.cpp:    xvmc_surfs = 
CreateXvMCSurfaces(xvmc_buf_attr->GetMaxSurf(),

16 surfaces is apparently exactly equal to, or one byte larger than the 
allocated 64M (??- 64K??) buffer.

See if the result is equal to 16....which is the fault level...reduce to 
12 or 14...Cross fingers..

Geoff


More information about the mythtv-users mailing list