3 ms·
Accelerating the Smalltalk VM BitBlt primitives using the VPU would certainly be interesting. Currently, drawing is rather slow since lots of the functionality
by johndoe0815 6y ago
Accelerating the Smalltalk VM BitBlt primitives using the VPU would certainly be interesting. Currently, drawing is rather slow since lots of the functionality is implemented in interpreted bytecodes and rendering to the framebuffer is completely unoptimized.
- zackangelo 6y agoSlight tangent, but: I first encountered a function named BitBlt when using the Win32 C API a long time ago. I had no idea that it originated in Smalltalk-72 in 1975 and the function name was just carried forward into the Windows API.
- johndoe0815 6y agoBitBlt was also used as the drawing primitive for an early graphics terminal developed at Bell Labs, the appropriately named "Blit" (https://en.wikipedia.org/wiki/Blit_(computer_terminal) https://en.wikipedia.org/wiki/Blit_(computer_terminal). Hardware implementations of BitBlt were available in the Amiga and Atari ST blitter chips (that's how I learned about BitBlt in the late '80s). Btw., there's a nice paper on BitBlt by Rob Pike: https://pdos.csail.mit.edu/~rsc/pike84bitblt.pdf https://pdos.csail.mit.edu/~rsc/pike84bitblt.pdf
- pinewurst 6y agoA very long time ago, I ported Smalltalk to Windows and had to map Smalltalk BitBlt to Win32 BitBlt.
- johndoe0815 6y agoI had a quick look at the Win32 BitBlt API and it seems to be quite similar. Can you remember how much work was actually involved in mapping the Smalltalk primitives to Win32?
- pinewurst 6y agoI probably shouldn't have described it quite like that. This was in the days of Windows 2 (1988 or so) and I was hacking PPS Smalltalk to support larger, non-VGA displays. I ran the VM in 386 protected mode, because it needed large memory, where it blt-ed to an upper memory frame buffer. This was sort of a "bounce buffer" which in turn was blt-ed onto a Windows canvas by my Windows app which also reflected input events up to the VM. Bill Gates was impressed when he saw a demo (or so I was told). Of course, he didn't realize the level of hackery involved to make it happen.
- cmrdporcupine 6y agoI believe Circle now has some OpenGL / GPU acceleration support. So textures could be used for bitblt. I was thinking more along the lines of... I wonder if there's anything in the VPU (or other support hardware) that would be especially useful for accelerating a bytecode VM. But I can't really think of anything.