[Vm-dev] unit code for new faster bitblt

tim Rowledge tim at rowledge.org
Tue Jun 18 23:11:58 UTC 2013

Hi Ian,
Here at last is a dump of the unix related files that provide the faster bitblt for the Pi and any other interested platform. Although a lot of the work was specialised for ARM machines there is a fair bit that is completely generic and should (I emphasize the 'should') work on any machine since it is plain C code. There is another chunk that is about to go into Cross, which seems the best place at least to start us off.

Hopefully the attached zip will transfer correctly, though given how tediously annoying it was to assemble I would be surprised. The xarchive tool provided in Raspbian is, to be polite, pathetic. I eventually gave up and used the zip tool in Squeak; it may be best to use that to extract the files since I noticed that at least on my iMac the existence of two files named config.cmake caused problems. 

What we have here is
 - vm/sqPlatformSpecific.h with a #define added - this is clearly not a really good solution and if you know how to make it practical to cause cmake to allow configure with or without -DENABLE_FAST_BLT whilst not messing up the assorted CFLAGS I'd be very pleased.
- plugins/BitBltPlugin/config.cmake a new file in a new directory. This *seems* to work correctly on non-ARM machines but I am unable to guarantee it is the right way to do things. I didn't write it, so feel free to excoriate it.
- vm-display-x11/
		config.cmake (see previous)
		sqUnixX11Arm.s - assembler code for a faster routine for converting the pixel format
		sqUnixX11.c - modified old file to use above faster display handler.
I added archive comments to the file to hopefully help sort out which config is which. If I can send you the files in some more convenient manner just let me know.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FastBlt-unix.zip
Type: application/zip
Size: 51979 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20130618/aae97c32/FastBlt-unix-0001.zip
-------------- next part --------------

The value of this on the Pi is pretty high, with some cases being 10x faster; I'll be interested to know if it does any good on other machines. Someone may find it interesting to do the x86 assembler as an experiment, though I'd be surprised if it made as much difference on a fast large memory bus as on a slow narrow one.

cc'd to the rest of the gang in case anyone wants to play with it right now.

tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: ESBD: Erase System and Burn Documentation

More information about the Vm-dev mailing list