[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