[ODE] More speed???

Oles V. Shishkovtsov oles at gsc-game.kiev.ua
Mon Nov 10 14:25:37 MST 2003


Hello Gary,

Saturday, November 8, 2003, 3:08:02 AM, you wrote:

>> OVS> And it's slow, as well, even on SSE/3Dnow! enabled CPUs.
>> OVS> Typical operation consists of:
>> OVS>         * push arguments
>> OVS>         * [static] call
>> OVS>         * [static] jump
>> OVS>         * ...calculation...
>> OVS>         * return
>>
>> Just looked, at the asm, this is not "[static] jump", it's "jump int
>> the table", so, even slower :)
>>

GRVS> Slower than, say, a non-SIMD 4x4*4x4 matrix
GRVS> multiplication?  Without seeing any
GRVS> numbers I find that almost impossible to believe, even on the freakshow that is
GRVS> the Intel x86 architecture.

Frankly speaking this was benchmarked on AthlonXP/Barton, and yes, it was
indeed slower. Anyone to bench on P4 ?

>> Conditional compilation and larger-grade performance
>> optimized functions is much better, IMHO.
>>

GRVS> Conditional compilation is what I'm advocating.  DirectX on Windows (if indeed
GRVS> it improves performance), the existing code otherwise until somebody comes up
GRVS> with a viable alternative for Unii etc.

As pointed out, there are almost no need to use DX parts in ODE, 'cause there
are always good or better open-source alternatives. By the way, my
preference is to use xmm intrinstics instead of "asm {}" block, this is more
portable way of writing good SIMD code. Think of Athlon64, compiler
can use more registers automatically.

BTW, our engine (S.T.A.L.K.E.R. / X-ray) based solely on DX, so I'm not anti-DX guy :)

-- 
Best regards,
 Oles V. Shishkovtsov
 GSC-Game World
 oles at gsc-game.kiev.ua



More information about the ODE mailing list