[comp.sys.amiga.hardware] Double Buffering and Intuition, and A3000 RAM Problems

markv@kuhub.cc.ukans.edu (07/24/90)

1.)

Is there an "approved", or failing that, a working way to double
buffer and keep Intuition happy.  I mean 'true' double buffering,
where I am swapping bitmaps every frame.

I tried MakeScreen and RethinkDisplay but they are two slow, right now
I am just being nasty and swapping copper list pointers and
LoadViewing GfxBase->Actiview.  Yes I know this is wrong wrong wrong
which why I want a "better" way.

I tried using my own view/rasinfo, etc but I then dont reliably get my
input from the IDCMP port I have.

Also, all of the time-critical work is being done out of a VBLANK
server which includes setting up a Blit every frame (I am double
buffering so I can use Ascending mode on these blits to avoid display
hashing.).

2.)

We just got in 4 MB of ZIPs for our A3000/16, and it looks like there
is a memory error.  (Gurus like Illegal instruction, A and F line
traps, etc).  They are all directly proportional to the amount of
memory being used, ie: after XXX bytes get used up its Guru city.
Unfortunately, there is no easy way to make sure and tell which
chip it is (and you average vendor isn't too willing to take back
$500 worth of ZIPs because you "think" it is a memory problem).
So, does anyone know of a way or program to test memory under 1.3 or
2.0?  And if the error can be located, does anyone have a list of
which bits are on which chips .

I've set the 1MB jumper, and the docs don't mention any others either.
I've also tried various combination of Cache and burst to no avail.

P.S., sorry to cross post, but our site doesn't carry .hardware, so if
	you are on .hardware please reply to me personally so I see
	it.

Thanks,

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mark Gooderum			Only...		\    Good Cheer !!!
Academic Computing Services	       ///	  \___________________________
University of Kansas		     ///  /|         __    _
Bix:	  markgood	      \\\  ///  /__| |\/| | | _   /_\  makes it
Bitnet:   MARKV@UKANVAX		\/\/  /    | |  | | |__| /   \ possible...
Internet: markv@kuhub.cc.ukans.edu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) (07/25/90)

In article <25012.26ab200e@kuhub.cc.ukans.edu> markv@kuhub.cc.ukans.edu writes:
>1.) Is there an "approved", or failing that, a working way to double
>    buffer and keep Intuition happy.  I mean 'true' double buffering,
>    where I am swapping bitmaps every frame.

This comes up pretty frequently, to answer it you need to give some additional
information. That information is of the form :
	Q) Do you want to be able to render Menus while the screen is flipping?
	   How about when either screen is showing?
	Q) Do you need Gadgets to be refreshed while double buffering?

The reason for this is that if you want to do something like a movie generator
where you mouse around and then say "go" and sit back and watch. Then you
can basically use the LoadView() method of double buffering and just catch
the Menu button (with Menu Verify) and A-N and A-M with an input handler.
When ever a signal is made that the user wants the menus/gadgets back you
just Rethink/ReMake and that is that. If you want to double buffer and 
keep the menus working then no, you can really do it in any way that will
work reliably. 


--
--Chuck McManis						    Sun Microsystems
uucp: {anywhere}!sun!cmcmanis   BIX: <none>   Internet: cmcmanis@Eng.Sun.COM
These opinions are my own and no one elses, but you knew that didn't you.
"I tell you this parrot is bleeding deceased!"

nsw@cbnewsm.att.com (Neil Weinstock) (07/30/90)

In article <139460@sun.Eng.Sun.COM> cmcmanis@stpeter.Eng.Sun.COM (Chuck McManis) writes:
>In article <25012.26ab200e@kuhub.cc.ukans.edu> markv@kuhub.cc.ukans.edu writes:
>>1.) Is there an "approved", or failing that, a working way to double
>>    buffer and keep Intuition happy.  I mean 'true' double buffering,
>>    where I am swapping bitmaps every frame.
>
>This comes up pretty frequently, to answer it you need to give some additional
>information. That information is of the form :
>	Q) Do you want to be able to render Menus while the screen is flipping?
>	   How about when either screen is showing?
>	Q) Do you need Gadgets to be refreshed while double buffering?
[ ... ]
>If you want to double buffer and 
>keep the menus working then no, you can really do it in any way that will
>work reliably. 

In the general case I agree, but if you're willing to work with some
restrictions, it's possible.  Unfortunately, I haven't yet had a chance to
test my code under 2.0, so I don't know how truly portable it is.

The idea is to open an Intuition screen, then add a second playfield behind
Intuition's back.  You can then double buffer on the second playfield,
(I used copper list flipping), while Intuition will merrily do your bidding
on the first playfield.  I have had 60 frames per second double-buffered
animation running, while Intuition menus operated just fine on top.  I setup
my color registers so that the background of the menus appeared clear, so
you could actually see the animation behind the menus.  'Twas pretty cool.

Anyway, the first restrictions are the normal ones associated with using dual
playfields: limited colors, etc.  I also found it necessary to suspend
animation when my screen wasn't on top, and also to disallow screen dragging
(still might be possible, I just didn't want to work around all the details.)

As far as I know, I have done nothing antisocial with regard to Intuition.
I did have some problems interacting with the Dmouse screen blanker, but I
was eventually able to fix it through anal-retentive use of LockIBase().

                                   - Neil

--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--
Neil Weinstock @ AT&T Bell Labs        //     What was sliced bread
att!edsel!nsw or nsw@edsel.att.com   \X/    the greatest thing since?