[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
Ok, here we go again:
I've managed to make clear work with MMX.
Now for the benchmarks (all in clean DOS), running test's "time some stuff"
On memory bitmaps, I get:
on my PII 300 -> 337, 32MB SDRAM (100MHz), 75Mhz FSB, Matrox Mystique
I get a (sigh) 0.8% decrease in performance of clear()
on my Celery 300a -> 450, 128MB SDRAM (100MHz), 100MHz FSB, RivaTNT
(Diamond ViperV550),
I get a 10.8 % increase in performance.
That's not quite what I expected. I'll see if I can optimize the routine
some more.
But first:
I can't test it on video bitmaps because for some reason screen->seg is
invalid. The MMX routine locks up the computer when I try to clear a video
bitmap (in VESA2L), or does absolutely nothing (but still uses the cpu
cycles it should (???)) in VESA1 or VESA2B.
Either the region isn't memory mapped (but then, how does the rest of
Allegro work ?) or you can't use MMX's movq on video memory.
If the later, than a lot of the benefits of using MMX in the first place
are gone.
Question: does WRITE_BANK() reset the FPU in any way ? Apart for VESA1 and
2B, do we really need to call this ?
- Robert J Ohannessian
There is always one more bug.