display list vs immediate mode performance

display list vs immediate mode performance

Post by saga » Tue, 27 Jun 1995 04:00:00



I want to know in what conditions it is best to opt for display-list mode over
immediate mode - sgi performer uses immediate mode with a tight CPU pipeline
loop, but if your database objects are mainly static, with a couple of dynamic
objects, is it best to use display-lists?

Also, what happens in memory if an object is called within another object? -Is
this expensive or just a quick pointer assignment?

Is the assumption that if generating data is freed after a display list object
is created, then that object is in the most efficient form for manipulation
with standard graphics transformations, and so if only a couple of dynamic
objects need to be updated in the scene it is best to use a mixed display list
- immediate mode method?

Any information on these questions or on the inside workings would be
excellent :)
Thanks,
Mark Sagar
Dept Mechanical Engineering,
University of Auckland,
New Zealand

 
 
 

display list vs immediate mode performance

Post by Dave Shreine » Tue, 27 Jun 1995 04:00:00


Classically, display lists were used for when the graphics subsystem was
faster than the host processor.  If you have dynamically changing gemoetry
( i.e. vertex positions are a function of time ), which doesn't include
objects which are translating, scaling, or rotating, then display lists may
be a good idea.  On SGI's current systems, I believe that display lists are
a wash, but of course, your application may prove that statement wrong.

   As for nested display lists, in OpenGL, they are premitted, and were
designed into the system.  As a matter of fact, this is the only way to
really provide an "editing" mechanism in OpenGL display lists.  There is
a maximum number of nested display lists permitted ( use GL_MAX_LIST_NESTING
with glGet*(); to check the limit ).  As for the speed issue, its better I
let a more informed person get back to you with those ideas.

Quote:> Is the assumption that if generating data is freed after a display list object
> is created, then that object is in the most efficient form for manipulation
> with standard graphics transformations, and so if only a couple of dynamic
> objects need to be updated in the scene it is best to use a mixed display list
> - immediate mode method?

   That's a reasonable inital guess.  As I'm sure you know, performance is
an iterative process, so testing these ideas is a good idea.

   As I understand it, and this is derived from several non-linear
conversations
so take it at face value.  The way GL works is that when you make a graphics
function call, say glVertex(), the data of that call are merged with a token
describing what the data are, and then passed over to the geometry subsystem.
A display lists tokenizes the calls, then stores the tokens and data in
memory.  When you call the display list, its then a quick memory transfer
of that data to the geometry.  What this seems to imply is that it really save
the host the tokenizing step to increase performance, which could be very
intensive.

   Across a network, display lists ( at least in OpenGL ) are a real win since
the data of the list is transmitted across the net once to the server on the
other side, and then subsequent references are done merely by the list index
lowering the amount of data that is transmitted across the wire.   A good
thing to keep in mind if you will be rendering across a net.

   Hope that's some help.

Thanx,
Dave

  ---------------------------------------------------------------------------


   Silicon Graphics, Inc.                                (301) 384-6916

   Boldly going where no one has before ... and stumbling the entire way.

 
 
 

1. Immediate mode vs Display lists

Most GL man pages refer to an immediate mode, which seems to be the
mode most GL apps use.  Performer and Inventor however, can use a
so-called display list mode.  How can a program choose the mode, or
create a display list, and what is the (dis)advantage of either mode?
I found no explanation for all this in the man pages.  Is this feature
only available in OpenGL?

puzzled,
  Ralf
--
____________________________________________________________________________
"Microsoft Service - can you hold for an hour?"                Crooow, MST3k
----------------------------------------------------------------------------
Real software engineers work from                               Ralf Helbing
9 to 5, if at all, because that is                    University of Michigan
the way the job is described in          Advanced Virtual Reality Laboratory
the formal spec. Working late               NA&ME Building, 2600 Draper road
would feel like using an                             Ann Arbor MI 48109-2145
undocumented external procedure.                       Phone: (313) 763-7798
----------------------------------------------------------------------------

2. Counter help

3. immediate mode graphics versus display-list graphics

4. Saving Pictures after Animate Palette changes

5. Display lists or Immediate mode ?

6. bmrt rayserver and time

7. display list /vertex list performance on SolidImpact?

8. N-Dimensional containment

9. display lists/vertex list performance, specifically on SolidImpact

10. GL objects vs immediate mode

11. D3d Immediate mode vs openGL rendering pipeline

12. Display-list vs. Immediate-mode: Pros and Cons?

13. what's the difference between immediate mode and retained mode