[comp.sys.amiga] Layers speed

usenet@cps3xx.UUCP (Usenet file owner) (10/18/89)

>Also, the extra layer activity will take much more time with MANY windows
>open on the screen.  (I have had many times when I had 15 to 20 windows of
>various types open on the workbench screen...)

Is this problem addressed in 1.4? Currently the Layers performance
is *terrible* when more than about five windows are open.

On the very few occainsions that I have used a Mac, having a lot
of windows open did not really slow things down, som its gotta
be possible (I know, they don't have to worry about things like SMART_REFRESH)
but an Amiga screen with a bunch of SIMPLE_REFRESH windows
open (say 10) can be real slow. 

What about the bug in layers where the RastPort gets all fragmented?

>
>and will cause a few problems.  What I really want is that the screen
>front/back gadgets look different from the window front/back gadgets.
>(They are, after all, a different beast...)

Speaking of which.... I do some programming/consulting work
on the side for a couple of people who own amigas. They are
not stupid, but generally know little about the inner magic of
computers. Even though they have had Amigas for a while, they
still are (were, i explained) confused about the difference
between screens and windows. Maybe the included docs
need to explain this a whole lot better. 
The included docs should contain a QUICK_REFERENCE card
with info about such things as the leftAmiga V, B, N, M switchs.
 Joe Porkka   porkka@frith.egr.msu.edu

nsw@cbnewsm.ATT.COM (Neil Weinstock) (10/19/89)

In article <5028@cps3xx.UUCP> porkka@frith.UUCP (Joe Porkka) writes:
[ ... ]
>On the very few occainsions that I have used a Mac, having a lot
>of windows open did not really slow things down, som its gotta

Can't get any slower...

(sorry, couldn't resist)

    ________________    __________________    ____________________________
////                \\//                  \\//                            \\\\
\\\\ Neil Weinstock //\\ att!cord!nsw  or //\\ "Oh dear, now I shall have ////
//// AT&T Bell Labs \\// nsw@cord.att.com \\//  to create more Martians." \\\\
\\\\________________//\\__________________//\\____________________________////

mks@cbmvax.UUCP (Michael Sinz - CATS) (10/19/89)

In article <5028@cps3xx.UUCP> porkka@frith.UUCP (Joe Porkka) writes:
>>Also, the extra layer activity will take much more time with MANY windows
>>open on the screen.  (I have had many times when I had 15 to 20 windows of
>>various types open on the workbench screen...)
>
>Is this problem addressed in 1.4? Currently the Layers performance
>is *terrible* when more than about five windows are open.
>
>On the very few occainsions that I have used a Mac, having a lot
>of windows open did not really slow things down, som its gotta
>be possible (I know, they don't have to worry about things like SMART_REFRESH)
>but an Amiga screen with a bunch of SIMPLE_REFRESH windows
>open (say 10) can be real slow. 
>

While there may be a few enhancements to the speed of the layers, the real
difference between the MAC and the Amiga is that on the MAC, the active window
that is doing the input and rendering is forced to be in front.  This makes
life much simpler from layer's point of view as the rendering is not obscured
in any way and can be done directly inot the screen.  Then, when the window
does get obscured it just forgets what was there and the new window takes its
place.  Any time a window comes up, it must redraw all parts of itself that
were obscured.  Part of the reason the Amiga seems faster is that many
programs use the SMART_REFRESH windows and don't have that overhead.

(Side note: The MAC at its fastest in handling windows is still slower
            than my Amiga with 15 windows on workbench.  IMHO)

[rest deleted]

> Joe Porkka   porkka@frith.egr.msu.edu


/----------------------------------------------------------------------\
|      /// Michael Sinz -- CATS/Amiga Software Engineer                |
|     ///  PHONE 215-431-9422  UUCP ( uunet | rutgers ) !cbmvax!mks    |
|    ///                                                               |
|\\\///          When people are free to do as they please,            |
| \XX/                they usually imitate each other.                 |
\----------------------------------------------------------------------/

new@udel.edu (Darren New) (10/19/89)

In article <5682@cbnewsm.ATT.COM> nsw@cbnewsm.ATT.COM (Neil Weinstock) writes:
>In article <5028@cps3xx.UUCP> porkka@frith.UUCP (Joe Porkka) writes:
>[ ... ]
>>On the very few occainsions that I have used a Mac, having a lot
>>of windows open did not really slow things down, som its gotta
>Can't get any slower...

Actually, I think it does get much slower, but the "premptive" (sp?) nature
of the Mac "inner loop" keeps you from noticing.  Basically, when you get window
damage, a simple flag is set in the window structure.  Later, if you ask
for input (i.e., input events are generated only when you call GetMsg())
and there is no real input, the window list is scanned from front to back
looking for damage flags and the "input event" returned is a refresh event.
Hence, if you damage a bunch of windows, you can still type right away;
you just won't get updated back windows.  This becomes most evident in
the finder when you close bunches of windows; they don't update before
they close.

This is also nice because key-repeat does not "run away" if you hold the key down.
Basically, if you ask for input, it generates a key repeat only if the key
is still down and at least X time has elapsed since last time it returned 
the key.  Hence, if the program does not look at the keyboard, the keys
don't repeat.  Too bad this is hard to do on the Amiga. -- Darren

limonce@pilot.njin.net (Tom Limoncelli) (10/23/89)

In article <5028@cps3xx.UUCP> usenet@cps3xx.UUCP (Usenet file owner) writes:

> Is this problem addressed in 1.4? Currently the Layers performance
> is *terrible* when more than about five windows are open.

>  Joe Porkka   porkka@frith.egr.msu.edu

It's my understanding that the whole layers concept comes from a paper
presented at SIGGRAPH in the late 70's.  (exact year & author unknown
to me.  Does anyone know?  I'd like to go about getting the article).

I've been told that the layers.library is the pseudo-code from the
paper implemented in C almost verbatium.  The person that told me this
added that there is room for optimization but since it would be a big
ROM change, it wouldn't be in 1.2 or 1.3 (this was a while ago).

Did C-A have the time/personpower to optimize the routines?  Inquiring
minds want to know.
-- 
Drew University   -- Tom Limoncelli           
C M Box 1060      -- limonce@pilot.njin.net   limonce@pilot.rutgers.edu
P O Box 802       -- tlimonce@drunivac.Bitnet <<<-has a "T" in it.
Madison, NJ 07940 -- 201-408-5389       ...!rutgers!njin!limonce

rap@peck.ardent.com (Rob Peck) (10/24/89)

In article <8221@cbmvax.UUCP> mks@cbmvax.UUCP (Michael Sinz - CATS) writes:
>In article <5028@cps3xx.UUCP> porkka@frith.UUCP (Joe Porkka) writes:
>>>Also, the extra layer activity will take much more time with MANY windows
>>>open on the screen.  (I have had many times when I had 15 to 20 windows of
>>>various types open on the workbench screen...)
>
The use of SMART_REFRESH does, at times, slow things down, but NOWHERE near
as much slowdown as when someone uses a GIMMEZEROZERO window.  The only
time I believe that such a window is necessary is when it is being used
to display a SUPERBITMAP window...

The nominal idea to GIMMEZEROZERO is that the upper lefthand corner of the
window's RastPort is 0,0 for drawing purposes instead of having to offset
for drawing to account for the top and left margin, as well as to manually
clip the drawing to the other bounds of the visible part of the window.
The necessary reason for the availability of a GIMMEZEROZERO window
is that it prevents Intuition from rendering its gadgets and borders
into the superbitmap.  Intuition does this by providing -->5<--- layers
totally, one for the drawable area, one for the top, bottom, left, and
right edges of the window.  THATS when operations on windows can really
get bogged down.

If a developer does not realize this, and uses a GIMMEZEROZERO when it is 
not needed, it slows everything down.  Talk about extra layer activity...
whew!!

Rob Peck