Path: chuka.playstation.co.uk!scea!peter_alau@playstation.sony.com From: shade@dragonshadow.com (Scott Cartier) Newsgroups: scee.yaroze.beginners Subject: Re: Order in main display loop Date: Mon, 20 Sep 1999 20:57:10 GMT Organization: SCEA News Server Lines: 31 Message-ID: <37e69d87.356653241@news.scea.sony.com> References: <7s08as$lcu11@chuka.playstation.co.uk> NNTP-Posting-Host: vmlabs33.vmlabs.com X-Newsreader: Forte Free Agent 1.11/32.235 I tried this as well at one point. It didn't work for me either and I reverted back to the original split code. You've probably already figured this out, but just for the heck of it... You want to be able to do this: GraphicsLoopEnd(); GraphicsLoopStart(); Which is effectively: DrawSync(0); VSync(0); GsSwapDispBuff(); GsSortClear(0, 0, 255, &OrderingTable[ActiveBuff]); GsDrawOt(&OrderingTable[ActiveBuff]); ActiveBuff = GsGetActiveBuff(); GsSetWorkBase(&GpuPacketArea[ActiveBuff]); GsClearOt(0, 0, &OrderingTable[ActiveBuff]); The problem lies in the fact that neither OrderingTable, nor ActiveBuff are initialized the first time through the loop. The functions GsGetActiveBuff (which initializes ActiveBuff) and GsClearOt (which inits the ordering table) aren't called until after you've already used them in GsSortClear and GsDrawOt. You said you get around this by checking to see if this is the first iteration and skipping those functions if so. That should be a perfectly valid solution. Scott