Isabelle Lafon (isabelle++at++discreet.com)
Tue, 31 Aug 1999 20:07:06 -0400
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
This archive was generated by hypermail 2.0b2 on Tue Aug 31 1999 - 17:10:28 PDT