Path: chuka.playstation.co.uk!news From: James Russell Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: Using a Priority OT Date: Fri, 18 Sep 1998 15:44:42 +0100 Organization: Sony Computer Entertainment Europe Lines: 36 Message-ID: <360271DA.20D75C3B@scee.sony.co.uk> References: <36025F1F.12B0@manc.u-net.com> NNTP-Posting-Host: mailgate.scee.sony.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.5b1 [en] (Win95; I) X-Accept-Language: en James Shaughnessy wrote: > > I sort objects > in the PriorityOT and then sort that into the required main OT and > everything seems to be working fine with the priority > objects always being drawn last. If you know that everything in your priorityOT (where the pools balls are) will be drawn AFTER the main OT (where the pool table is), then you don't have to sort the priority OT into the mainOT. Just go: GsDrawOT(&mainOT[GsActiveBuff()]); GsDrawOT(&priorityOT[GsActiveBuff()]); And all the stuff in the priorityOT will be drawn after all the stuff in the mainOT. > I occasionally get these > big lockups (a few seconds) and then get a GPU Timeout error. This happens because GPU packets are getting corrupted. As you know, the GPU uses linked lists, and if the pointer information gets corrupted then the common symptom is "GPU Timeout" errors as the GPU jumps around memory after following an incorrect pointer. The main reason these get corrupted is that the packet creation area is too small - check the FAQ for a list of the sizes of each poly type, if that will help. I know you've said you've set up enough, so perhaps you're accidentally copying over that area. You won't need a separate WorkBase area for each OT. Cheers, James -- == James_Russell@scee.sony.co.uk +44 (171) 447-1626 == Developer Support Engineer - Sony Computer Entertainment Europe Ask not for whom the bell tolls, let the machine get it.