[RFI]Mac performance gap between OS-9 and OSX
Alan Kay
Alan.Kay at squeakland.org
Tue Aug 5 23:41:52 UTC 2003
Deja vu ...
The original Smalltalk-72 animation stuff was double buffered on the
Alto. This is a good thing. The orgininal Mac even had two buffers
for a few years..... Is there anyway to use this on osx when in full
screen mode?
Cheers,
Alan
-----
At 11:51 AM -0700 8/5/03, John M McIntosh wrote:
>Currently in the mac vm drawing to the screen is a long laborious project
>
>You bitblt to the squeak display object, then a request is made to
>update the real screen.
>see Interpreter>>displayBitsOf: aForm Left: l Top: t Right: r Bottom: b
>
>That invokes the VM's ioShowDisplay which is responsible for
>dragging bits out of the
>Squeak Object Memory and splashing them onto a media that people can
>see. This involves
>calling Apple's CopyBits to move the bits in os-9 and os-x.
>
>Now the interesting & slow os-x parts comes in, For os-x we need to
>call QDFlushPortBuffer to
>flush the bits to the screen, why? Well because os-x uses double
>buffering and alpha blending for everything visual.
>So that involves figuring out any alpha-blending, then again copying
>data here and there before it becomes visual.
>
>Right now we flush for every draw event, I've attempted to flush say
>every 1/60 of second, but interestingly enough that results in less
>pleasing morphic animations.
>
>So as many folks have complained this process takes an
>extra-ordinary long time!!! OS-x has nice 'slow' eye candy.
>
>Beta versions of os-x had a window type to exclude double buffering,
>but this was withdrawn in the 10.0.0 release. I have consider what
>is required to fake Squeak into drawing directly to the screen,
>which is something the ARM version does, but have not yet
>figured out a decent method to do that, anyone interested might want
>to talk to me.
>
>>It gets weirder when you just run the "Squeak 3.5.2b1 Classic"
>>(taken out of the package) in the Classic environment. It has
>>nearly the same fast timing as when started under OS9 even though
>>a restore Display in that environment takes nearly 2s!
>>
>
>The Squeak 3.5.2b1 Classic is just a CodeWarrior compiled version of
>the squeak VM for the os-9 environment (non-carbon), it's stuck in
>an application package for people who switch back and forth from
>os-9/os-x so they can double-click on just one icon and the
>application loader figures out which one to run based on the
>hosting os. dragging it out of the application package, then
>disposing of the package is a viable thing to do.
>
>OS-9 classic mode does not do double-buffering, but I understand
>that is changing in upcoming versus of os-x classic support, wonder
>how that will change performance for classic mode?
>
>On Tuesday, August 5, 2003, at 09:40 AM, Colin Putney wrote:
>
>>
>>On Tuesday, August 5, 2003, at 08:13 AM, Karsten Wolf wrote:
>>
>>>Hi,
>>>
>>>has anybody investigated the BitBlt performance difference in
>>>line-drawing between OS-9 and OSX?
>>>
>>>Any ideas?
>>
>>Just a wild guess, but it could be because Apple as been optimizing
>>CopyBits() in Classic for close to 20 years. That code probably had
>>to be rewritten for Quartz.
>>
>>Colin
>>
>--
>======================================================================== ===
>John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
>Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
>======================================================================== ===
--
More information about the Squeak-dev
mailing list
|