Re: [info-performer] Paging problem in terrain visualisation

Date view Thread view Subject view Author view

From: Yair Kurzion (yair++at++polygon.engr.sgi.com)
Date: 08/01/2003 14:36:23


Hello Andreas !

I'll try to guess where the problem is:

pfAsyncDelete queues delete requests of objects without checking their
ref-count. Performer tries to delete the objects in a DBASE process. If the
object ref-count isn't zero, it remains on the AsyncDelete queue until its
ref-count is zero. The following code bloats the AsyncDelete list out of
control:

    while (1)
    {
        pfGroup *group = new pfGroup;
        group -> ref(); // bump ref-count.
        pfAsyncDelete(group); // group will never be deleted (ref-count > 0).

        ...

        pfFrame();
    }

I suggest that you check the ref-count of your objects before calling
pfAsyncDelete (pfMemory::getRef). Make sure that either the ref-count is zero
before calling pfAsyncDelete or it becomes zero shortly after the call to
pfAsyncDelete.

Note:

o Adding a node as a child of another node increases the child's ref-count.
o New nodes have zero ref-count.

-yair

> I'm trying to build an application for terrain visualisation used in flight
> simulation. As i have to cover a large area,
> the database is made up of several (together about 8000) tiles. I started
> from perfly code, added a database function
> in a separate process which should handle the paging of the tiles.
> Loading the tiles works fine, but deleting the tiles with an pfAsyncDelete
> () consumes increasing time. As a result old tiles
> are not deleted fast enough and the new tiles, which should become visible
> are not loaded.
>
> My hardware is a dual pentium with 2x2GHz and GeForce4 4600Ti Graphics
> Card, running Suse Linux 7.3 with XFree 4.2
> and latest NVidia drivers. Performer is installed as evaluation copy.
>
> On a similar hardware with nearly identical system (but licensed
> performer), just slower processor, everything works fine.
>
> Is there some restriction to the evalutaion version running without license
> ?
>
> Ore are there any other hints, maybe some code examples for building and
> running a multithreaded application with paging ??
>
> Any help is welcome
>
> ------------------------------------------------------------
> Andreas Lenz ESG GmbH
> Einsteinstrasse 174 D-81675 München
> Tel.: ++49-89-9216-2167
> Fax.: ++49-89-9216-2632
> Mail: Andreas.Lenz++at++esg.de
> ------------------------------------------------------------
>
>
>
> -----------------------------------------------------------------------
> List Archives, Info, FAQ: http://www.sgi.com/software/performer/
> Open Development Project: http://oss.sgi.com/projects/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
> -----------------------------------------------------------------------
> SIGGRAPH 2003 Friends of Performer Meeting:
> Wednesday July 30 6:00pm San Diego Hilton Hotel Santa Rosa Room
> -----------------------------------------------------------------------
>

-- 
\_________  \_____  \__    \__  \_____        
\_________  \_____   \__   \__  \_____         Yair Kurzion
       \__     \__   \____\__      \__         yair++at++sgi.com
       \__          \__  \__                  (650) 933-6502
       \__          \__   \__          
       \__          \__    \__             


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Fri Aug 01 2003 - 14:36:49 PDT