[squeak-dev] New, faster RISC OS Squeak
Juan Vuletich (mail lists)
juanlists at jvuletich.org
Thu Feb 7 12:30:50 UTC 2013
Hi Tim,
The Windows VM supports both big endian and little endian Display.
This was done by Andreas and is supported in Cuis, see
#setDisplayDepth. This essentially came from Squeak, so it's likely
that Squeak can do the same.
On the Windows machines I tried, I could not see relevant performance
improvements, and I guess this is because of Intel's instruction set
and Andreas' performance tricks. But supporting this could be useful
for RISC OS, right?
I remember in the old days of OS/2 Squeak, I added inline asssembly to
use the fast intel asm op for byte reversing a 32 bit word...
Cheers,
Juan Vuletich
Quoting tim Rowledge <tim at rowledge.org>:
>
> On 06-02-2013, at 8:27 PM, "David T. Lewis" <lewis at mail.msen.com> wrote:
>>
>> Can you say which methods in Smalltalk (VMMaker) or functions in C are
>> consuming the 20% of processing? This sounds like something we should
>> profile on one or two other platforms but I'm not sure what to look for.
>
> It's very platform specific. Typically either ioShowDisplay or
> ioForceDisplayUpdate actually does the work of moving pixels from
> the object world to the glass. Squeak pixels are old Mac OS format -
> big endian, a specific R,G,B & Alpha layout - and have to be
> converted to the platform's needs. On RISC OS right now, each time
> the ioShowDisplay code is called, the relevant pixels are converted
> and copied to a shadow bitmap kept in RISC OS format; then when
> display update events come from the OS, the accumulated damage areas
> are copied from that to the glass. It takes roughly as long to
> convert each area as it takes to update the screen (on my Pi, that
> is. Some other RISC OS machines have faster memory busses or faster
> graphics subsystems) and for flashing a largish area of the screen
> that adds up fast.
>
> It's a long time ago and I don't recall very precisely, but I think
> Andreas did some work on making bitblt to a platform bitmap work
> much better under certain circumstances. IIRC it sort-of did the
> right thing for RISC OS but failed horribly in some other way. I'll
> need to take another look at that.
>
> Even longer ago I had code to make BitBLT work little-endian
> entirely, and horribly abused the RISC OS graphics system to make it
> think the Display bitmap object was actual screen buffer.
>
> Even longer ago than *that* I had a system that simply stole the
> display hardware entirely. Wouldn't work with any other application
> windows tough. Not so popular…. but bloody fast :-)
>
> tim
> --
> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> Strange OpCodes: NNI: Neglect Next Instruction
>
>
>
>
Cheers,
Juan Vuletich
More information about the Squeak-dev
mailing list
|