Re: Performance hit on the first frame ?

New Message Reply Date view Thread view Subject view Author view

Isabelle Lafon (isabelle++at++discreet.com)
Tue, 31 Aug 1999 20:07:06 -0400


Hi,

I suppose this context creation occurs only at the very first pfDraw
in a channel. If I change the scene on the channel, I should not have
a performance hit the first time this "second" scene is drawn.
But each time I attach a new scene to my channel I obtain a performance
hit
for one frame. That's the reason why I was wondering if performer is
doing
some "optimization" work on the scene tree the first time a scene is
drawn.

Also, during my research I remarked that my scene preDraw callback is
called
twice per frame. The first time the scene preDraw is called from pfFrame
through the pfDispList. The second time, preDraw is also called from
pfFrame
but through the channel pfDraw call. This second call is what I was
expecting. See stacks.

First preDraw call stack
========================
sdbScene::preDraw(<stripped>) ["sdbScene.C":758]
_pfCallDrawFunc(<stripped>) ["pfCuller.C":1350]
pfDispList::pr_caseDL_CALLBACK(<stripped>) ["pfDispList.C":2086]
pfDispList::pr_drawFlat(<stripped>) ["pfDispList.C":3858]
pfDispList::draw(<stripped>) ["pfDispList.C":660]
pfFrame(<stripped>) ["pfProcess.C":6289]

Second preDraw call stack
=========================
sdbScene::preDraw(<stripped>) ["sdbScene.C":758]
_pfCallDrawFunc(<stripped>) ["pfCuller.C":1350]
pfDispList::callback(<stripped>) ["pfDispList.C":419]
_pfCuller::pf_applyFuncs(<stripped>) ["pfCuller.h":140]
_pfCuller::pf_flushStackState(<stripped>) ["pfCuller.h":426]
_pfCuller::add(<stripped>) ["pfCuller.C":370]
pfGeode::nb_cull(<stripped>) ["pfGeode.C":267]
pfSCS::nb_cull(<stripped>) ["pfSCS.C":345]
pfSCS::nb_cull(<stripped>) ["pfSCS.C":345]
pfScene::nb_cull(<stripped>) ["pfScene.C":293]
_pfCuller::nb_cull(<stripped>) ["pfCuller.C":208]
pfDraw(<stripped>) ["pfProcess.C":6389]
reVFChannel::draw(<stripped>) ["reVFChannel.C":579]
pfChannel::pf_callDrawFunc(<stripped>) ["pfChannel.C":2255]
pfFrame(<stripped>) ["pfProcess.C":6296]

Does anybody have an explanation for this doubled preDraw calls.

Cheers,

Isabelle.

Dick Rous wrote:
>
> The first time you call pfDraw, the pipe (the actual OpenGL context)
> is created, so it takes a bit longer than the subsequent frames.
>
> Cheers,
>
> __________________________________________________________________
> Dick Rous Senior Systems Engineer Graphics Technology
> email: dick++at++sgi.com European Technical Support
> phone: +31-30-6696868 fax: +31-35-6423162 VNET: 955-6868
> __________________________________________________________________

-- 
Isabelle Lafon                 Discreet Logic
Tel: (514) 954-7157            10 Duke
Fax: (514) 393-0110            Montreal (Quebec)
isabelle++at++discreet.com          Canada, H3C 2L7

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Tue Aug 31 1999 - 17:10:28 PDT

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