Ryan,
I am using Squeak 2.6 on the Win32 VM on Windows 98 on a P2-266 with an ImageAccel 2 card on a 20" 256-grayscale monitor.
What's an ImageAccel 2 card?! Never heard of it - who's the manufacturer?!
The card can only operate in one of two modes: 640x480 or 1600x1280. Rendering speed in Squeak is an order of magnitude slower than rendering speeds in any Windows applications, and makes it pretty much unusable for me.
Squeak's display speed depends heavily on the quality of the drivers for your graphics card. In particular it depends on how efficient bitmap copy operations are implemented. *Usually*, modern graphics cards implement 2D hardware accelleration for bitmaps and if so, Squeak should be reasonably fast. My best guess is that you've got relatively poor drivers for your card (Windows falls back onto simulation code if the operation is not directly supported by the driver).
I like the way Squeak looks in grayscale, and having all the extra working space, but I can't make it behave at a reasonable speed. I tried reduce colour bit depth to 8, 4, or 1, but this didn't improve behaviour that much.
Are there newer additions to the BitBlt code for Squeak that would improve this?
I do not think that BitBlt speed is related to this. I've been running Squeak for quite some time on a 200Mhz PPro system with an ATI graphics card and the display speed was perfectly reasonable.
Any support for hardware graphics acceleration?
No ... not yet. I'm working on this but it'll take some more time. I'm hoping to release some stuff after 2.7 is out but somehow I doubt that it'll help you, since it will rely on exactly the same things that should be accellerated already. Although it'll make things quite a bit faster (hopefully) the core question is still how good is the graphics card at copying pixels efficiently.
Andreas
Hi andreas, thanks for your response....
"Raab, Andreas" wrote:
Ryan,
I am using Squeak 2.6 on the Win32 VM on Windows 98 on a P2-266 with an ImageAccel 2 card on a 20" 256-grayscale monitor.
What's an ImageAccel 2 card?! Never heard of it - who's the manufacturer?!
The manufacturer of both the card and the monitor is Cornerstone. I believe they have been purchased by Matrox.
Squeak's display speed depends heavily on the quality of the drivers for your graphics card. In particular it depends on how efficient bitmap copy operations are implemented. *Usually*, modern graphics cards implement 2D hardware accelleration for bitmaps and if so, Squeak should be reasonably fast. My best guess is that you've got relatively poor drivers for your card (Windows falls back onto simulation code if the operation is not directly supported by the driver).
Interesting... it's just that performance in windows is far far superior to graphics performance in Squeak. Operations in windows are actually quite fast, while in Squeak they are unusably slow.
hoping to release some stuff after 2.7 is out but somehow I doubt that it'll help you, since it will rely on exactly the same things that should be accellerated already. Although it'll make things quite a bit faster (hopefully) the core question is still how good is the graphics card at copying pixels efficiently.
Hmm, well judging by performance in other apps, I don't see why Squeak should be so significantly slower.... It seems to me that Windows must be using some aspects of the driver/display code that Squeak does not....
OH well, I suppose I'll just stick to squeaking at work...
Thanks for your response, Ryan -- -------------------------------------------------------------------- "The only truth that gets through will be what we force through: the victory of reason will be the victory of people who are prepared to reason, nothing else." -- Bertolt Brecht, "Galileo" -----------------------------------------------------ryan@techno.ca-
Interesting... it's just that performance in windows is far far superior to graphics performance in Squeak. Operations in windows are actually quite
fast,
while in Squeak they are unusably slow.
Folks on the list can correct me if I'm wrong, but Squeak heavily depends on doing bitblt's from memory to the screen buffer. The bitblt from memory to screen performance of a modern AGP based PC video card is as high as 200-300 megabytes/sec
Some older display adapters had no way to map the screen buffer into memory and had to execute graphics processor commands that would take a stream of data written to an I/O port to get the bits to the screen. The maximum bandwidth for this is 3-5 megabytes/sec. The graphics accelerator could draw lines and fill rectangles and do bitblt's from offscreen memory to onscreen memory pretty fast (like writing text from fonts cached in the display offscreen memory). For example, the old 8514 display was like this. Windows apps generally send graphics commands to the card, not bitmaps, so utilize this functionality quite well
- Jan
squeak-dev@lists.squeakfoundation.org