From: Brian J. <bjj...@us...> - 2001-10-12 17:15:04
|
--- Max Horn <ma...@qu...> wrote: > At 10:46 Uhr +1000 12.10.2001, ni...@in... wrote: > >... > >> BTW, Nigel, how is speed for you? On my G4/400, running Sys > >> 7.5.3 in the emu, I can literally see it do redraws etc. > > > > Same speed deficiencies. I haven't worked out if it is the > >graphics environment (e.g. the barber pole, and having to have the > >MacOS blit from an NSBitmap), or the emulation on a RISC > >processor. I do remember that it was also quite slow on my Sun > >Sparcstation 5 at work. > > Don't forget that you also have double buffering on from the MacOS, > which in our case doesn't really help - turning on retained mode for > the window might help. A few general BasiliskII things to try: - Get direct addressing working, if it isn't alreay. It takes a _lot_ of gunk out of the emulated memory reference path, and will improve performance dramatically. - Get VOSF (video on seg fault) working, if it isn't already. This lets you be _much_ smarter about blitting: instead of redrawing the entire emulated frame buffer, you only need to redraw the parts which have been written since the last update. If MacOS X's mmap() and signal handlers aren't up to the task, I'm sure you could do it with a Mach external pager. That's exactly the sort of trick external pagers are good at (if I remember all those Mach papers I had to read in school.) - Make sure that CPU_CAN_ACCESS_UNALIGNED ends up defined when you compile (PPC can do unaligned memory refs., can't it? See Unix/sysdeps.h.) That greatly simplifies the emulated memory reference path. - Check out the optimized video blitter loops from video_blit.{cpp,h} in the CVS version. If your blit is more than a simple bcopy, they should help somewhat. On my SGI Octane with dual 195 MHz R10000 CPUs, BII with X11 (XShm transport), direct addressing, VOSF, and MIPS-optimized unaligned reference code is about as fast as a real IIci. Not stellar, but very usable, even for old games. SGI's compilers are probably better than GCC, but a 400MHz G4 has a lot more raw horsepower than my box... you should be able to get BII running well. > > > > It is fast enough to be usable in a pinch, though. > > Well if you compare it to the same version of Basilisk (latest > release snapshot) but compiled with an X11 front end, it is quite a > bit slower - this tells me we have a lot to improve :) If there's some way you can map the frame buffer directly, rather than going through the OS, that would give you the best performance. Since you're on a real Mac, you probably wouldn't have trouble with the frame buffer layout (waving my hands wildly at this point....) You might also want to try and write an OpenGL front end. On SGI boxes at least, OpenGL is the most optimized path to the frame buffer. (And then I could steal it and use it on IRIX....) Brian J. Johnson -------------------------------------------------------------------- "There is the greatest practical benefit in making a few failures early in life." -- Thomas Henry Huxley |