[FFmpeg-cvslog] r21011 - trunk/libavcodec/x86/dsputil_mmx.c

Gwenole Beauchesne gbeauchesne
Mon Jan 4 14:30:35 CET 2010


On Mon, 4 Jan 2010, Reimar D?ffinger wrote:

> On Mon, Jan 04, 2010 at 01:38:43PM +0100, Gwenole Beauchesne wrote:
>> On Mon, 4 Jan 2010, Reimar D?ffinger wrote:
>>
>>>> -        if (mm_flags & FF_MM_SSE){
>>>> +        if ((mm_flags & FF_MM_SSE) &&
>>>> +            !(CONFIG_MPEG_XVMC_DECODER && avctx->xvmc_acceleration > 1)){
>>>> +            /* XvMCCreateBlocks() may not allocate 16-byte aligned blocks */
>>>>              c->clear_block  = clear_block_sse;
>>>>              c->clear_blocks = clear_blocks_sse;
>>>
>>> While it is probably not relevant I'd like to point out that e.g. NVidia
>>> drivers can use XvMC just fine without this, so I can't help considering
>>> this a bit of a hack for XvMC implementations that are not properly
>>> maintained.
>>
>> IIRC, it wasn't the case either on my old (X, nvidia driver et al.) system
>> with an NVIDIA 6600GT. It also failed on newer systems, Ubuntu 9.04-based
>> (X.org 1.6.x probably), and Intel G45 or i945, and also AMD drivers. I
>> don't know for VIA since I don't have that.
>
> Maybe I just got lucky. I don't have any issues with GeForce 7600 GS,
> driver 190.53, 1.7.3.902.

Ah, my drivers were much older. My old system, that died recently, dates 
back from 2005-2006. So drivers were probably something like 71.xx or 
96.xx.

> Also in the absence of binary blob drivers I doesn't really make sense
> not to change it to align the memory, does it (that's what my comment
> about "not properly maintained was playing at)?

It was not a bug in the first place. The API was designed at the time 
there was not even SSE. So, their implementation was correct, and it does 
not really need "maintenance" in this regards.

> Just to clarify: I'm not objecting to it, I just wanted to say I think
> it is the less preferable solution.

Sure, but we would also have to convince binary vendors...

> If someone can gather the motivation I'd appreciate it if they could try
> getting the XvMC specification "improved", at least to mention that the
> buffer "should" be aligned by the driver.

... and I think they would update their drivers only if there is an XvMC 
API update first. So, the problem is to get someone motivated enough to 
update the XvMC API spec. ;-) According to the CVS, it wasn't touched for 
7 years, it seems.

Besides, looking at the vast set of remaining XvMC users, the current 
approach is also the least-effort demanding one. I am not even sure this 
bug was widely noticed or even reported, apart on some gentoo or ubuntu 
bug reporting system.

The XvMC maintainer will probably have better luck with X.org maintainers, 
if he feels this is an important change.



More information about the ffmpeg-cvslog mailing list