[MPlayer-dev-eng] [RFC] emms/sfence in fast memcpy()

Ivan Kalvachev ikalvachev at gmail.com
Wed May 30 00:31:15 CEST 2007


2007/5/29, Reimar Doeffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de>:
> Hello,
> On Tue, May 29, 2007 at 01:05:54AM +0300, Ivan Kalvachev wrote:
> > 2007/5/28, Reimar Döffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de>:
> > [...]
> > > And could someone please explain what the point of that my_memcpy_pic is
> > > that is (and worse duplicated) in so many filters??
> >
> > Look at the mem2agpcpy_pic() and memcpy_pic() in fastmemcpy.h.
> > If both source and destination strides are the same, the functions
> > attempt to make the copy in one big move, instead of per-line coping.
> > Apparently some filters do not want the extra bytes copied, so they
> > implement version that does it correctly.
>
> No if you can also explain why it could be given a proper name and moved
> to one place ;-).

I assume "No" -> "Now", and probably the rest of the sentence  says
something "why not"...

I guess the key is that the "official" functions are not working
"correctly". They would work properly if the
stride1==stride2==width*bits_per_plane_sample, but that would require
some additional effort to fix all callings too.

Or just make 2 separate functions and update the calling staff too.

The third option is to have the incorrect current function and the
always correct but slower new one... that is current situation minus
multiple definitions.

Feel free to fix it.



More information about the MPlayer-dev-eng mailing list