[MPlayer-dev-eng] [PATCH] SSE2-optimized libmpeg2 motion compensation

jserv at linux2.cc.ntu.edu.tw jserv at linux2.cc.ntu.edu.tw
Wed Jun 14 17:38:12 CEST 2006


On Wed, Jun 14, 2006 at 05:22:25PM +0200, Guillaume Poirier wrote:

salut Guillaume,

> jserv at linux2.cc.ntu.edu.tw wrote:
> > 
> > I am using GCC 4.1.1, and Intel C++ compiler is known to build with my patch.
> 
> Did you check how good of a job do they do at generating good code out
> of your intrinsincs?

Sorry, not yet. I am not familiar with Intel C++ compiler on IA32, but I
am attempting to perform some benchmarks on crossover comparisons.

> > @@ -37,78 +38,22 @@
> >  #if defined(ARCH_X86) || defined(ARCH_X86_64)
> >  static inline uint32_t arch_accel (void)
> >  {
  [...]
> > -	caps |= MPEG2_ACCEL_X86_MMXEXT;
> > -
> > -    return caps;
> 
> I failed to see this chunk last time. Is there a reason why you
> removed CPUID support from libmpeg2?
> You need to keep in mind that libmpeg2 is an imported library, which
> is supposed to be working if you use it in another project.
> Therefore, you should not make such changes, because if you do,
> libmpeg2 won't work in projects that do not have "general" cpuid check
> routines.

Thanks for pointing me. I think that the above code snip is redundant
since MPlayer has its own MMX / 3DNow! / SSE / SSE2 / SSE3 CPU detection
process and utilities.

However, I shall divide my previous patch into two parts: CPU detecion
cleanup and SSE2-optimized MC implementation.

> What could be done though (in a patch separated from this one) would
> be to #ifdef libmpeg2's cpuid code so that if it's used in MPlayer it
> doesn't get used.
> But as I said, it would have to be done in a different patch.

I am new to list, and appreciate your patience and guides.

cheers,
Jim Huang
http://jserv.sayya.org/



More information about the MPlayer-dev-eng mailing list