How to get XVMC on i965 ?
R. G. Newbury
newbury at mandamus.org
Tue Jun 3 15:33:37 PDT 2008
>> Then this is _really_ odd:
>>
>> man intel | grep -C 2 XvMC
>>
>> Option "XvMCSurfaces" "integer"
>> This option enables XvMC. The integer parameter specifies the
>> number of surfaces to use. Valid values are 6 and 7. Default:
>> XvMC is disabled.
>>
>> sean
>>
>>
>
> XvMC currently is only supported on i915. These configurations can work
> on i915.
You have to read the intel man page VERY carefully. XvMC DOES work on,
for example my 945 chipset, but NOT (properly)for all image sizes,
From 'man intel'
The following driver Options are supported for the i810 and i815 chipsets:
...
Option "XvMCSurfaces" "integer"
This option enables XvMC. The integer parameter
specifies the number of surfaces to use. Valid values are 6 and 7.
Default: XvMC is disabled.
The following driver Options are supported for the 830M and
later chipsets:
...
Option "XvMC" "boolean"
Enable XvMC driver. Current support MPEG2 MC on 915/945
and G33 series. User should provide absolute path to libIn-
telXvMC.so in XvMCConfig file. Default: Disabled.
Unfortunately, the latter statement is ....sorta...incomplete.
Buried in the code are limits on the size of an xvmc width/height
frame...namely 720x576.
For fun, I defined MAX_WIDTH and MAX_HEIGHT as constants (1440 756) in
i830_hwmc.h and changed the hard-coded constants in i915_hwmc.c to
variables and added an #include i830_hwmc.h. It also required an
#include and re-define of I810_XVMC_MAXWIDTH etc in /src/xvmc/I810XvMC.h
to get rid of the hard-coded constants there and refer to them by way of
the defined constants in i830_hwmc.h (That seems to be a common file for
the xvmc branch).
If the attached diff makes it, all will be explained.. The changes are
against the source of the 2.3.1 version of the driver.
This code compiles, but DOES NOT WORK for content larger than about
720x576. It plays xvmc accelerated standard def streams in mplayer, but
does not properly play 1378x720 streams. Those come out bright green,
like a night-vision scope, although the underlying image is played, in a
frame which appears to be about 1280x700 on my 1368x720 native
resolution LCD TV. Mplayers output is not helpful as to what has
happened/gone wrong.
( I have not exhaustively tested xine or mythtv).
So: small frames good, large frames bad...? (If xorg.conf is properly
tuned)
Why? I have no idea. There are, however, some other hard coded max image
sizes in i830_video.c which may have come into play...
i830_video.c:134:#define IMAGE_MAX_WIDTH 1920
i830_video.c:135:#define IMAGE_MAX_HEIGHT 1088
i830_video.c:136:#define IMAGE_MAX_WIDTH_LEGACY 1024
i830_video.c:137:#define IMAGE_MAX_HEIGHT_LEGACY 1088
Grepping MAX against the source is... interesting, especially when you
have NO idea what this stuff actually does!
I just poke around and hope that it's not a killer bee nest I am poking...
R. G. Newbury
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xvmc-diff
URL: <http://lists.x.org/archives/xorg/attachments/20080603/d871cf19/attachment.ksh>
More information about the xorg
mailing list