[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

1390.0. "DECwindow performances" by UILA::MATTINI () Thu Sep 07 1989 02:29

Hi,

	I know that DECwindow provide portable user interface for GENERAL
	Applications. More specifically, these applications are NOT Real-Time 
	applications (am I wrong ?).

	Probably in the future more and more applications - including Real-time
	applications - will use DECwindow for their User Interface.
	( The same way some Unix systems are used for Real_time !!!?
	  Don't ask me why? or how?). 

	Actually, we have a potential customer how wants to use DECwindow 
	in real-time environment, and if our potential customer become
	REAL customer this means a very BIG SALE CONTRACT. This is why
	we need a reply to this topic URGENTLY. 
	
Here is the problem:
	
	I have in Memory a list of SCREENs to be diplayed (annimated) in one 
	DECwindow. The algorithm is simple:

	LOOP
	   Fetch screen 'n' from memory
	   DECwindow.display(screen 'n' )
	END LOOP; 

	The algorithms is simple but the constraint on performance is
	very difficult. I want to display the screens in a frequence of 20 
	Hertz ( 20 screens per second). 

here is the questions:

	Q1- Is it possible?.

	Q2- Anyone can estimate the time to do it?.  

	Q3- I am sure someone in the DEC community has similar Requirements.
            ( people working in ADA/defence contracts ) 
	    
	    We don't want to "re-invent the weel", that's why we need 
	    your help.
  
	    For the moment we want to build an early Prototype in VAX
	    ADA to measure the performance, but it will help very much
	    if some other group can give us their experience.

NOTE:This topic is posted simultaneously in the ADA conference
					        

T.RTitleUserPersonal
Name
DateLines
1390.1How about FILM??YUPPY::CONNOLLYThu Sep 07 1989 07:0410
    There is an internal application called FILM that might be of interest
    to you! 
    
    See ELKTRA::DW_EXAMPLES note 186 for details.
    
    I am not saying this will resolve your problem but it ought to show
    you whether it is possible or not!
    
    Gerry

1390.2Need more infoSTAR::BMATTHEWSThu Sep 07 1989 09:519
How are the screens built? Are they dynamic? How dynamic?

You may be better off creating a pixmap for each frame and using XCopyArea
to update from the pixmap to the screen. If the frames change each time they
are displayed then this won't work. if they change infrequently then it might
work. How large are the frames? How many bits-per-pixel is the data? How many
frames are there?
						Bill

1390.3*BIG* working sets!VMSDEV::CLABORNSo?? Mine has a dashboard hibachi!Thu Sep 07 1989 10:249
If this is doable (and it may be just on the edge of doability), it will most
likely need gobs and gobs of memory. To meet a 20 hertz requirement (50ms/frame)
you will have to at least double buffer, so you can be displaying from one
region while filling the other region with (say) the next second's worth of
images from disk. Depending on how quickly the disk can move all that data, 
you may even need to triple, quadruple buffer.

- George

1390.4More detailsGIDDAY::DRANSFIELDMike Dransfield, Sydney RSSGFri Sep 08 1989 03:0133
    To put the problem in more detail:
    
    The requirement is to display 768 by 800 pixel static images 4 bits
    deep and to rotate somewhere in the order of 30 such images in a loop
    (or possibly only once, this is still unclear).
    
    The proposal is to use a firefox 24-bit plane machine running vms to do
    this.
    
    My thoughts on this were that it would be do-able in a three stage
    approach.
    
    1)rotate 6 4-plane images round the 24-bit frame buffer by changing the
    colour map entries(?)
    
    2) move new bit planes from off-screen graphic memory into the frame
    buffer.
    
    3) move new images from vax memory to off-screen graphic memory.
    
    I have not had much time to play with either colour or a firefox and so
    am not familiar with the details of the hardware, but from a first look
    at the problem, I believe that the above approach may work.
    
    The animation is part of a larger control screen, but is perceived as
    the most difficult part of the display to achieve.
    
    It would be most helpful if someone familiar with the firefox could
    comment on whether the above scheme is close to the mark or if this
    kind of animation is impossible with today's hardware.
    
    Mike

1390.5ELN?KIPPIS::BACKSTROM�l� oletaFri Sep 08 1989 04:085
    Isn't this a task for ELN? V4 supports DECwindows, if I've interpreted
    what I've heard right.
    
    ...petri

1390.6Firefox does not have Pseudocolor (i.e. completely general colormapping) with 24 planesDECWIN::FISHERBurns Fisher 381-1466, ZKO3-4/W23Fri Sep 08 1989 13:5520
You have a good plan in theory; unfortunately, you won't be able to do the
colormap playing that you want to do with a Firefox.

