Re: A question about the Loader

New Message Reply Date view Thread view Subject view Author view

From: Brian Furtaw (brian++at++sgi.com)
Date: 06/23/2001 05:22:25


Kevin,

Getting rid of all the glitches can be tricky. Pre loading your textures
just insures you will not have to load them during runtime on to the
graphics pipe. Assuming you have enough texture memory to hold all of
your textures you will not have to deal with texture swapping which can
cause glithes. Glitches also occur when you send to much geometry data
for the system to handle or when the amount pixels being output is more
then the fill rate of the raster subsystem. You can also get glitching
from CPU related tasks, like disk accesses. CPU tasks are less likely on
a multiprocessor machine because performer was designed to help
compensate for these.

The Performer stats can help you to narrow down what kind of problem you
are seeing. If you look on page 32 of the pfChannel man page their is an
explaination of the stats. You want to pay particular attention to draw
portion of the stats.

Brian

kcc++at++DynRes.com wrote:
>
> I tried loading the scene contents from the very beginning and use pfuMakeScene and pfuDownloadTexList, just like Perfly does.
> It works great for smaller databases. For bigger scenes, it is better than before but there are still glitches.
> What do I need to do to get rid of the glitches completely. Any info will be helpful.
>
> Kevin
>
> -----Original Message-----
> From: MIME :dorbie++at++sgi.com
> Sent: Tuesday, June 19, 2001 9:51 PM
> To: info-performer++at++sgi.com
> Subject: Re: A question about the Loader
>
> There are two calls, pfuMakeSceneTexList and pfuDownloadTexList these
> can be used to build a list of textures from a scene and then to
> download it to memory. You still have to load the textures, and that's
> really up to the app. Since textures are shared based on filename it
> should be enough simply to load the textures in Performer and build the
> list manually then call pfuDownloadTexList. The other approach is to
> create soem surrogate geometry with your textures applied to it and load
> that at the start. You can then add this to the scene and draw it at the
> start before removing it from the scene or use pfuMakeSceneTexList to
> build the list from it and then use pfuDownloadTexList.
>
> Perfly uses these calls but doesn't page data, all it's scene contents
> are loaded from the very beginning.
>
> Cheers,ANgus.
>
> kcc++at++DynRes.com wrote:
> >
> > Angus, thanks for the help.
> >
> > Is there sample code anywhere for preloading all textures into texture
> memory from system memory (the "easier" way)?
> >
> > Kevin
> > -----Original Message-----
> > From: MIME :dorbie++at++sgi.com
> > Sent: Monday, June 18, 2001 9:58 PM
> > To: Kevin C. Chao
> > Cc: info-performer++at++sgi.com
> > Subject: Re: A question about the Loader
> >
> > You need to page asynchronously in the dbase process and then merge
> > memory buffers in the app process to let the app know instantly about
> > the object you have loaded over several frames. You can then add to the
> > scene graph and it should hit the draw a few frames later.
> >
> > This may still cause some draw glitches due to texture loading from
> > system memory to texture memory which you can work around by managing
> > texture memory (which is difficult) or by preloading all textures
> > (easier) but as a first attempt it should be MUCH better than your
> > current approach.
> >
> > There is sample code in the pguide section and there are detailed
> > discussions in the Performer email archives on how to do this.
> >
> > Cheers,Angus.
> >
> > kcc++at++DynRes.com wrote:
> > >
> > > Hi,
> > >
> > > Here is my question, please help.
> > > Our driving simulation uses Performer for animation and Multigen for
> > database creation. It calls pfuLoadFile("DatabaseName.flt") every time when
> > loading a new road database. For larger databases, we found
> > > that there are some graphical glitches (pauses on the graphics) the first
> > time driving through the road, but the problem goes away on the second and
> > succeeding runs. It looks like the visual objects are
> > > paged in from the disk to the memory on the first run. Is there a way to
> let
> > the database loaded to the memory all at once?
> > >
> > > Kevin
> > >
> > > -----------------------------------------------------------------------
> > > List Archives, FAQ, FTP: 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
> >
> > --
> > For Performer+OpenGL tutorials http://www.dorbie.com/
> >
> > "Whenever there is a conflict between human rights and property
> > rights, human rights must prevail."
> > --Abraham Lincoln
> > -----------------------------------------------------------------------
> > List Archives, FAQ, FTP: 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
> > << File: ENVELOPE.TXT >>
> > -----------------------------------------------------------------------
> > List Archives, FAQ, FTP: 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
>
> --
> For Performer+OpenGL tutorials http://www.dorbie.com/
>
> "Whenever there is a conflict between human rights and property
> rights, human rights must prevail."
> --Abraham Lincoln
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: 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
> << File: ENVELOPE.TXT >>
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: 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

-- 
    ----oOOo----    ----oOOo----    ----oOOo----    ----oOOo----

Brian Furtaw (brian++at++sgi.com) Graphics Guru Office:(301)572-3293 Fax: (253)323-8182 12200-G Plum Orchard Drive OpenGL/Performer/OpenInventor/ImageVision Silver Spring, Maryland 20904 Volumizer/Optimizer/React/PCI Device Drivers


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Jun 23 2001 - 05:28:59 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.