[Scummvm-devel] HQ scalers in i386 assembly

Oliver Kiehl olki at scummvm.org
Thu May 20 09:07:11 CEST 2004


On Thu, May 20, 2004 at 06:24:33PM +0300, Eugene Sandulenko wrote:
> Hi devers,
> 
> as you noticed, HQ2x and especially HQ3x scalers are most heavy
> computational part of ScummVM. I myself prefer these scalers over most
> (well, except plain 2x) but there are two main issues which annoy me:
> 
>   o Compilation time
>   o run-time CPU impact
> 
> Original author also published optimized i386 assembly versions of
> these scalers, and recently there were some efforts put to make this
> code run in ScummVM. Well, it uses nasm (portable i386 assembler),
> compilation is blazingly fast and speedup is at least 5x for HQ2x scaler,
> didn't measure it for HQ3x, though.
> 
> Now I would like to ask your opinion, is this code worth to go to CVS?
> It is be optional, i.e. it compiles old C code on non-Intel
> platforms. I still have to modify configure script, so it will be
> autodetected which version should be compiled, but before I put
> efforts into that I would like to hear your opinion.
> 
> Please, reply, even if you don't care.

Generally I'd like to see some optimized assembly code for the HQ?X
scalers. The problem with the optimized assembly code is that it
would add another build dependancy (nasm) to the current code base.
Using inline assembly would be the better decision in my opinion.
That is, the original MASM code would be used for VC and newly
written gas code would be used for gcc. But of course I realise that
this is probably too much work. I myself started coding an MMX+SSE
optimised gas assembly version of Fingolfin's altivec code some
months ago and gave up.
But if everybody else doesn't mind adding nasm as an x86 dependancy,
I won't complain either.

-ok




More information about the Scummvm-devel mailing list