The problem is that you need a "Pseudocolor" display (i.e. one where you can
do anything you like with the colormap). Unfortunately, the FF only supports
Pseudocolor with 8-bit depth.  If you want 24-planes, you have to use
either DirectColor or TrueColor, which won't work well enough, I'm afraid.

Note that if you had full 24-bit pseudocolor, you would need a colormap
with 2**24 entries.  As it is, the colormap has only 3*(2**8).  Actually,
it has 3*(2**10) since there are 4 separate colormaps.

This is not to say it is not possible in some way, but I am not the person
to answer you that.

Burns




1390.7I would still fill up 24 plane pixmapsSTAR::BMATTHEWSFri Sep 08 1989 14:137
You could still create 24 bit deep pixmaps for storing bit planes offscreen
and copy them into a pseudo color window. An 8 plane pseudo color window
could hold 2 of your 4 bit plane images and color map changes could be used to
switch between 2 4 bit images in an 8 plane pseudo color window.
							Bill


1390.8Firefox is best for offscreen memoryKASINO::TALLETTJust one more bug to fix...Mon Sep 11 1989 06:3639
    Hi there!
    
    	If you need VMS for this solution, then definitely go for the
    	Firefox. I played around with the Firefox when I was doing the
    	'film' program mentioned in .-4 and you can get some fairly
    	good results if you use the gobs of offscreen memory that the
    	Firefox has. I loaded stacks of 24 1-bit 640x480 images into
    	offscreen memory and then did XCopyPlane onto the screen and
    	achieved frame rates of about 30 frames/second. The Firefox
    	didn't do too well when I tried to go from VAX memory into
    	the framebuffer, but the limiting factor was SOFTWARE (the
    	X5.0-mumble server chewed up one CPU). I have heard the new
    	V2 Firefox server is much faster than my crufty old fieldtest
    	version. I only got about 12 frames a sec, same as on a VS3500.

    	You have 768x800x4x30 which comes out at about 9 megabytes if
    	I did my sums right. I seem to remember the Firefox has about
    	8.5 meg of offscreen memory (2048x2048x24/8 total memory, of
    	which 1280x1024x24/8 is onscreen) so you look to be just over
    	the limit (remember other people, such as DECterm, need pixmaps).
    	If you allocate a 24 deep 768x800 pixmap, and create a 768x800x8
    	window, you can pile up 6 of your 4-bit images in the pixmap
    	and then CopyPlane them back out. Note that if you can't get
    	ALL of your sequence in offscreen memory then you need a different
    	strategy as the server will page your pixmaps in and out of
    	VAX memory and you get thrashing. Your program can probably load
    	the images faster than letting the server try to figure it out.
    
    	If you need to go from host memory into the framebuffer (and
    	you don't need VMS) then you could try experimenting with the PMAX.
    	It doesn't like 4-bit images (all that XORing) but goes quite
    	fast with 8-deep images, although you would not get anything like
    	30 frames a second (maybe around 7-10 maximum?) with 768x800 images
    	from host memory.
    
    Regards,
    Paul Tallett,
    CEC Karlsruhe

1390.9GIDDAY::DRANSFIELDMike Dransfield, Sydney RSSGMon Sep 11 1989 19:505
    Thanks for all the replies.
    It sounds like this way well be possible with a bit of effort.
    
    Mike

1390.10Firefox has hardware double buffering.IO::MCCARTNEYJames T. McCartney III - DTN 381-2244 ZK02-2/N24Sun Sep 17 1989 07:033
    Also the Firefox has support for hardware double buffering, but you've 
    got to set a few logicals to get it turned on.

1390.11:^)GSRC::WESTVaribles don't, Constants aren'tMon Sep 18 1989 13:5526
RE:<<< Note 1390.10 by IO::MCCARTNEY "James T. McCartney III - DTN 381-2244 ZK02-2/N24" >>>
                    -< Firefox has hardware double buffering. >-

>>    Also the Firefox has support for hardware double buffering, but you've 
>>    got to set a few logicals to get it turned on.

  Not quite.

  I think you are refering to a PHIGS capability.  PHIGS with WSTYPE of 221
can make use of double-buffering by either a logical or an ESCAPE call.

  Double-buffering is the process of drawing to an off-screen pixmap (window)
and then copying the off-screen area to on-screen memory.  When this happens
fast enough the effect is smooth graphics/animation.

  The client is responsible for 'double-buffering'.

  Double-buffering is somewhat related to backing store in which the server
would do the work of 'fixing' exposed areas.

  Currently our server does not support backing store.

					-=> Jim <=-